drivers/net/ethernet/cavium/liquidio/octeon_config.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/cavium/liquidio/octeon_config.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/cavium/liquidio/octeon_config.h- Extension
.h- Size
- 14808 bytes
- Lines
- 473
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct octeon_iq_configstruct octeon_oq_configstruct octeon_nic_if_configstruct octeon_misc_configstruct octeon_configenum lio_card_type
Annotated Snippet
struct octeon_iq_config {
#ifdef __BIG_ENDIAN_BITFIELD
u64 reserved:16;
/** Tx interrupt packets. Applicable to 23xx only */
u64 iq_intr_pkt:16;
/** Minimum ticks to wait before checking for pending instructions. */
u64 db_timeout:16;
/** Minimum number of commands pending to be posted to Octeon
* before driver hits the Input queue doorbell.
*/
u64 db_min:8;
/** Command size - 32 or 64 bytes */
u64 instr_type:32;
/** Pending list size (usually set to the sum of the size of all Input
* queues)
*/
u64 pending_list_size:32;
/* Max number of IQs available */
u64 max_iqs:8;
#else
/* Max number of IQs available */
u64 max_iqs:8;
/** Pending list size (usually set to the sum of the size of all Input
* queues)
*/
u64 pending_list_size:32;
/** Command size - 32 or 64 bytes */
u64 instr_type:32;
/** Minimum number of commands pending to be posted to Octeon
* before driver hits the Input queue doorbell.
*/
u64 db_min:8;
/** Minimum ticks to wait before checking for pending instructions. */
u64 db_timeout:16;
/** Tx interrupt packets. Applicable to 23xx only */
u64 iq_intr_pkt:16;
u64 reserved:16;
#endif
};
/** Structure to define the configuration attributes for each Output queue.
* Applicable to all Octeon processors
**/
struct octeon_oq_config {
#ifdef __BIG_ENDIAN_BITFIELD
u64 reserved:16;
u64 pkts_per_intr:16;
/** Interrupt Coalescing (Time Interval). Octeon will interrupt the
* host if atleast one packet was sent in the time interval specified
* by this field. The driver uses time interval interrupt coalescing
* by default. The time is specified in microseconds.
*/
u64 oq_intr_time:16;
/** Interrupt Coalescing (Packet Count). Octeon will interrupt the host
* only if it sent as many packets as specified by this field.
* The driver
* usually does not use packet count interrupt coalescing.
*/
u64 oq_intr_pkt:16;
/** The number of buffers that were consumed during packet processing by
* the driver on this Output queue before the driver attempts to
* replenish
* the descriptor ring with new buffers.
*/
u64 refill_threshold:16;
/* Max number of OQs available */
u64 max_oqs:8;
#else
/* Max number of OQs available */
u64 max_oqs:8;
/** The number of buffers that were consumed during packet processing by
Annotation
- Detected declarations: `struct octeon_iq_config`, `struct octeon_oq_config`, `struct octeon_nic_if_config`, `struct octeon_misc_config`, `struct octeon_config`, `enum lio_card_type`.
- 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.