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.

Dependency Surface

Detected Declarations

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

Implementation Notes