include/linux/qed/storage_common.h
Source file repositories/reference/linux-study-clean/include/linux/qed/storage_common.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/qed/storage_common.h- Extension
.h- Size
- 3853 bytes
- Lines
- 158
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- 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 iscsi_drv_opaquestruct scsi_bdstruct scsi_bdq_ram_drv_datastruct scsi_sgestruct scsi_cached_sgesstruct scsi_drv_cmdqstruct scsi_init_func_paramsstruct scsi_init_func_queuesstruct scsi_ram_per_bdq_resource_drv_datastruct scsi_sgl_paramsstruct scsi_terminate_extra_paramsstruct scsi_tqeenum scsi_sgl_mode
Annotated Snippet
struct iscsi_drv_opaque {
__le16 reserved_zero[3];
__le16 opaque;
};
/* Scsi 2B/8B opaque union */
union scsi_opaque {
struct regpair fcoe_opaque;
struct iscsi_drv_opaque iscsi_opaque;
};
/* SCSI buffer descriptor */
struct scsi_bd {
struct regpair address;
union scsi_opaque opaque;
};
/* Scsi Drv BDQ struct */
struct scsi_bdq_ram_drv_data {
__le16 external_producer;
__le16 reserved0[3];
};
/* SCSI SGE entry */
struct scsi_sge {
struct regpair sge_addr;
__le32 sge_len;
__le32 reserved;
};
/* Cached SGEs section */
struct scsi_cached_sges {
struct scsi_sge sge[4];
};
/* Scsi Drv CMDQ struct */
struct scsi_drv_cmdq {
__le16 cmdq_cons;
__le16 reserved0;
__le32 reserved1;
};
/* Common SCSI init params passed by driver to FW in function init ramrod */
struct scsi_init_func_params {
__le16 num_tasks;
u8 log_page_size;
u8 log_page_size_conn;
u8 debug_mode;
u8 reserved2[11];
};
/* SCSI RQ/CQ/CMDQ firmware function init parameters */
struct scsi_init_func_queues {
struct regpair glbl_q_params_addr;
__le16 rq_buffer_size;
__le16 cq_num_entries;
__le16 cmdq_num_entries;
u8 bdq_resource_id;
u8 q_validity;
#define SCSI_INIT_FUNC_QUEUES_RQ_VALID_MASK 0x1
#define SCSI_INIT_FUNC_QUEUES_RQ_VALID_SHIFT 0
#define SCSI_INIT_FUNC_QUEUES_IMM_DATA_VALID_MASK 0x1
#define SCSI_INIT_FUNC_QUEUES_IMM_DATA_VALID_SHIFT 1
#define SCSI_INIT_FUNC_QUEUES_CMD_VALID_MASK 0x1
#define SCSI_INIT_FUNC_QUEUES_CMD_VALID_SHIFT 2
#define SCSI_INIT_FUNC_QUEUES_TQ_VALID_MASK 0x1
#define SCSI_INIT_FUNC_QUEUES_TQ_VALID_SHIFT 3
#define SCSI_INIT_FUNC_QUEUES_SOC_EN_MASK 0x1
#define SCSI_INIT_FUNC_QUEUES_SOC_EN_SHIFT 4
#define SCSI_INIT_FUNC_QUEUES_SOC_NUM_OF_BLOCKS_LOG_MASK 0x7
#define SCSI_INIT_FUNC_QUEUES_SOC_NUM_OF_BLOCKS_LOG_SHIFT 5
__le16 cq_cmdq_sb_num_arr[SCSI_MAX_NUM_OF_CMDQS];
u8 num_queues;
u8 queue_relative_offset;
u8 cq_sb_pi;
u8 cmdq_sb_pi;
u8 bdq_pbl_num_entries[BDQ_NUM_IDS];
u8 reserved1;
struct regpair bdq_pbl_base_address[BDQ_NUM_IDS];
__le16 bdq_xoff_threshold[BDQ_NUM_IDS];
__le16 cmdq_xoff_threshold;
__le16 bdq_xon_threshold[BDQ_NUM_IDS];
__le16 cmdq_xon_threshold;
};
/* Scsi Drv BDQ Data struct (2 BDQ IDs: 0 - RQ, 1 - Immediate Data) */
struct scsi_ram_per_bdq_resource_drv_data {
struct scsi_bdq_ram_drv_data drv_data_per_bdq_id[BDQ_NUM_IDS];
};
Annotation
- Detected declarations: `struct iscsi_drv_opaque`, `struct scsi_bd`, `struct scsi_bdq_ram_drv_data`, `struct scsi_sge`, `struct scsi_cached_sges`, `struct scsi_drv_cmdq`, `struct scsi_init_func_params`, `struct scsi_init_func_queues`, `struct scsi_ram_per_bdq_resource_drv_data`, `struct scsi_sgl_params`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.