drivers/net/ethernet/synopsys/dwc-xlgmac.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/synopsys/dwc-xlgmac.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/synopsys/dwc-xlgmac.h- Extension
.h- Size
- 19345 bytes
- Lines
- 662
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: operation-table or driver-model contract
- Status
- pattern 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 an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- 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
linux/dma-mapping.hlinux/netdevice.hlinux/workqueue.hlinux/phy.hlinux/if_vlan.hlinux/bitops.hlinux/timecounter.h
Detected Declarations
struct xlgmac_pdatastruct xlgmac_statsstruct xlgmac_ring_bufstruct xlgmac_dma_descstruct xlgmac_page_allocstruct xlgmac_buffer_datastruct xlgmac_tx_desc_datastruct xlgmac_rx_desc_datastruct xlgmac_pkt_infostruct xlgmac_desc_datastruct xlgmac_ringstruct xlgmac_channelstruct xlgmac_desc_opsstruct xlgmac_hw_opsstruct xlgmac_hw_featuresstruct xlgmac_resourcesstruct xlgmac_pdataenum xlgmac_int
Annotated Snippet
const struct net_device_ops *xlgmac_get_netdev_ops(void);
const struct ethtool_ops *xlgmac_get_ethtool_ops(void);
void xlgmac_dump_tx_desc(struct xlgmac_pdata *pdata,
struct xlgmac_ring *ring,
unsigned int idx,
unsigned int count,
unsigned int flag);
void xlgmac_dump_rx_desc(struct xlgmac_pdata *pdata,
struct xlgmac_ring *ring,
unsigned int idx);
void xlgmac_print_pkt(struct net_device *netdev,
struct sk_buff *skb, bool tx_rx);
void xlgmac_get_all_hw_features(struct xlgmac_pdata *pdata);
void xlgmac_print_all_hw_features(struct xlgmac_pdata *pdata);
int xlgmac_drv_probe(struct device *dev,
struct xlgmac_resources *res);
int xlgmac_drv_remove(struct device *dev);
/* For debug prints */
#ifdef XLGMAC_DEBUG
#define XLGMAC_PR(fmt, args...) \
pr_alert("[%s,%d]:" fmt, __func__, __LINE__, ## args)
#else
#define XLGMAC_PR(x...) do { } while (0)
#endif
#endif /* __DWC_XLGMAC_H__ */
Annotation
- Immediate include surface: `linux/dma-mapping.h`, `linux/netdevice.h`, `linux/workqueue.h`, `linux/phy.h`, `linux/if_vlan.h`, `linux/bitops.h`, `linux/timecounter.h`.
- Detected declarations: `struct xlgmac_pdata`, `struct xlgmac_stats`, `struct xlgmac_ring_buf`, `struct xlgmac_dma_desc`, `struct xlgmac_page_alloc`, `struct xlgmac_buffer_data`, `struct xlgmac_tx_desc_data`, `struct xlgmac_rx_desc_data`, `struct xlgmac_pkt_info`, `struct xlgmac_desc_data`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: pattern 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.