^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM mmc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #if !defined(_TRACE_MMC_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _TRACE_MMC_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/blkdev.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/mmc/core.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/mmc/host.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) TRACE_EVENT(mmc_request_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) TP_PROTO(struct mmc_host *host, struct mmc_request *mrq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) TP_ARGS(host, mrq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) __field(u32, cmd_opcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) __field(u32, cmd_arg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) __field(unsigned int, cmd_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __field(unsigned int, cmd_retries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __field(u32, stop_opcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __field(u32, stop_arg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) __field(unsigned int, stop_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) __field(unsigned int, stop_retries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __field(u32, sbc_opcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) __field(u32, sbc_arg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __field(unsigned int, sbc_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) __field(unsigned int, sbc_retries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) __field(unsigned int, blocks)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) __field(unsigned int, blk_addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) __field(unsigned int, blksz)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) __field(unsigned int, data_flags)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) __field(int, tag)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) __field(unsigned int, can_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) __field(unsigned int, doing_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) __field(unsigned int, retune_now)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) __field(int, need_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) __field(int, hold_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) __field(unsigned int, retune_period)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) __field(struct mmc_request *, mrq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) __string(name, mmc_hostname(host))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) __entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) __entry->cmd_arg = mrq->cmd ? mrq->cmd->arg : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) __entry->cmd_flags = mrq->cmd ? mrq->cmd->flags : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) __entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) __entry->stop_arg = mrq->stop ? mrq->stop->arg : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) __entry->stop_flags = mrq->stop ? mrq->stop->flags : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) __entry->stop_retries = mrq->stop ? mrq->stop->retries : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) __entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) __entry->sbc_arg = mrq->sbc ? mrq->sbc->arg : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) __entry->sbc_flags = mrq->sbc ? mrq->sbc->flags : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) __entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) __entry->blksz = mrq->data ? mrq->data->blksz : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) __entry->blocks = mrq->data ? mrq->data->blocks : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) __entry->blk_addr = mrq->data ? mrq->data->blk_addr : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) __entry->data_flags = mrq->data ? mrq->data->flags : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) __entry->tag = mrq->tag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) __entry->can_retune = host->can_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) __entry->doing_retune = host->doing_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) __entry->retune_now = host->retune_now;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) __entry->need_retune = host->need_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) __entry->hold_retune = host->hold_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) __entry->retune_period = host->retune_period;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) __assign_str(name, mmc_hostname(host));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) __entry->mrq = mrq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) TP_printk("%s: start struct mmc_request[%p]: "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) "cmd_opcode=%u cmd_arg=0x%x cmd_flags=0x%x cmd_retries=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) "stop_opcode=%u stop_arg=0x%x stop_flags=0x%x stop_retries=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) "sbc_opcode=%u sbc_arg=0x%x sbc_flags=0x%x sbc_retires=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) "blocks=%u block_size=%u blk_addr=%u data_flags=0x%x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) "tag=%d can_retune=%u doing_retune=%u retune_now=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) "need_retune=%d hold_retune=%d retune_period=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) __get_str(name), __entry->mrq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) __entry->cmd_opcode, __entry->cmd_arg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) __entry->cmd_flags, __entry->cmd_retries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) __entry->stop_opcode, __entry->stop_arg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) __entry->stop_flags, __entry->stop_retries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) __entry->sbc_opcode, __entry->sbc_arg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) __entry->sbc_flags, __entry->sbc_retries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) __entry->blocks, __entry->blksz,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) __entry->blk_addr, __entry->data_flags, __entry->tag,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) __entry->can_retune, __entry->doing_retune,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) __entry->retune_now, __entry->need_retune,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) __entry->hold_retune, __entry->retune_period)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TRACE_EVENT(mmc_request_done,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) TP_PROTO(struct mmc_host *host, struct mmc_request *mrq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) TP_ARGS(host, mrq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) __field(u32, cmd_opcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) __field(int, cmd_err)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) __array(u32, cmd_resp, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) __field(unsigned int, cmd_retries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) __field(u32, stop_opcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) __field(int, stop_err)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) __array(u32, stop_resp, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) __field(unsigned int, stop_retries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) __field(u32, sbc_opcode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) __field(int, sbc_err)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) __array(u32, sbc_resp, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) __field(unsigned int, sbc_retries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) __field(unsigned int, bytes_xfered)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) __field(int, data_err)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) __field(int, tag)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) __field(unsigned int, can_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) __field(unsigned int, doing_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) __field(unsigned int, retune_now)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) __field(int, need_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) __field(int, hold_retune)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) __field(unsigned int, retune_period)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) __field(struct mmc_request *, mrq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) __string(name, mmc_hostname(host))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) __entry->cmd_opcode = mrq->cmd ? mrq->cmd->opcode : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) __entry->cmd_err = mrq->cmd ? mrq->cmd->error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) __entry->cmd_resp[0] = mrq->cmd ? mrq->cmd->resp[0] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) __entry->cmd_resp[1] = mrq->cmd ? mrq->cmd->resp[1] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) __entry->cmd_resp[2] = mrq->cmd ? mrq->cmd->resp[2] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) __entry->cmd_resp[3] = mrq->cmd ? mrq->cmd->resp[3] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) __entry->cmd_retries = mrq->cmd ? mrq->cmd->retries : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) __entry->stop_opcode = mrq->stop ? mrq->stop->opcode : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) __entry->stop_err = mrq->stop ? mrq->stop->error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) __entry->stop_resp[0] = mrq->stop ? mrq->stop->resp[0] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) __entry->stop_resp[1] = mrq->stop ? mrq->stop->resp[1] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) __entry->stop_resp[2] = mrq->stop ? mrq->stop->resp[2] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) __entry->stop_resp[3] = mrq->stop ? mrq->stop->resp[3] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) __entry->stop_retries = mrq->stop ? mrq->stop->retries : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) __entry->sbc_opcode = mrq->sbc ? mrq->sbc->opcode : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) __entry->sbc_err = mrq->sbc ? mrq->sbc->error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) __entry->sbc_resp[0] = mrq->sbc ? mrq->sbc->resp[0] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) __entry->sbc_resp[1] = mrq->sbc ? mrq->sbc->resp[1] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) __entry->sbc_resp[2] = mrq->sbc ? mrq->sbc->resp[2] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) __entry->sbc_resp[3] = mrq->sbc ? mrq->sbc->resp[3] : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) __entry->sbc_retries = mrq->sbc ? mrq->sbc->retries : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) __entry->bytes_xfered = mrq->data ? mrq->data->bytes_xfered : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) __entry->data_err = mrq->data ? mrq->data->error : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) __entry->tag = mrq->tag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) __entry->can_retune = host->can_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) __entry->doing_retune = host->doing_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) __entry->retune_now = host->retune_now;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) __entry->need_retune = host->need_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) __entry->hold_retune = host->hold_retune;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) __entry->retune_period = host->retune_period;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) __assign_str(name, mmc_hostname(host));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) __entry->mrq = mrq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) TP_printk("%s: end struct mmc_request[%p]: "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) "cmd_opcode=%u cmd_err=%d cmd_resp=0x%x 0x%x 0x%x 0x%x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) "cmd_retries=%u stop_opcode=%u stop_err=%d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) "stop_resp=0x%x 0x%x 0x%x 0x%x stop_retries=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) "sbc_opcode=%u sbc_err=%d sbc_resp=0x%x 0x%x 0x%x 0x%x "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) "sbc_retries=%u bytes_xfered=%u data_err=%d tag=%d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) "can_retune=%u doing_retune=%u retune_now=%u need_retune=%d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) "hold_retune=%d retune_period=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) __get_str(name), __entry->mrq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) __entry->cmd_opcode, __entry->cmd_err,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) __entry->cmd_resp[0], __entry->cmd_resp[1],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) __entry->cmd_resp[2], __entry->cmd_resp[3],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) __entry->cmd_retries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) __entry->stop_opcode, __entry->stop_err,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) __entry->stop_resp[0], __entry->stop_resp[1],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) __entry->stop_resp[2], __entry->stop_resp[3],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) __entry->stop_retries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) __entry->sbc_opcode, __entry->sbc_err,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) __entry->sbc_resp[0], __entry->sbc_resp[1],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) __entry->sbc_resp[2], __entry->sbc_resp[3],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) __entry->sbc_retries,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) __entry->bytes_xfered, __entry->data_err, __entry->tag,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) __entry->can_retune, __entry->doing_retune,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) __entry->retune_now, __entry->need_retune,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) __entry->hold_retune, __entry->retune_period)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) #endif /* _TRACE_MMC_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) #include <trace/define_trace.h>