sound/soc/intel/avs/trace.h
Source file repositories/reference/linux-study-clean/sound/soc/intel/avs/trace.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/intel/avs/trace.h- Extension
.h- Size
- 3603 bytes
- Lines
- 157
- Domain
- Driver Families
- Bucket
- sound/soc
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
Dependency Surface
linux/types.hlinux/tracepoint.htrace/define_trace.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#undef TRACE_SYSTEM
#define TRACE_SYSTEM intel_avs
#if !defined(_TRACE_INTEL_AVS_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_INTEL_AVS_H
#include <linux/types.h>
#include <linux/tracepoint.h>
TRACE_EVENT(avs_dsp_core_op,
TP_PROTO(unsigned int reg, unsigned int mask, const char *op, bool flag),
TP_ARGS(reg, mask, op, flag),
TP_STRUCT__entry(
__field(unsigned int, reg )
__field(unsigned int, mask )
__string(op, op )
__field(bool, flag )
),
TP_fast_assign(
__entry->reg = reg;
__entry->mask = mask;
__assign_str(op);
__entry->flag = flag;
),
TP_printk("%s: %d, core mask: 0x%X, prev state: 0x%08X",
__get_str(op), __entry->flag, __entry->mask, __entry->reg)
);
#ifndef __TRACE_INTEL_AVS_TRACE_HELPER
#define __TRACE_INTEL_AVS_TRACE_HELPER
void trace_avs_msg_payload(const void *data, size_t size);
#define trace_avs_request(msg, sts, lec) \
({ \
trace_avs_ipc_request_msg((msg)->header, sts, lec); \
trace_avs_msg_payload((msg)->data, (msg)->size); \
})
#define trace_avs_reply(msg, sts, lec) \
({ \
trace_avs_ipc_reply_msg((msg)->header, sts, lec); \
trace_avs_msg_payload((msg)->data, (msg)->size); \
})
#define trace_avs_notify(msg, sts, lec) \
({ \
trace_avs_ipc_notify_msg((msg)->header, sts, lec); \
trace_avs_msg_payload((msg)->data, (msg)->size); \
})
#endif
DECLARE_EVENT_CLASS(avs_ipc_msg_hdr,
TP_PROTO(u64 header, u32 sts, u32 lec),
TP_ARGS(header, sts, lec),
TP_STRUCT__entry(
__field(u64, header)
__field(u32, sts)
__field(u32, lec)
),
TP_fast_assign(
__entry->header = header;
__entry->sts = sts;
__entry->lec = lec;
),
TP_printk("primary: 0x%08X, extension: 0x%08X,\n"
"status: 0x%08X, error: 0x%08X",
lower_32_bits(__entry->header), upper_32_bits(__entry->header),
__entry->sts, __entry->lec)
);
DEFINE_EVENT(avs_ipc_msg_hdr, avs_ipc_request_msg,
TP_PROTO(u64 header, u32 sts, u32 lec),
TP_ARGS(header, sts, lec)
);
DEFINE_EVENT(avs_ipc_msg_hdr, avs_ipc_reply_msg,
TP_PROTO(u64 header, u32 sts, u32 lec),
TP_ARGS(header, sts, lec)
);
Annotation
- Immediate include surface: `linux/types.h`, `linux/tracepoint.h`, `trace/define_trace.h`.
- Atlas domain: Driver Families / sound/soc.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.