drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c- Extension
.c- Size
- 35301 bytes
- Lines
- 1455
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
net/ip.hqlcnic.hqlcnic_hdr.hqlcnic_83xx_hw.hqlcnic_hw.h
Detected Declarations
struct qlcnic_pex_dma_descriptorstruct qlcnic_common_entry_hdrstruct __crbstruct __ctrlstruct __cachestruct __ocmstruct __memstruct __muxstruct __queuestruct __pollrdstruct __mux2struct __pollrdmwrstruct qlcnic_dump_entrystruct qlcnic_dump_operationsenum qlcnic_minidump_opcodefunction qlcnic_82xx_get_saved_statefunction qlcnic_82xx_set_saved_statefunction qlcnic_82xx_cache_tmpl_hdr_valuesfunction qlcnic_82xx_get_cap_sizefunction qlcnic_82xx_set_sys_infofunction qlcnic_82xx_store_cap_maskfunction qlcnic_83xx_get_saved_statefunction qlcnic_83xx_set_saved_statefunction qlcnic_83xx_cache_tmpl_hdr_valuesfunction qlcnic_83xx_get_cap_sizefunction qlcnic_83xx_set_sys_infofunction qlcnic_83xx_store_cap_maskfunction qlcnic_dump_crbfunction qlcnic_dump_ctrlfunction qlcnic_dump_muxfunction qlcnic_dump_quefunction qlcnic_dump_ocmfunction qlcnic_read_romfunction qlcnic_dump_l1_cachefunction qlcnic_dump_l2_cachefunction qlcnic_read_memory_test_agentfunction qlcnic_start_pex_dmafunction qlcnic_read_memory_pexdmafunction qlcnic_read_memoryfunction qlcnic_dump_nopfunction qlcnic_valid_dump_entryfunction qlcnic_read_pollrdmwrfunction qlcnic_read_pollrdfunction qlcnic_read_mux2function qlcnic_83xx_dump_romfunction qlcnic_temp_checksumfunction qlcnic_fw_flash_get_minidump_tempfunction qlcnic_fw_flash_get_minidump_temp_size
Annotated Snippet
struct qlcnic_pex_dma_descriptor {
u32 read_data_size;
u32 dma_desc_cmd;
u32 src_addr_low;
u32 src_addr_high;
u32 dma_bus_addr_low;
u32 dma_bus_addr_high;
u32 rsvd[6];
} __packed;
struct qlcnic_common_entry_hdr {
u32 type;
u32 offset;
u32 cap_size;
#if defined(__LITTLE_ENDIAN)
u8 mask;
u8 rsvd[2];
u8 flags;
#else
u8 flags;
u8 rsvd[2];
u8 mask;
#endif
} __packed;
struct __crb {
u32 addr;
#if defined(__LITTLE_ENDIAN)
u8 stride;
u8 rsvd1[3];
#else
u8 rsvd1[3];
u8 stride;
#endif
u32 data_size;
u32 no_ops;
u32 rsvd2[4];
} __packed;
struct __ctrl {
u32 addr;
#if defined(__LITTLE_ENDIAN)
u8 stride;
u8 index_a;
u16 timeout;
#else
u16 timeout;
u8 index_a;
u8 stride;
#endif
u32 data_size;
u32 no_ops;
#if defined(__LITTLE_ENDIAN)
u8 opcode;
u8 index_v;
u8 shl_val;
u8 shr_val;
#else
u8 shr_val;
u8 shl_val;
u8 index_v;
u8 opcode;
#endif
u32 val1;
u32 val2;
u32 val3;
} __packed;
struct __cache {
u32 addr;
#if defined(__LITTLE_ENDIAN)
u16 stride;
u16 init_tag_val;
#else
u16 init_tag_val;
u16 stride;
#endif
u32 size;
u32 no_ops;
u32 ctrl_addr;
u32 ctrl_val;
u32 read_addr;
#if defined(__LITTLE_ENDIAN)
u8 read_addr_stride;
u8 read_addr_num;
u8 rsvd1[2];
#else
u8 rsvd1[2];
u8 read_addr_num;
u8 read_addr_stride;
Annotation
- Immediate include surface: `net/ip.h`, `qlcnic.h`, `qlcnic_hdr.h`, `qlcnic_83xx_hw.h`, `qlcnic_hw.h`.
- Detected declarations: `struct qlcnic_pex_dma_descriptor`, `struct qlcnic_common_entry_hdr`, `struct __crb`, `struct __ctrl`, `struct __cache`, `struct __ocm`, `struct __mem`, `struct __mux`, `struct __queue`, `struct __pollrd`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
- 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.