drivers/net/ethernet/intel/fm10k/fm10k_type.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/fm10k/fm10k_type.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/intel/fm10k/fm10k_type.h- Extension
.h- Size
- 25071 bytes
- Lines
- 769
- 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
linux/types.hasm/byteorder.hlinux/etherdevice.hfm10k_mbx.h
Detected Declarations
struct fm10k_hwstruct fm10k_bus_infostruct fm10k_hw_statstruct fm10k_hw_stats_qstruct fm10k_hw_statsstruct fm10k_dglort_cfgstruct fm10k_faultstruct fm10k_mac_opsstruct fm10k_mac_infostruct fm10k_swapi_table_infostruct fm10k_swapi_infostruct fm10k_vf_infostruct fm10k_iov_opsstruct fm10k_iov_infostruct fm10k_infostruct fm10k_hwstruct fm10k_tx_descstruct fm10k_tx_desc_cachestruct fm10k_ftagenum fm10k_int_sourceenum fm10k_bus_speedenum fm10k_bus_widthenum fm10k_bus_payloadenum fm10k_dglortdec_idxenum fm10k_pca_faultenum fm10k_thi_faultenum fm10k_fum_faultenum fm10k_mac_typeenum fm10k_xcast_modesenum fm10k_devicesenum fm10k_rdesc_rss_typeenum fm10k_rxdesc_xc
Annotated Snippet
struct fm10k_bus_info {
enum fm10k_bus_speed speed;
enum fm10k_bus_width width;
enum fm10k_bus_payload payload;
};
/* Statistics related declarations */
struct fm10k_hw_stat {
u64 count;
u32 base_l;
u32 base_h;
};
struct fm10k_hw_stats_q {
struct fm10k_hw_stat tx_bytes;
struct fm10k_hw_stat tx_packets;
#define tx_stats_idx tx_packets.base_h
struct fm10k_hw_stat rx_bytes;
struct fm10k_hw_stat rx_packets;
#define rx_stats_idx rx_packets.base_h
struct fm10k_hw_stat rx_drops;
};
struct fm10k_hw_stats {
struct fm10k_hw_stat timeout;
#define stats_idx timeout.base_h
struct fm10k_hw_stat ur;
struct fm10k_hw_stat ca;
struct fm10k_hw_stat um;
struct fm10k_hw_stat xec;
struct fm10k_hw_stat vlan_drop;
struct fm10k_hw_stat loopback_drop;
struct fm10k_hw_stat nodesc_drop;
struct fm10k_hw_stats_q q[FM10K_MAX_QUEUES_PF];
};
/* Establish DGLORT feature priority */
enum fm10k_dglortdec_idx {
fm10k_dglort_default = 0,
fm10k_dglort_vf_rsvd0 = 1,
fm10k_dglort_vf_rss = 2,
fm10k_dglort_pf_rsvd0 = 3,
fm10k_dglort_pf_queue = 4,
fm10k_dglort_pf_vsi = 5,
fm10k_dglort_pf_rsvd1 = 6,
fm10k_dglort_pf_rss = 7
};
struct fm10k_dglort_cfg {
u16 glort; /* GLORT base */
u16 queue_b; /* Base value for queue */
u8 vsi_b; /* Base value for VSI */
u8 idx; /* index of DGLORTDEC entry */
u8 rss_l; /* RSS indices */
u8 pc_l; /* Priority Class indices */
u8 vsi_l; /* Number of bits from GLORT used to determine VSI */
u8 queue_l; /* Number of bits from GLORT used to determine queue */
u8 shared_l; /* Ignored bits from GLORT resulting in shared VSI */
u8 inner_rss; /* Boolean value if inner header is used for RSS */
};
enum fm10k_pca_fault {
PCA_NO_FAULT,
PCA_UNMAPPED_ADDR,
PCA_BAD_QACCESS_PF,
PCA_BAD_QACCESS_VF,
PCA_MALICIOUS_REQ,
PCA_POISONED_TLP,
PCA_TLP_ABORT,
__PCA_MAX
};
enum fm10k_thi_fault {
THI_NO_FAULT,
THI_MAL_DIS_Q_FAULT,
__THI_MAX
};
enum fm10k_fum_fault {
FUM_NO_FAULT,
FUM_UNMAPPED_ADDR,
FUM_POISONED_TLP,
FUM_BAD_VF_QACCESS,
FUM_ADD_DECODE_ERR,
FUM_RO_ERROR,
FUM_QPRC_CRC_ERROR,
FUM_CSR_TIMEOUT,
FUM_INVALID_TYPE,
FUM_INVALID_LENGTH,
FUM_INVALID_BE,
Annotation
- Immediate include surface: `linux/types.h`, `asm/byteorder.h`, `linux/etherdevice.h`, `fm10k_mbx.h`.
- Detected declarations: `struct fm10k_hw`, `struct fm10k_bus_info`, `struct fm10k_hw_stat`, `struct fm10k_hw_stats_q`, `struct fm10k_hw_stats`, `struct fm10k_dglort_cfg`, `struct fm10k_fault`, `struct fm10k_mac_ops`, `struct fm10k_mac_info`, `struct fm10k_swapi_table_info`.
- 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.