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.
- 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
linux/firewire.hlinux/spinlock.hlinux/types.hlinux/workqueue.htarget/target_core_base.h
Detected Declarations
struct sbp2_pointerstruct sbp_command_block_orbstruct sbp_page_table_entrystruct sbp_management_orbstruct sbp_status_blockstruct sbp_login_response_blockstruct sbp_login_descriptorstruct sbp_sessionstruct sbp_tpgstruct sbp_tportstruct sbp_target_agentstruct sbp_target_requeststruct sbp_management_agentstruct sbp_management_requestfunction sbp2_pointer_to_addrfunction addr_to_sbp2_pointer
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
- Immediate include surface: `linux/firewire.h`, `linux/spinlock.h`, `linux/types.h`, `linux/workqueue.h`, `target/target_core_base.h`.
- Detected declarations: `struct sbp2_pointer`, `struct sbp_command_block_orb`, `struct sbp_page_table_entry`, `struct sbp_management_orb`, `struct sbp_status_block`, `struct sbp_login_response_block`, `struct sbp_login_descriptor`, `struct sbp_session`, `struct sbp_tpg`, `struct sbp_tport`.
- Atlas domain: Driver Families / drivers/target.
- 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.