drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h- Extension
.h- Size
- 4312 bytes
- Lines
- 171
- 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
linux/utsname.hlinux/time.hlinux/rtc.h
Detected Declarations
struct bnxt_coredump_segment_hdrstruct bnxt_coredump_recordstruct bnxt_driver_segment_recordstruct bnxt_coredumpstruct bnxt_hwrm_dbg_dma_infostruct hwrm_dbg_cmn_inputstruct hwrm_dbg_cmn_output
Annotated Snippet
struct bnxt_coredump_segment_hdr {
__u8 signature[4];
__le32 component_id;
__le32 segment_id;
__le32 flags;
__u8 low_version;
__u8 high_version;
__le16 function_id;
__le32 offset;
__le32 length;
__le32 status;
__le32 duration;
__le32 data_offset;
__le32 instance;
__le32 rsvd[5];
};
struct bnxt_coredump_record {
__u8 signature[4];
__le32 flags;
__u8 low_version;
__u8 high_version;
__u8 asic_state;
__u8 rsvd0[5];
char system_name[32];
__le16 year;
__le16 month;
__le16 day;
__le16 hour;
__le16 minute;
__le16 second;
__le16 utc_bias;
__le16 rsvd1;
char commandline[256];
__le32 total_segments;
__le32 os_ver_major;
__le32 os_ver_minor;
__le32 rsvd2;
char os_name[32];
__le16 end_year;
__le16 end_month;
__le16 end_day;
__le16 end_hour;
__le16 end_minute;
__le16 end_second;
__le16 end_utc_bias;
__le32 asic_id1;
__le32 asic_id2;
__le32 coredump_status;
__u8 ioctl_low_version;
__u8 ioctl_high_version;
__le16 rsvd3[313];
};
struct bnxt_driver_segment_record {
__le32 max_entries;
__le32 entry_size;
__le32 offset;
__u8 wrapped:1;
__u8 unused[3];
};
#define BNXT_VER_GET_COMP_ID 2
#define BNXT_DRV_COMP_ID 0xd
#define BNXT_CTX_MEM_SEG_ID_START 0x200
#define BNXT_CTX_MEM_SEG_QP (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_QP)
#define BNXT_CTX_MEM_SEG_SRQ (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_SRQ)
#define BNXT_CTX_MEM_SEG_CQ (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_CQ)
#define BNXT_CTX_MEM_SEG_VNIC (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_VNIC)
#define BNXT_CTX_MEM_SEG_STAT (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_STAT)
#define BNXT_CTX_MEM_SEG_STQM (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_STQM)
#define BNXT_CTX_MEM_SEG_FTQM (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_FTQM)
#define BNXT_CTX_MEM_SEG_MRAV (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_MRAV)
#define BNXT_CTX_MEM_SEG_TIM (BNXT_CTX_MEM_SEG_ID_START + BNXT_CTX_TIM)
#define BNXT_CTX_MEM_SEG_SRT 0x1
#define BNXT_CTX_MEM_SEG_SRT2 0x2
#define BNXT_CTX_MEM_SEG_CRT 0x3
#define BNXT_CTX_MEM_SEG_CRT2 0x4
#define BNXT_CTX_MEM_SEG_RIGP0 0x5
#define BNXT_CTX_MEM_SEG_L2HWRM 0x6
#define BNXT_CTX_MEM_SEG_REHWRM 0x7
#define BNXT_CTX_MEM_SEG_CA0 0x8
#define BNXT_CTX_MEM_SEG_CA1 0x9
#define BNXT_CTX_MEM_SEG_CA2 0xa
#define BNXT_CTX_MEM_SEG_RIGP1 0xb
#define BNXT_CTX_MEM_SEG_QPC 0xc
#define BNXT_CTX_MEM_SEG_KONG 0xd
Annotation
- Immediate include surface: `linux/utsname.h`, `linux/time.h`, `linux/rtc.h`.
- Detected declarations: `struct bnxt_coredump_segment_hdr`, `struct bnxt_coredump_record`, `struct bnxt_driver_segment_record`, `struct bnxt_coredump`, `struct bnxt_hwrm_dbg_dma_info`, `struct hwrm_dbg_cmn_input`, `struct hwrm_dbg_cmn_output`.
- 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.