drivers/scsi/isci/sas.h
Source file repositories/reference/linux-study-clean/drivers/scsi/isci/sas.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/isci/sas.h- Extension
.h- Size
- 6451 bytes
- Lines
- 218
- 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.
- 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/kernel.h
Detected Declarations
struct ssp_cmd_iustruct ssp_task_iustruct smp_req_phy_idstruct smp_req_conf_rtinfostruct smp_req_phycntlstruct smp_reqstruct sci_sas_address
Annotated Snippet
struct ssp_cmd_iu {
u8 LUN[8];
u8 add_cdb_len:6;
u8 _r_a:2;
u8 _r_b;
u8 en_fburst:1;
u8 task_prio:4;
u8 task_attr:3;
u8 _r_c;
u8 cdb[16];
} __packed;
/*
* contents of the SSP TASK INFORMATION UNIT.
* For specific information on each of these individual fields please
* reference the SAS specification SSP transport layer section.
* XXX: This needs to go into <scsi/sas.h>
*/
struct ssp_task_iu {
u8 LUN[8];
u8 _r_a;
u8 task_func;
u8 _r_b[4];
u16 task_tag;
u8 _r_c[12];
} __packed;
/*
* struct smp_req_phy_id - This structure defines the contents of
* an SMP Request that is comprised of the struct smp_request_header and a
* phy identifier.
* Examples: SMP_REQUEST_DISCOVER, SMP_REQUEST_REPORT_PHY_SATA.
*
* For specific information on each of these individual fields please reference
* the SAS specification.
*/
struct smp_req_phy_id {
u8 _r_a[4]; /* bytes 4-7 */
u8 ign_zone_grp:1; /* byte 8 */
u8 _r_b:7;
u8 phy_id; /* byte 9 */
u8 _r_c; /* byte 10 */
u8 _r_d; /* byte 11 */
} __packed;
/*
* struct smp_req_config_route_info - This structure defines the
* contents of an SMP Configure Route Information request.
*
* For specific information on each of these individual fields please reference
* the SAS specification.
*/
struct smp_req_conf_rtinfo {
u16 exp_change_cnt; /* bytes 4-5 */
u8 exp_rt_idx_hi; /* byte 6 */
u8 exp_rt_idx; /* byte 7 */
u8 _r_a; /* byte 8 */
u8 phy_id; /* byte 9 */
u16 _r_b; /* bytes 10-11 */
u8 _r_c:7; /* byte 12 */
u8 dis_rt_entry:1;
u8 _r_d[3]; /* bytes 13-15 */
u8 rt_sas_addr[8]; /* bytes 16-23 */
u8 _r_e[16]; /* bytes 24-39 */
} __packed;
/*
* struct smp_req_phycntl - This structure defines the contents of an
* SMP Phy Controller request.
*
* For specific information on each of these individual fields please reference
* the SAS specification.
*/
struct smp_req_phycntl {
u16 exp_change_cnt; /* byte 4-5 */
u8 _r_a[3]; /* bytes 6-8 */
u8 phy_id; /* byte 9 */
u8 phy_op; /* byte 10 */
u8 upd_pathway:1; /* byte 11 */
u8 _r_b:7;
Annotation
- Immediate include surface: `linux/kernel.h`.
- Detected declarations: `struct ssp_cmd_iu`, `struct ssp_task_iu`, `struct smp_req_phy_id`, `struct smp_req_conf_rtinfo`, `struct smp_req_phycntl`, `struct smp_req`, `struct sci_sas_address`.
- Atlas domain: Driver Families / drivers/scsi.
- 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.