drivers/net/wwan/iosm/iosm_ipc_protocol_ops.h

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

File Facts

System
Linux kernel
Corpus path
drivers/net/wwan/iosm/iosm_ipc_protocol_ops.h
Extension
.h
Size
12407 bytes
Lines
445
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 ipc_msg_prep_args_pipe {
	struct ipc_pipe *pipe;
};

/**
 * struct ipc_msg_prep_args_sleep - struct for sleep args for message
 *				    preparation
 * @target:	0=host, 1=device
 * @state:	0=enter sleep, 1=exit sleep
 */
struct ipc_msg_prep_args_sleep {
	unsigned int target;
	unsigned int state;
};

/**
 * struct ipc_msg_prep_feature_set - struct for feature set argument for
 *				     message preparation
 * @reset_enable:	0=out-of-band, 1=in-band-crash notification
 */
struct ipc_msg_prep_feature_set {
	u8 reset_enable;
};

/**
 * struct ipc_msg_prep_map - struct for map argument for message preparation
 * @region_id:	Region to map
 * @addr:	Pcie addr of region to map
 * @size:	Size of the region to map
 */
struct ipc_msg_prep_map {
	unsigned int region_id;
	unsigned long addr;
	size_t size;
};

/**
 * struct ipc_msg_prep_unmap - struct for unmap argument for message preparation
 * @region_id:	Region to unmap
 */
struct ipc_msg_prep_unmap {
	unsigned int region_id;
};

/**
 * struct ipc_msg_prep_args - Union to handle different message types
 * @pipe_open:		Pipe open message preparation struct
 * @pipe_close:		Pipe close message preparation struct
 * @sleep:		Sleep message preparation struct
 * @feature_set:	Feature set message preparation struct
 * @map:		Memory map message preparation struct
 * @unmap:		Memory unmap message preparation struct
 */
union ipc_msg_prep_args {
	struct ipc_msg_prep_args_pipe pipe_open;
	struct ipc_msg_prep_args_pipe pipe_close;
	struct ipc_msg_prep_args_sleep sleep;
	struct ipc_msg_prep_feature_set feature_set;
	struct ipc_msg_prep_map map;
	struct ipc_msg_prep_unmap unmap;
};

/**
 * enum ipc_msg_prep_type - Enum for message prepare actions
 * @IPC_MSG_PREP_SLEEP:		Sleep message preparation type
 * @IPC_MSG_PREP_PIPE_OPEN:	Pipe open message preparation type
 * @IPC_MSG_PREP_PIPE_CLOSE:	Pipe close message preparation type
 * @IPC_MSG_PREP_FEATURE_SET:	Feature set message preparation type
 * @IPC_MSG_PREP_MAP:		Memory map message preparation type
 * @IPC_MSG_PREP_UNMAP:		Memory unmap message preparation type
 */
enum ipc_msg_prep_type {
	IPC_MSG_PREP_SLEEP,
	IPC_MSG_PREP_PIPE_OPEN,
	IPC_MSG_PREP_PIPE_CLOSE,
	IPC_MSG_PREP_FEATURE_SET,
	IPC_MSG_PREP_MAP,
	IPC_MSG_PREP_UNMAP,
};

/**
 * struct ipc_rsp - Response to sent message
 * @completion:	For waking up requestor
 * @status:	Completion status
 */
struct ipc_rsp {
	struct completion completion;
	enum ipc_mem_msg_cs status;
};

Annotation

Implementation Notes