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.

Dependency Surface

Detected Declarations

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

Implementation Notes