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.
- 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
iosm_ipc_mux.h
Detected Declarations
struct mux_cmdhstruct mux_acbhstruct mux_adbhstruct mux_adthstruct mux_adghstruct mux_lite_cmdhstruct mux_lite_vflstruct ipc_mem_lite_gen_tbl
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
- Immediate include surface: `iosm_ipc_mux.h`.
- Detected declarations: `struct mux_cmdh`, `struct mux_acbh`, `struct mux_adbh`, `struct mux_adth`, `struct mux_adgh`, `struct mux_lite_cmdh`, `struct mux_lite_vfl`, `struct ipc_mem_lite_gen_tbl`.
- Atlas domain: Driver Families / drivers/net.
- 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.