drivers/net/ethernet/intel/e1000e/hw.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/e1000e/hw.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/intel/e1000e/hw.h- Extension
.h- Size
- 18896 bytes
- Lines
- 739
- 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
regs.hdefines.hmac.hphy.hnvm.hmanage.h82571.h80003es2lan.hich8lan.h
Detected Declarations
struct e1000_hwstruct e1000_tx_descstruct e1000_context_descstruct e1000_data_descstruct e1000_hw_statsstruct e1000_phy_statsstruct e1000_host_mng_dhcp_cookiestruct e1000_host_command_headerstruct e1000_host_command_infostruct e1000_host_mng_command_headerstruct e1000_host_mng_command_infostruct e1000_mac_operationsstruct e1000_phy_operationsstruct e1000_nvm_operationsstruct e1000_mac_infostruct e1000_phy_infostruct e1000_nvm_infostruct e1000_bus_infostruct e1000_fc_infostruct e1000_dev_spec_82571struct e1000_dev_spec_80003es2lanstruct e1000_shadow_ramstruct e1000_dev_spec_ich8lanstruct e1000_hwenum e1000_mac_typeenum e1000_media_typeenum e1000_nvm_typeenum e1000_nvm_overrideenum e1000_phy_typeenum e1000_bus_widthenum e1000_1000t_rx_statusenum e1000_rev_polarityenum e1000_fc_modeenum e1000_ms_typeenum e1000_smart_speedenum e1000_serdes_link_stateenum e1000_ulp_state
Annotated Snippet
struct e1000_tx_desc {
__le64 buffer_addr; /* Address of the descriptor's data buffer */
union {
__le32 data;
struct {
__le16 length; /* Data buffer length */
u8 cso; /* Checksum offset */
u8 cmd; /* Descriptor control */
} flags;
} lower;
union {
__le32 data;
struct {
u8 status; /* Descriptor status */
u8 css; /* Checksum start */
__le16 special;
} fields;
} upper;
};
/* Offload Context Descriptor */
struct e1000_context_desc {
union {
__le32 ip_config;
struct {
u8 ipcss; /* IP checksum start */
u8 ipcso; /* IP checksum offset */
__le16 ipcse; /* IP checksum end */
} ip_fields;
} lower_setup;
union {
__le32 tcp_config;
struct {
u8 tucss; /* TCP checksum start */
u8 tucso; /* TCP checksum offset */
__le16 tucse; /* TCP checksum end */
} tcp_fields;
} upper_setup;
__le32 cmd_and_length;
union {
__le32 data;
struct {
u8 status; /* Descriptor status */
u8 hdr_len; /* Header length */
__le16 mss; /* Maximum segment size */
} fields;
} tcp_seg_setup;
};
/* Offload data descriptor */
struct e1000_data_desc {
__le64 buffer_addr; /* Address of the descriptor's buffer address */
union {
__le32 data;
struct {
__le16 length; /* Data buffer length */
u8 typ_len_ext;
u8 cmd;
} flags;
} lower;
union {
__le32 data;
struct {
u8 status; /* Descriptor status */
u8 popts; /* Packet Options */
__le16 special;
} fields;
} upper;
};
/* Statistics counters collected by the MAC */
struct e1000_hw_stats {
u64 crcerrs;
u64 algnerrc;
u64 symerrs;
u64 rxerrc;
u64 mpc;
u64 scc;
u64 ecol;
u64 mcc;
u64 latecol;
u64 colc;
u64 dc;
u64 tncrs;
u64 sec;
u64 cexterr;
u64 rlec;
u64 xonrxc;
u64 xontxc;
u64 xoffrxc;
Annotation
- Immediate include surface: `regs.h`, `defines.h`, `mac.h`, `phy.h`, `nvm.h`, `manage.h`, `82571.h`, `80003es2lan.h`.
- Detected declarations: `struct e1000_hw`, `struct e1000_tx_desc`, `struct e1000_context_desc`, `struct e1000_data_desc`, `struct e1000_hw_stats`, `struct e1000_phy_stats`, `struct e1000_host_mng_dhcp_cookie`, `struct e1000_host_command_header`, `struct e1000_host_command_info`, `struct e1000_host_mng_command_header`.
- 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.