drivers/net/wwan/iosm/iosm_ipc_mux_codec.h

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

File Facts

System
Linux kernel
Corpus path
drivers/net/wwan/iosm/iosm_ipc_mux_codec.h
Extension
.h
Size
10105 bytes
Lines
326
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 mux_cmdh {
	__le32 signature;
	__le16 cmd_len;
	u8 if_id;
	u8 reserved;
	__le32 next_cmd_index;
	__le32 command_type;
	__le32 transaction_id;
	union mux_cmd_param param;
};

/**
 * struct mux_acbh -    Structure of the Aggregated Command Block Header.
 * @signature:          Signature of the Aggregated Command Block Header.
 * @reserved:           Reserved bytes. Set to zero.
 * @sequence_nr:        Block sequence number.
 * @block_length:       Length (in bytes) of the Aggregated Command Block.
 * @first_cmd_index:    Index (in bytes) to the first command in the buffer.
 */
struct mux_acbh {
	__le32 signature;
	__le16 reserved;
	__le16 sequence_nr;
	__le32 block_length;
	__le32 first_cmd_index;
};

/**
 * struct mux_adbh - Structure of the Aggregated Data Block Header.
 * @signature:		Signature of the Aggregated Data Block Header.
 * @reserved:		Reserved bytes. Set to zero.
 * @sequence_nr:	Block sequence number.
 * @block_length:	Length (in bytes) of the Aggregated Data Block.
 * @first_table_index:	Index (in bytes) to the first Datagram Table in
 *			the buffer.
 */
struct mux_adbh {
	__le32 signature;
	__le16 reserved;
	__le16 sequence_nr;
	__le32 block_length;
	__le32 first_table_index;
};

/**
 * struct mux_adth - Structure of the Aggregated Datagram Table Header.
 * @signature:          Signature of the Aggregated Datagram Table Header.
 * @table_length:       Length (in bytes) of the datagram table.
 * @if_id:              ID of the interface the datagrams in the table
 *                      belong to.
 * @opt_ipv4v6:         Indicates IPv4(=0)/IPv6(=1) hint.
 * @reserved:           Reserved bits. Set to zero.
 * @next_table_index:   Index (in bytes) to the next Datagram Table in
 *                      the buffer.
 * @reserved2:          Reserved bytes. Set to zero
 * @dg:                 datagramm table with variable length
 */
struct mux_adth {
	__le32 signature;
	__le16 table_length;
	u8 if_id;
	u8 opt_ipv4v6;
	__le32 next_table_index;
	__le32 reserved2;
	struct mux_adth_dg dg[];
};

/**
 * struct mux_adgh - Aggregated Datagram Header.
 * @signature:		Signature of the Aggregated Datagram Header(0x48474441)
 * @length:		Length (in bytes) of the datagram header. This length
 *			shall include the header size. Min value: 0x10
 * @if_id:		ID of the interface the datagrams belong to
 * @opt_ipv4v6:		Indicates IPv4(=0)/IPv6(=1), It is optional if not
 *			used set it to zero.
 * @reserved:		Reserved bits. Set to zero.
 * @service_class:	Service class identifier for the datagram.
 * @next_count:		Count of the datagrams that shall be following this
 *			datagrams for this interface. A count of zero means
 *			the next datagram may not belong to this interface.
 * @reserved1:		Reserved bytes, Set to zero
 */
struct mux_adgh {
	__le32 signature;
	__le16 length;
	u8 if_id;
	u8 opt_ipv4v6;
	u8 service_class;
	u8 next_count;
	u8 reserved1[6];

Annotation

Implementation Notes