drivers/net/wwan/iosm/iosm_ipc_trace.h

Source file repositories/reference/linux-study-clean/drivers/net/wwan/iosm/iosm_ipc_trace.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wwan/iosm/iosm_ipc_trace.h
Extension
.h
Size
1720 bytes
Lines
75
Domain
Driver Families
Bucket
drivers/net
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

struct iosm_trace {
	struct rchan *ipc_rchan;
	struct dentry *ctrl_file;
	struct iosm_imem *ipc_imem;
	struct device *dev;
	struct ipc_mem_channel *channel;
	enum ipc_channel_id chl_id;
	struct mutex trc_mutex;	/* Mutex used for read and write mode */
	enum trace_ctrl_mode mode;
};

#ifdef CONFIG_WWAN_DEBUGFS

static inline bool ipc_is_trace_channel(struct iosm_imem *ipc_mem, u16 chl_id)
{
	return ipc_mem->trace && ipc_mem->trace->chl_id == chl_id;
}

struct iosm_trace *ipc_trace_init(struct iosm_imem *ipc_imem);
void ipc_trace_deinit(struct iosm_trace *ipc_trace);
void ipc_trace_port_rx(struct iosm_imem *ipc_imem, struct sk_buff *skb);

#else

static inline bool ipc_is_trace_channel(struct iosm_imem *ipc_mem, u16 chl_id)
{
	return false;
}

static inline void ipc_trace_port_rx(struct iosm_imem *ipc_imem,
				     struct sk_buff *skb)
{
	dev_kfree_skb(skb);
}

#endif

#endif

Annotation

Implementation Notes