drivers/net/vmxnet3/vmxnet3_defs.h
Source file repositories/reference/linux-study-clean/drivers/net/vmxnet3/vmxnet3_defs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/vmxnet3/vmxnet3_defs.h- Extension
.h- Size
- 27842 bytes
- Lines
- 920
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
upt1_defs.h
Detected Declarations
struct Vmxnet3_TxDescstruct Vmxnet3_TxDataDescstruct Vmxnet3_TxCompDescstruct Vmxnet3_RxDescstruct Vmxnet3TSInfostruct Vmxnet3_TxTSDescstruct Vmxnet3_RxTSDescstruct Vmxnet3_RxCompDescstruct Vmxnet3_RxCompDescExtstruct Vmxnet3_GOSInfostruct Vmxnet3_DriverInfostruct Vmxnet3_MiscConfstruct Vmxnet3_TxQueueConfstruct Vmxnet3_RxQueueConfstruct Vmxnet3_LatencyConfstruct Vmxnet3_TxQueueTSConfstruct Vmxnet3_RxQueueTSConfstruct Vmxnet3_IntrConfstruct Vmxnet3_IntrConfExtstruct Vmxnet3_QueueStatusstruct Vmxnet3_TxQueueCtrlstruct Vmxnet3_RxQueueCtrlstruct Vmxnet3_RxFilterConfstruct Vmxnet3_PM_PktFilterstruct Vmxnet3_PMConfstruct Vmxnet3_VariableLenConfDescstruct Vmxnet3_TxQueueDescstruct Vmxnet3_RxQueueDescstruct Vmxnet3_SetPollingstruct Vmxnet3_CoalesceRbcstruct Vmxnet3_CoalesceStaticstruct Vmxnet3_CoalesceSchemestruct Vmxnet3_MemoryRegionstruct Vmxnet3_MemRegsstruct Vmxnet3_RingBufferSizestruct Vmxnet3_DSDevReadstruct Vmxnet3_DSDevReadExtstruct Vmxnet3_DriverSharedenum vmxnet3_intr_mask_modeenum vmxnet3_intr_typeenum Vmxnet3_CoalesceModeenum Vmxnet3_RSSField
Annotated Snippet
struct Vmxnet3_TxDesc {
__le64 addr;
#ifdef __BIG_ENDIAN_BITFIELD
u32 msscof:14; /* MSS, checksum offset, flags */
u32 ext1:1; /* set to 1 to indicate inner csum/tso, vmxnet3 v7 */
u32 dtype:1; /* descriptor type */
u32 oco:1; /* Outer csum offload */
u32 gen:1; /* generation bit */
u32 len:14;
#else
u32 len:14;
u32 gen:1; /* generation bit */
u32 oco:1; /* Outer csum offload */
u32 dtype:1; /* descriptor type */
u32 ext1:1; /* set to 1 to indicate inner csum/tso, vmxnet3 v7 */
u32 msscof:14; /* MSS, checksum offset, flags */
#endif /* __BIG_ENDIAN_BITFIELD */
#ifdef __BIG_ENDIAN_BITFIELD
u32 tci:16; /* Tag to Insert */
u32 ti:1; /* VLAN Tag Insertion */
u32 ext2:1;
u32 cq:1; /* completion request */
u32 eop:1; /* End Of Packet */
u32 om:2; /* offload mode */
u32 hlen:10; /* header len */
#else
u32 hlen:10; /* header len */
u32 om:2; /* offload mode */
u32 eop:1; /* End Of Packet */
u32 cq:1; /* completion request */
u32 ext2:1;
u32 ti:1; /* VLAN Tag Insertion */
u32 tci:16; /* Tag to Insert */
#endif /* __BIG_ENDIAN_BITFIELD */
};
/* TxDesc.OM values */
#define VMXNET3_OM_NONE 0
#define VMXNET3_OM_ENCAP 1
#define VMXNET3_OM_CSUM 2
#define VMXNET3_OM_TSO 3
/* fields in TxDesc we access w/o using bit fields */
#define VMXNET3_TXD_EOP_SHIFT 12
#define VMXNET3_TXD_CQ_SHIFT 13
#define VMXNET3_TXD_GEN_SHIFT 14
#define VMXNET3_TXD_EOP_DWORD_SHIFT 3
#define VMXNET3_TXD_GEN_DWORD_SHIFT 2
#define VMXNET3_TXD_CQ (1 << VMXNET3_TXD_CQ_SHIFT)
#define VMXNET3_TXD_EOP (1 << VMXNET3_TXD_EOP_SHIFT)
#define VMXNET3_TXD_GEN (1 << VMXNET3_TXD_GEN_SHIFT)
#define VMXNET3_HDR_COPY_SIZE 128
struct Vmxnet3_TxDataDesc {
u8 data[VMXNET3_HDR_COPY_SIZE];
};
typedef u8 Vmxnet3_RxDataDesc;
#define VMXNET3_TCD_GEN_SHIFT 31
#define VMXNET3_TCD_GEN_SIZE 1
#define VMXNET3_TCD_TXIDX_SHIFT 0
#define VMXNET3_TCD_TXIDX_SIZE 12
#define VMXNET3_TCD_GEN_DWORD_SHIFT 3
struct Vmxnet3_TxCompDesc {
u32 txdIdx:12; /* Index of the EOP TxDesc */
u32 ext1:20;
__le32 ext2;
__le32 ext3;
u32 rsvd:24;
u32 type:7; /* completion type */
u32 gen:1; /* generation bit */
};
struct Vmxnet3_RxDesc {
__le64 addr;
#ifdef __BIG_ENDIAN_BITFIELD
u32 gen:1; /* Generation bit */
u32 rsvd:15;
u32 dtype:1; /* Descriptor type */
u32 btype:1; /* Buffer Type */
Annotation
- Immediate include surface: `upt1_defs.h`.
- Detected declarations: `struct Vmxnet3_TxDesc`, `struct Vmxnet3_TxDataDesc`, `struct Vmxnet3_TxCompDesc`, `struct Vmxnet3_RxDesc`, `struct Vmxnet3TSInfo`, `struct Vmxnet3_TxTSDesc`, `struct Vmxnet3_RxTSDesc`, `struct Vmxnet3_RxCompDesc`, `struct Vmxnet3_RxCompDescExt`, `struct Vmxnet3_GOSInfo`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.