drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp_gen_header.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp_gen_header.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp_gen_header.h- Extension
.h- Size
- 1923 bytes
- Lines
- 62
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct mcp_gen_headerstruct zmcp_info
Annotated Snippet
struct mcp_gen_header {
/* the first 4 fields are filled at compile time */
unsigned header_length;
__be32 mcp_type;
char version[128];
unsigned mcp_private; /* pointer to mcp-type specific structure */
/* filled by the MCP at run-time */
unsigned sram_size;
unsigned string_specs; /* either the original STRING_SPECS or a superset */
unsigned string_specs_len;
/* Fields above this comment are guaranteed to be present.
*
* Fields below this comment are extensions added in later versions
* of this struct, drivers should compare the header_length against
* offsetof(field) to check whether a given MCP implements them.
*
* Never remove any field. Keep everything naturally align.
*/
/* Specifies if the running mcp is mcp0, 1, or 2. */
unsigned char mcp_index;
unsigned char disable_rabbit;
unsigned char unaligned_tlp;
unsigned char pcie_link_algo;
unsigned counters_addr;
unsigned copy_block_info; /* for small mcps loaded with "lload -d" */
unsigned short handoff_id_major; /* must be equal */
unsigned short handoff_id_caps; /* bitfield: new mcp must have superset */
unsigned msix_table_addr; /* start address of msix table in firmware */
unsigned bss_addr; /* start of bss */
unsigned features;
unsigned ee_hdr_addr;
unsigned led_pattern;
unsigned led_pattern_dflt;
/* 8 */
};
struct zmcp_info {
unsigned info_len;
unsigned zmcp_addr;
unsigned zmcp_len;
unsigned mcp_edata;
};
#endif /* __MYRI10GE_MCP_GEN_HEADER_H__ */
Annotation
- Detected declarations: `struct mcp_gen_header`, `struct zmcp_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.