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.

Dependency Surface

Detected Declarations

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

Implementation Notes