include/target/target_core_base.h
Source file repositories/reference/linux-study-clean/include/target/target_core_base.h
File Facts
- System
- Linux kernel
- Corpus path
include/target/target_core_base.h- Extension
.h- Size
- 30102 bytes
- Lines
- 1049
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/configfs.hlinux/dma-direction.hlinux/sbitmap.hlinux/percpu-refcount.hlinux/semaphore.hlinux/completion.hscsi/scsi_common.h
Detected Declarations
struct se_cmdstruct t10_alua_lba_map_memberstruct t10_alua_lba_mapstruct t10_aluastruct t10_alua_lu_gpstruct t10_alua_lu_gp_memberstruct t10_alua_tg_pt_gpstruct t10_vpdstruct t10_wwnstruct t10_pr_registrationstruct t10_reservationstruct se_tmr_reqstruct se_cmdstruct se_uastruct se_node_aclstruct target_cmd_counterstruct se_sessionstruct se_devicestruct se_transform_infostruct scatterliststruct se_ml_stat_grpsstruct se_lun_aclstruct se_dev_entry_io_statsstruct se_dev_entrystruct se_dev_attribstruct se_port_stat_grpsstruct scsi_port_statsstruct se_lunstruct se_dev_stat_grpsstruct se_cmd_queuestruct se_dev_plugstruct se_device_queuestruct se_dev_io_statsstruct se_devicestruct target_opcode_descriptorstruct se_hbastruct se_tpg_npstruct se_portal_groupstruct se_wwnenum target_compl_typeenum target_submit_typeenum hba_flags_tableenum transport_state_tableenum se_cmd_flags_tableenum tcm_sense_reason_tableenum target_sc_flags_tableenum tcm_tmreq_tableenum tcm_tmrsp_table
Annotated Snippet
struct t10_alua_lba_map_member {
struct list_head lba_map_mem_list;
int lba_map_mem_alua_state;
int lba_map_mem_alua_pg_id;
};
struct t10_alua_lba_map {
u64 lba_map_first_lba;
u64 lba_map_last_lba;
struct list_head lba_map_list;
struct list_head lba_map_mem_list;
};
struct t10_alua {
/* ALUA Target Port Group ID */
u16 alua_tg_pt_gps_counter;
u32 alua_tg_pt_gps_count;
/* Referrals support */
spinlock_t lba_map_lock;
u32 lba_map_segment_size;
u32 lba_map_segment_multiplier;
struct list_head lba_map_list;
spinlock_t tg_pt_gps_lock;
struct se_device *t10_dev;
/* Used for default ALUA Target Port Group */
struct t10_alua_tg_pt_gp *default_tg_pt_gp;
/* Used for default ALUA Target Port Group ConfigFS group */
struct config_group alua_tg_pt_gps_group;
struct list_head tg_pt_gps_list;
};
struct t10_alua_lu_gp {
u16 lu_gp_id;
int lu_gp_valid_id;
u32 lu_gp_members;
atomic_t lu_gp_ref_cnt;
spinlock_t lu_gp_lock;
struct config_group lu_gp_group;
struct list_head lu_gp_node;
struct list_head lu_gp_mem_list;
};
struct t10_alua_lu_gp_member {
bool lu_gp_assoc;
atomic_t lu_gp_mem_ref_cnt;
spinlock_t lu_gp_mem_lock;
struct t10_alua_lu_gp *lu_gp;
struct se_device *lu_gp_mem_dev;
struct list_head lu_gp_mem_list;
};
struct t10_alua_tg_pt_gp {
u16 tg_pt_gp_id;
int tg_pt_gp_valid_id;
int tg_pt_gp_alua_supported_states;
int tg_pt_gp_alua_access_status;
int tg_pt_gp_alua_access_type;
int tg_pt_gp_nonop_delay_msecs;
int tg_pt_gp_trans_delay_msecs;
int tg_pt_gp_implicit_trans_secs;
int tg_pt_gp_pref;
int tg_pt_gp_write_metadata;
u32 tg_pt_gp_members;
int tg_pt_gp_alua_access_state;
atomic_t tg_pt_gp_ref_cnt;
spinlock_t tg_pt_gp_lock;
struct mutex tg_pt_gp_transition_mutex;
struct se_device *tg_pt_gp_dev;
struct config_group tg_pt_gp_group;
struct list_head tg_pt_gp_list;
struct list_head tg_pt_gp_lun_list;
struct se_lun *tg_pt_gp_alua_lun;
struct se_node_acl *tg_pt_gp_alua_nacl;
};
struct t10_vpd {
unsigned char device_identifier[INQUIRY_VPD_DEVICE_IDENTIFIER_LEN];
int protocol_identifier_set;
u32 protocol_identifier;
u32 device_identifier_code_set;
u32 association;
u32 device_identifier_type;
struct list_head vpd_list;
};
struct t10_wwn {
/*
* SCSI left aligned strings may not be null terminated. +1 to ensure a
* null terminator is always present.
*/
Annotation
- Immediate include surface: `linux/configfs.h`, `linux/dma-direction.h`, `linux/sbitmap.h`, `linux/percpu-refcount.h`, `linux/semaphore.h`, `linux/completion.h`, `scsi/scsi_common.h`.
- Detected declarations: `struct se_cmd`, `struct t10_alua_lba_map_member`, `struct t10_alua_lba_map`, `struct t10_alua`, `struct t10_alua_lu_gp`, `struct t10_alua_lu_gp_member`, `struct t10_alua_tg_pt_gp`, `struct t10_vpd`, `struct t10_wwn`, `struct t10_pr_registration`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.