drivers/net/ethernet/freescale/dpaa2/dpni.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/freescale/dpaa2/dpni.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/freescale/dpaa2/dpni.h- Extension
.h- Size
- 34800 bytes
- Lines
- 1120
- 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
dpkg.h
Detected Declarations
struct fsl_mc_iostruct dpni_pools_cfgstruct dpni_attrstruct dpni_error_cfgstruct dpni_buffer_layoutstruct dpni_link_cfgstruct dpni_link_statestruct dpni_fs_tbl_cfgstruct dpni_rx_tc_dist_cfgstruct dpni_rx_dist_cfgstruct dpni_qos_tbl_cfgstruct dpni_queuestruct dpni_queue_idstruct dpni_dest_cfgstruct dpni_congestion_notification_cfgstruct dpni_taildropstruct dpni_rule_cfgstruct dpni_fs_action_cfgstruct dpni_tx_shaping_cfgstruct dpni_single_step_cfgenum dpni_error_actionenum dpni_queue_typeenum dpni_offloadenum dpni_dist_modeenum dpni_fs_miss_actionenum dpni_destenum dpni_congestion_unitenum dpni_congestion_point
Annotated Snippet
struct dpni_pools_cfg {
u8 num_dpbp;
u8 pool_options;
struct {
int dpbp_id;
u8 priority_mask;
u16 buffer_size;
int backup_pool;
} pools[DPNI_MAX_DPBP];
};
int dpni_set_pools(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
const struct dpni_pools_cfg *cfg);
int dpni_enable(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token);
int dpni_disable(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token);
int dpni_is_enabled(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
int *en);
int dpni_reset(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token);
/* DPNI IRQ Index and Events */
#define DPNI_IRQ_INDEX 0
/* DPNI_IRQ_EVENT_LINK_CHANGED - indicates a change in link state */
#define DPNI_IRQ_EVENT_LINK_CHANGED 0x00000001
/* DPNI_IRQ_EVENT_ENDPOINT_CHANGED - indicates a change in endpoint */
#define DPNI_IRQ_EVENT_ENDPOINT_CHANGED 0x00000002
int dpni_set_irq_enable(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
u8 irq_index,
u8 en);
int dpni_get_irq_enable(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
u8 irq_index,
u8 *en);
int dpni_set_irq_mask(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
u8 irq_index,
u32 mask);
int dpni_get_irq_mask(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
u8 irq_index,
u32 *mask);
int dpni_get_irq_status(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
u8 irq_index,
u32 *status);
int dpni_clear_irq_status(struct fsl_mc_io *mc_io,
u32 cmd_flags,
u16 token,
u8 irq_index,
u32 status);
/**
* struct dpni_attr - Structure representing DPNI attributes
* @options: Any combination of the following options:
* DPNI_OPT_TX_FRM_RELEASE
* DPNI_OPT_NO_MAC_FILTER
* DPNI_OPT_HAS_POLICING
* DPNI_OPT_SHARED_CONGESTION
* DPNI_OPT_HAS_KEY_MASKING
* DPNI_OPT_NO_FS
* @num_queues: Number of Tx and Rx queues used for traffic distribution.
* @num_tcs: Number of traffic classes (TCs), reserved for the DPNI.
Annotation
- Immediate include surface: `dpkg.h`.
- Detected declarations: `struct fsl_mc_io`, `struct dpni_pools_cfg`, `struct dpni_attr`, `struct dpni_error_cfg`, `struct dpni_buffer_layout`, `struct dpni_link_cfg`, `struct dpni_link_state`, `struct dpni_fs_tbl_cfg`, `struct dpni_rx_tc_dist_cfg`, `struct dpni_rx_dist_cfg`.
- 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.