drivers/net/ethernet/cortina/gemini.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/cortina/gemini.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/cortina/gemini.h- Extension
.h- Size
- 28421 bytes
- Lines
- 959
- 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/bitops.h
Detected Declarations
struct bit_0008struct bit_000cstruct bit_0070_2struct bit_8000struct bit_8004struct bit_8008struct bit_8040struct txdesc_word1struct txdesc_word3struct gmac_txdescstruct bit_8060struct rxdesc_word1struct rxdesc_word3struct gmac_rxdescstruct bit_80C8struct bit1_000cstruct bit1_0018struct bit1_001cstruct bit1_0020struct bit1_0024struct bit1_002cstruct bit_nonqhdr1struct nontoe_qhdr
Annotated Snippet
struct bit_0008 {
unsigned int sw_skb_size : 16; /* SW Free poll SKB Size */
unsigned int hw_skb_size : 16; /* HW Free poll SKB Size */
} bits;
};
/* DMA SW Free Queue Read/Write Pointer Register (offset 0x000c) */
union dma_rwptr {
unsigned int bits32;
struct bit_000c {
unsigned int rptr : 16; /* Read Ptr, RO */
unsigned int wptr : 16; /* Write Ptr, RW */
} bits;
};
/* Interrupt Status Register 0 (offset 0x0020)
* Interrupt Mask Register 0 (offset 0x0024)
* Interrupt Select Register 0 (offset 0x0028)
*/
#define GMAC1_TXDERR_INT_BIT BIT(31)
#define GMAC1_TXPERR_INT_BIT BIT(30)
#define GMAC0_TXDERR_INT_BIT BIT(29)
#define GMAC0_TXPERR_INT_BIT BIT(28)
#define GMAC1_RXDERR_INT_BIT BIT(27)
#define GMAC1_RXPERR_INT_BIT BIT(26)
#define GMAC0_RXDERR_INT_BIT BIT(25)
#define GMAC0_RXPERR_INT_BIT BIT(24)
#define GMAC1_SWTQ15_FIN_INT_BIT BIT(23)
#define GMAC1_SWTQ14_FIN_INT_BIT BIT(22)
#define GMAC1_SWTQ13_FIN_INT_BIT BIT(21)
#define GMAC1_SWTQ12_FIN_INT_BIT BIT(20)
#define GMAC1_SWTQ11_FIN_INT_BIT BIT(19)
#define GMAC1_SWTQ10_FIN_INT_BIT BIT(18)
#define GMAC0_SWTQ05_FIN_INT_BIT BIT(17)
#define GMAC0_SWTQ04_FIN_INT_BIT BIT(16)
#define GMAC0_SWTQ03_FIN_INT_BIT BIT(15)
#define GMAC0_SWTQ02_FIN_INT_BIT BIT(14)
#define GMAC0_SWTQ01_FIN_INT_BIT BIT(13)
#define GMAC0_SWTQ00_FIN_INT_BIT BIT(12)
#define GMAC1_SWTQ15_EOF_INT_BIT BIT(11)
#define GMAC1_SWTQ14_EOF_INT_BIT BIT(10)
#define GMAC1_SWTQ13_EOF_INT_BIT BIT(9)
#define GMAC1_SWTQ12_EOF_INT_BIT BIT(8)
#define GMAC1_SWTQ11_EOF_INT_BIT BIT(7)
#define GMAC1_SWTQ10_EOF_INT_BIT BIT(6)
#define GMAC0_SWTQ05_EOF_INT_BIT BIT(5)
#define GMAC0_SWTQ04_EOF_INT_BIT BIT(4)
#define GMAC0_SWTQ03_EOF_INT_BIT BIT(3)
#define GMAC0_SWTQ02_EOF_INT_BIT BIT(2)
#define GMAC0_SWTQ01_EOF_INT_BIT BIT(1)
#define GMAC0_SWTQ00_EOF_INT_BIT BIT(0)
/* Interrupt Status Register 1 (offset 0x0030)
* Interrupt Mask Register 1 (offset 0x0034)
* Interrupt Select Register 1 (offset 0x0038)
*/
#define TOE_IQ3_FULL_INT_BIT BIT(31)
#define TOE_IQ2_FULL_INT_BIT BIT(30)
#define TOE_IQ1_FULL_INT_BIT BIT(29)
#define TOE_IQ0_FULL_INT_BIT BIT(28)
#define TOE_IQ3_INT_BIT BIT(27)
#define TOE_IQ2_INT_BIT BIT(26)
#define TOE_IQ1_INT_BIT BIT(25)
#define TOE_IQ0_INT_BIT BIT(24)
#define GMAC1_HWTQ13_EOF_INT_BIT BIT(23)
#define GMAC1_HWTQ12_EOF_INT_BIT BIT(22)
#define GMAC1_HWTQ11_EOF_INT_BIT BIT(21)
#define GMAC1_HWTQ10_EOF_INT_BIT BIT(20)
#define GMAC0_HWTQ03_EOF_INT_BIT BIT(19)
#define GMAC0_HWTQ02_EOF_INT_BIT BIT(18)
#define GMAC0_HWTQ01_EOF_INT_BIT BIT(17)
#define GMAC0_HWTQ00_EOF_INT_BIT BIT(16)
#define CLASS_RX_INT_BIT(x) BIT((x + 2))
#define DEFAULT_Q1_INT_BIT BIT(1)
#define DEFAULT_Q0_INT_BIT BIT(0)
#define TOE_IQ_INT_BITS (TOE_IQ0_INT_BIT | TOE_IQ1_INT_BIT | \
TOE_IQ2_INT_BIT | TOE_IQ3_INT_BIT)
#define TOE_IQ_FULL_BITS (TOE_IQ0_FULL_INT_BIT | TOE_IQ1_FULL_INT_BIT | \
TOE_IQ2_FULL_INT_BIT | TOE_IQ3_FULL_INT_BIT)
#define TOE_IQ_ALL_BITS (TOE_IQ_INT_BITS | TOE_IQ_FULL_BITS)
#define TOE_CLASS_RX_INT_BITS 0xfffc
/* Interrupt Status Register 2 (offset 0x0040)
* Interrupt Mask Register 2 (offset 0x0044)
* Interrupt Select Register 2 (offset 0x0048)
*/
#define TOE_QL_FULL_INT_BIT(x) BIT(x)
/* Interrupt Status Register 3 (offset 0x0050)
Annotation
- Immediate include surface: `linux/bitops.h`.
- Detected declarations: `struct bit_0008`, `struct bit_000c`, `struct bit_0070_2`, `struct bit_8000`, `struct bit_8004`, `struct bit_8008`, `struct bit_8040`, `struct txdesc_word1`, `struct txdesc_word3`, `struct gmac_txdesc`.
- 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.