drivers/infiniband/hw/irdma/trace_cm.h
Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/irdma/trace_cm.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/infiniband/hw/irdma/trace_cm.h- Extension
.h- Size
- 15889 bytes
- Lines
- 461
- Domain
- Driver Families
- Bucket
- drivers/infiniband
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/tracepoint.hlinux/trace_seq.hmain.htrace/define_trace.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#if !defined(__TRACE_CM_H) || defined(TRACE_HEADER_MULTI_READ)
#define __TRACE_CM_H
#include <linux/tracepoint.h>
#include <linux/trace_seq.h>
#include "main.h"
const char *print_ip_addr(struct trace_seq *p, u32 *addr, u16 port, bool ivp4);
const char *parse_iw_event_type(enum iw_cm_event_type iw_type);
const char *parse_cm_event_type(enum irdma_cm_event_type cm_type);
const char *parse_cm_state(enum irdma_cm_node_state);
#define __print_ip_addr(addr, port, ipv4) print_ip_addr(p, addr, port, ipv4)
#undef TRACE_SYSTEM
#define TRACE_SYSTEM irdma_cm
TRACE_EVENT(irdma_create_listen,
TP_PROTO(struct irdma_device *iwdev, struct irdma_cm_info *cm_info),
TP_ARGS(iwdev, cm_info),
TP_STRUCT__entry(__field(struct irdma_device *, iwdev)
__dynamic_array(u32, laddr, 4)
__field(u16, lport)
__field(bool, ipv4)
),
TP_fast_assign(__entry->iwdev = iwdev;
__entry->lport = cm_info->loc_port;
__entry->ipv4 = cm_info->ipv4;
memcpy(__get_dynamic_array(laddr),
cm_info->loc_addr, 4);
),
TP_printk("iwdev=%p loc: %s",
__entry->iwdev,
__print_ip_addr(__get_dynamic_array(laddr),
__entry->lport, __entry->ipv4)
)
);
TRACE_EVENT(irdma_dec_refcnt_listen,
TP_PROTO(struct irdma_cm_listener *listener, void *caller),
TP_ARGS(listener, caller),
TP_STRUCT__entry(__field(struct irdma_device *, iwdev)
__field(u32, refcnt)
__dynamic_array(u32, laddr, 4)
__field(u16, lport)
__field(bool, ipv4)
__field(void *, caller)
),
TP_fast_assign(__entry->iwdev = listener->iwdev;
__entry->lport = listener->loc_port;
__entry->ipv4 = listener->ipv4;
memcpy(__get_dynamic_array(laddr),
listener->loc_addr, 4);
),
TP_printk("iwdev=%p caller=%pS loc: %s",
__entry->iwdev,
__entry->caller,
__print_ip_addr(__get_dynamic_array(laddr),
__entry->lport, __entry->ipv4)
)
);
DECLARE_EVENT_CLASS(listener_template,
TP_PROTO(struct irdma_cm_listener *listener),
TP_ARGS(listener),
TP_STRUCT__entry(__field(struct irdma_device *, iwdev)
__field(u16, lport)
__field(u16, vlan_id)
__field(bool, ipv4)
__field(enum irdma_cm_listener_state,
state)
__dynamic_array(u32, laddr, 4)
),
TP_fast_assign(__entry->iwdev = listener->iwdev;
__entry->lport = listener->loc_port;
__entry->vlan_id = listener->vlan_id;
__entry->ipv4 = listener->ipv4;
__entry->state = listener->listener_state;
memcpy(__get_dynamic_array(laddr),
listener->loc_addr, 4);
),
TP_printk("iwdev=%p vlan=%d loc: %s",
__entry->iwdev,
__entry->vlan_id,
__print_ip_addr(__get_dynamic_array(laddr),
__entry->lport, __entry->ipv4)
)
);
DEFINE_EVENT(listener_template, irdma_find_listener,
Annotation
- Immediate include surface: `linux/tracepoint.h`, `linux/trace_seq.h`, `main.h`, `trace/define_trace.h`.
- Atlas domain: Driver Families / drivers/infiniband.
- 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.