drivers/staging/octeon/octeon-stubs.h
Source file repositories/reference/linux-study-clean/drivers/staging/octeon/octeon-stubs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/octeon/octeon-stubs.h- Extension
.h- Size
- 27355 bytes
- Lines
- 1436
- Domain
- Driver Families
- Bucket
- drivers/staging
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- 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 cvmx_wqestruct cvmx_ipd_ctl_status_sstruct cvmx_ipd_ctl_status_cn30xxstruct cvmx_ipd_ctl_status_cn38xxp2struct cvmx_ipd_ctl_status_cn50xxstruct cvmx_ipd_ctl_status_cn58xxstruct cvmx_ipd_ctl_status_cn63xxp1struct cvmx_ipd_sub_port_fcs_sstruct cvmx_ipd_sub_port_fcs_cn30xxstruct cvmx_ipd_sub_port_fcs_cn38xxstruct cvmx_ipd_sub_port_qos_cnt_sstruct cvmx_pip_frm_len_chkx_sstruct cvmx_gmxx_rxx_frm_ctl_sstruct cvmx_gmxx_rxx_frm_ctl_cn30xxstruct cvmx_gmxx_rxx_frm_ctl_cn31xxstruct cvmx_gmxx_rxx_frm_ctl_cn50xxstruct cvmx_gmxx_rxx_frm_ctl_cn56xxp1struct cvmx_gmxx_rxx_frm_ctl_cn58xxstruct cvmx_gmxx_rxx_frm_ctl_cn61xxstruct cvmx_gmxx_rxx_int_reg_sstruct cvmx_gmxx_rxx_int_reg_cn30xxstruct cvmx_gmxx_rxx_int_reg_cn50xxstruct cvmx_gmxx_rxx_int_reg_cn52xxstruct cvmx_gmxx_rxx_int_reg_cn56xxp1struct cvmx_gmxx_rxx_int_reg_cn58xxstruct cvmx_gmxx_rxx_int_reg_cn61xxstruct cvmx_gmxx_prtx_cfg_sstruct cvmx_gmxx_prtx_cfg_cn30xxstruct cvmx_gmxx_prtx_cfg_cn52xxstruct cvmx_gmxx_rxx_adr_ctl_sstruct cvmx_pip_prt_tagx_sstruct cvmx_pip_prt_tagx_cn30xxstruct cvmx_pip_prt_tagx_cn50xxstruct cvmx_spxx_int_reg_sstruct cvmx_spxx_int_msk_sstruct cvmx_pow_wq_int_sstruct cvmx_stxx_int_reg_sstruct cvmx_stxx_int_msk_sstruct cvmx_pow_wq_int_pc_sstruct cvmx_pow_wq_int_thrx_sstruct cvmx_pow_wq_int_thrx_cn30xxstruct cvmx_pow_wq_int_thrx_cn31xxstruct cvmx_pow_wq_int_thrx_cn52xxstruct cvmx_pow_wq_int_thrx_cn63xxstruct cvmx_npi_rsl_int_blocks_sstruct cvmx_npi_rsl_int_blocks_cn30xxstruct cvmx_npi_rsl_int_blocks_cn38xxstruct cvmx_npi_rsl_int_blocks_cn50xx
Annotated Snippet
struct cvmx_wqe {
union cvmx_wqe_word0 word0;
union cvmx_wqe_word1 word1;
union cvmx_pip_wqe_word2 word2;
union cvmx_buf_ptr packet_ptr;
u8 packet_data[96];
};
union cvmx_helper_link_info {
u64 u64;
struct {
u64 reserved_20_63:44;
u64 link_up:1; /**< Is the physical link up? */
u64 full_duplex:1; /**< 1 if the link is full duplex */
u64 speed:18; /**< Speed of the link in Mbps */
} s;
};
enum cvmx_fau_reg_32 {
CVMX_FAU_REG_32_START = 0,
};
enum cvmx_fau_op_size {
CVMX_FAU_OP_SIZE_8 = 0,
CVMX_FAU_OP_SIZE_16 = 1,
CVMX_FAU_OP_SIZE_32 = 2,
CVMX_FAU_OP_SIZE_64 = 3
};
typedef enum {
CVMX_SPI_MODE_UNKNOWN = 0,
CVMX_SPI_MODE_TX_HALFPLEX = 1,
CVMX_SPI_MODE_RX_HALFPLEX = 2,
CVMX_SPI_MODE_DUPLEX = 3
} cvmx_spi_mode_t;
typedef enum {
CVMX_HELPER_INTERFACE_MODE_DISABLED,
CVMX_HELPER_INTERFACE_MODE_RGMII,
CVMX_HELPER_INTERFACE_MODE_GMII,
CVMX_HELPER_INTERFACE_MODE_SPI,
CVMX_HELPER_INTERFACE_MODE_PCIE,
CVMX_HELPER_INTERFACE_MODE_XAUI,
CVMX_HELPER_INTERFACE_MODE_SGMII,
CVMX_HELPER_INTERFACE_MODE_PICMG,
CVMX_HELPER_INTERFACE_MODE_NPI,
CVMX_HELPER_INTERFACE_MODE_LOOP,
} cvmx_helper_interface_mode_t;
typedef enum {
CVMX_POW_WAIT = 1,
CVMX_POW_NO_WAIT = 0,
} cvmx_pow_wait_t;
typedef enum {
CVMX_PKO_LOCK_NONE = 0,
CVMX_PKO_LOCK_ATOMIC_TAG = 1,
CVMX_PKO_LOCK_CMD_QUEUE = 2,
} cvmx_pko_lock_t;
typedef enum {
CVMX_PKO_SUCCESS,
CVMX_PKO_INVALID_PORT,
CVMX_PKO_INVALID_QUEUE,
CVMX_PKO_INVALID_PRIORITY,
CVMX_PKO_NO_MEMORY,
CVMX_PKO_PORT_ALREADY_SETUP,
CVMX_PKO_CMD_QUEUE_INIT_ERROR
} cvmx_pko_status_t;
enum cvmx_pow_tag_type {
CVMX_POW_TAG_TYPE_ORDERED = 0L,
CVMX_POW_TAG_TYPE_ATOMIC = 1L,
CVMX_POW_TAG_TYPE_NULL = 2L,
CVMX_POW_TAG_TYPE_NULL_NULL = 3L
};
union cvmx_ipd_ctl_status {
u64 u64;
struct cvmx_ipd_ctl_status_s {
u64 reserved_18_63:46;
u64 use_sop:1;
u64 rst_done:1;
u64 clken:1;
u64 no_wptr:1;
u64 pq_apkt:1;
u64 pq_nabuf:1;
u64 ipd_full:1;
u64 pkt_off:1;
u64 len_m8:1;
Annotation
- Detected declarations: `struct cvmx_wqe`, `struct cvmx_ipd_ctl_status_s`, `struct cvmx_ipd_ctl_status_cn30xx`, `struct cvmx_ipd_ctl_status_cn38xxp2`, `struct cvmx_ipd_ctl_status_cn50xx`, `struct cvmx_ipd_ctl_status_cn58xx`, `struct cvmx_ipd_ctl_status_cn63xxp1`, `struct cvmx_ipd_sub_port_fcs_s`, `struct cvmx_ipd_sub_port_fcs_cn30xx`, `struct cvmx_ipd_sub_port_fcs_cn38xx`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.