drivers/target/sbp/sbp_target.h

Source file repositories/reference/linux-study-clean/drivers/target/sbp/sbp_target.h

File Facts

System
Linux kernel
Corpus path
drivers/target/sbp/sbp_target.h
Extension
.h
Size
6023 bytes
Lines
244
Domain
Driver Families
Bucket
drivers/target
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 sbp2_pointer {
	__be32 high;
	__be32 low;
};

struct sbp_command_block_orb {
	struct sbp2_pointer next_orb;
	struct sbp2_pointer data_descriptor;
	__be32 misc;
	u8 command_block[12];
};

struct sbp_page_table_entry {
	__be16 segment_length;
	__be16 segment_base_hi;
	__be32 segment_base_lo;
};

struct sbp_management_orb {
	struct sbp2_pointer ptr1;
	struct sbp2_pointer ptr2;
	__be32 misc;
	__be32 length;
	struct sbp2_pointer status_fifo;
};

struct sbp_status_block {
	__be32 status;
	__be32 orb_low;
	u8 data[24];
};

struct sbp_login_response_block {
	__be32 misc;
	struct sbp2_pointer command_block_agent;
	__be32 reconnect_hold;
};

struct sbp_login_descriptor {
	struct sbp_session *sess;
	struct list_head link;

	u32 login_lun;

	u64 status_fifo_addr;
	int exclusive;
	u16 login_id;

	struct sbp_target_agent *tgt_agt;
};

struct sbp_session {
	spinlock_t lock;
	struct se_session *se_sess;
	struct list_head login_list;
	struct delayed_work maint_work;

	u64 guid; /* login_owner_EUI_64 */
	int node_id; /* login_owner_ID */

	struct fw_card *card;
	int generation;
	int speed;

	int reconnect_hold;
	u64 reconnect_expires;
};

struct sbp_tpg {
	/* Target portal group tag for TCM */
	u16 tport_tpgt;
	/* Pointer back to sbp_tport */
	struct sbp_tport *tport;
	/* Returned by sbp_make_tpg() */
	struct se_portal_group se_tpg;
};

struct sbp_tport {
	/* Target Unit Identifier (EUI-64) */
	u64 guid;
	/* Target port name */
	char tport_name[SBP_NAMELEN];
	/* Returned by sbp_make_tport() */
	struct se_wwn tport_wwn;

	struct sbp_tpg *tpg;

	/* FireWire unit directory */
	struct fw_descriptor unit_directory;

Annotation

Implementation Notes