drivers/scsi/ibmvscsi/ibmvscsi.h

Source file repositories/reference/linux-study-clean/drivers/scsi/ibmvscsi/ibmvscsi.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/ibmvscsi/ibmvscsi.h
Extension
.h
Size
2862 bytes
Lines
105
Domain
Driver Families
Bucket
drivers/scsi
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct crq_queue {
	struct viosrp_crq *msgs;
	int size, cur;
	dma_addr_t msg_token;
	spinlock_t lock;
};

/* a unit of work for the hosting partition */
struct srp_event_struct {
	union viosrp_iu *xfer_iu;
	struct scsi_cmnd *cmnd;
	struct list_head list;
	void (*done) (struct srp_event_struct *);
	struct viosrp_crq crq;
	struct ibmvscsi_host_data *hostdata;
	atomic_t free;
	union viosrp_iu iu;
	void (*cmnd_done) (struct scsi_cmnd *);
	struct completion comp;
	struct timer_list timer;
	union viosrp_iu *sync_srp;
	struct srp_direct_buf *ext_list;
	dma_addr_t ext_list_token;
};

/* a pool of event structs for use */
struct event_pool {
	struct srp_event_struct *events;
	u32 size;
	int next;
	union viosrp_iu *iu_storage;
	dma_addr_t iu_token;
};

enum ibmvscsi_host_action {
	IBMVSCSI_HOST_ACTION_NONE = 0,
	IBMVSCSI_HOST_ACTION_RESET,
	IBMVSCSI_HOST_ACTION_REENABLE,
	IBMVSCSI_HOST_ACTION_UNBLOCK,
};

/* all driver data associated with a host adapter */
struct ibmvscsi_host_data {
	struct list_head host_list;
	atomic_t request_limit;
	int client_migrated;
	enum ibmvscsi_host_action action;
	struct device *dev;
	struct event_pool pool;
	struct crq_queue queue;
	struct tasklet_struct srp_task;
	struct list_head sent;
	struct Scsi_Host *host;
	struct task_struct *work_thread;
	wait_queue_head_t work_wait_q;
	struct mad_adapter_info_data madapter_info;
	struct capabilities caps;
	dma_addr_t caps_addr;
	dma_addr_t adapter_info_addr;
};

#endif				/* IBMVSCSI_H */

Annotation

Implementation Notes