drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp.h- Extension
.h- Size
- 13960 bytes
- Lines
- 437
- 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_dma_addrstruct mcp_slotstruct mcp_cmdstruct mcp_cmd_responsestruct mcp_kreq_ether_sendstruct mcp_kreq_ether_recvstruct mcp_irq_dataenum myri10ge_mcp_cmd_typeenum myri10ge_mcp_cmd_status
Annotated Snippet
struct mcp_dma_addr {
__be32 high;
__be32 low;
};
/* 4 Bytes */
struct mcp_slot {
__sum16 checksum;
__be16 length;
};
/* 64 Bytes */
struct mcp_cmd {
__be32 cmd;
__be32 data0; /* will be low portion if data > 32 bits */
/* 8 */
__be32 data1; /* will be high portion if data > 32 bits */
__be32 data2; /* currently unused.. */
/* 16 */
struct mcp_dma_addr response_addr;
/* 24 */
u8 pad[40];
};
/* 8 Bytes */
struct mcp_cmd_response {
__be32 data;
__be32 result;
};
/*
* flags used in mcp_kreq_ether_send_t:
*
* The SMALL flag is only needed in the first segment. It is raised
* for packets that are total less or equal 512 bytes.
*
* The CKSUM flag must be set in all segments.
*
* The PADDED flags is set if the packet needs to be padded, and it
* must be set for all segments.
*
* The MXGEFW_FLAGS_ALIGN_ODD must be set if the cumulative
* length of all previous segments was odd.
*/
#define MXGEFW_FLAGS_SMALL 0x1
#define MXGEFW_FLAGS_TSO_HDR 0x1
#define MXGEFW_FLAGS_FIRST 0x2
#define MXGEFW_FLAGS_ALIGN_ODD 0x4
#define MXGEFW_FLAGS_CKSUM 0x8
#define MXGEFW_FLAGS_TSO_LAST 0x8
#define MXGEFW_FLAGS_NO_TSO 0x10
#define MXGEFW_FLAGS_TSO_CHOP 0x10
#define MXGEFW_FLAGS_TSO_PLD 0x20
#define MXGEFW_SEND_SMALL_SIZE 1520
#define MXGEFW_MAX_MTU 9400
union mcp_pso_or_cumlen {
u16 pseudo_hdr_offset;
u16 cum_len;
};
#define MXGEFW_MAX_SEND_DESC 12
#define MXGEFW_PAD 2
/* 16 Bytes */
struct mcp_kreq_ether_send {
__be32 addr_high;
__be32 addr_low;
__be16 pseudo_hdr_offset;
__be16 length;
u8 pad;
u8 rdma_count;
u8 cksum_offset; /* where to start computing cksum */
u8 flags; /* as defined above */
};
/* 8 Bytes */
struct mcp_kreq_ether_recv {
__be32 addr_high;
__be32 addr_low;
};
/* Commands */
#define MXGEFW_BOOT_HANDOFF 0xfc0000
#define MXGEFW_BOOT_DUMMY_RDMA 0xfc01c0
#define MXGEFW_ETH_CMD 0xf80000
Annotation
- Detected declarations: `struct mcp_dma_addr`, `struct mcp_slot`, `struct mcp_cmd`, `struct mcp_cmd_response`, `struct mcp_kreq_ether_send`, `struct mcp_kreq_ether_recv`, `struct mcp_irq_data`, `enum myri10ge_mcp_cmd_type`, `enum myri10ge_mcp_cmd_status`.
- 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.