drivers/scsi/pm8001/pm80xx_hwi.h
Source file repositories/reference/linux-study-clean/drivers/scsi/pm8001/pm80xx_hwi.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/pm8001/pm80xx_hwi.h- Extension
.h- Size
- 51080 bytes
- Lines
- 1668
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hscsi/libsas.h
Detected Declarations
struct sas_identify_frame_localstruct sas_identify_frame_localstruct mpi_msg_hdrstruct phy_start_reqstruct phy_stop_reqstruct set_dev_bits_fisstruct pio_setup_fisstruct sata_completion_respstruct hw_event_respstruct thermal_hw_eventstruct reg_dev_reqstruct dereg_dev_reqstruct dev_reg_respstruct local_phy_ctl_reqstruct local_phy_ctl_respstruct port_ctl_reqstruct hw_event_ack_reqstruct phy_start_respstruct phy_stop_respstruct ssp_completion_respstruct sata_event_respstruct ssp_event_respstruct general_event_respstruct smp_reqstruct smp_completion_respstruct task_abort_reqstruct task_abort_respstruct sas_diag_start_end_reqstruct sas_diag_execute_reqstruct set_dev_state_reqstruct sata_start_reqstruct ssp_ini_tm_start_reqstruct ssp_info_unitstruct ssp_ini_io_start_reqstruct ssp_dif_enc_io_reqstruct fw_flash_Update_reqstruct fw_flash_Update_respstruct get_nvm_data_reqstruct set_nvm_data_reqstruct set_ctrl_cfg_reqstruct get_ctrl_cfg_reqstruct kek_mgmt_reqstruct dek_mgmt_reqstruct set_phy_profile_reqstruct get_phy_profile_reqstruct ext_flash_partition_reqstruct get_nvm_data_respstruct sas_diag_start_end_resp
Annotated Snippet
struct sas_identify_frame_local {
/* Byte 0 */
u8 frame_type:4;
u8 dev_type:3;
u8 _un0:1;
/* Byte 1 */
u8 _un1;
/* Byte 2 */
union {
struct {
u8 _un20:1;
u8 smp_iport:1;
u8 stp_iport:1;
u8 ssp_iport:1;
u8 _un247:4;
};
u8 initiator_bits;
};
/* Byte 3 */
union {
struct {
u8 _un30:1;
u8 smp_tport:1;
u8 stp_tport:1;
u8 ssp_tport:1;
u8 _un347:4;
};
u8 target_bits;
};
/* Byte 4 - 11 */
u8 _un4_11[8];
/* Byte 12 - 19 */
u8 sas_addr[SAS_ADDR_SIZE];
/* Byte 20 */
u8 phy_id;
u8 _un21_27[7];
} __packed;
#elif defined(__BIG_ENDIAN_BITFIELD)
struct sas_identify_frame_local {
/* Byte 0 */
u8 _un0:1;
u8 dev_type:3;
u8 frame_type:4;
/* Byte 1 */
u8 _un1;
/* Byte 2 */
union {
struct {
u8 _un247:4;
u8 ssp_iport:1;
u8 stp_iport:1;
u8 smp_iport:1;
u8 _un20:1;
};
u8 initiator_bits;
};
/* Byte 3 */
union {
struct {
u8 _un347:4;
u8 ssp_tport:1;
u8 stp_tport:1;
u8 smp_tport:1;
u8 _un30:1;
};
u8 target_bits;
};
/* Byte 4 - 11 */
u8 _un4_11[8];
/* Byte 12 - 19 */
u8 sas_addr[SAS_ADDR_SIZE];
/* Byte 20 */
u8 phy_id;
u8 _un21_27[7];
Annotation
- Immediate include surface: `linux/types.h`, `scsi/libsas.h`.
- Detected declarations: `struct sas_identify_frame_local`, `struct sas_identify_frame_local`, `struct mpi_msg_hdr`, `struct phy_start_req`, `struct phy_stop_req`, `struct set_dev_bits_fis`, `struct pio_setup_fis`, `struct sata_completion_resp`, `struct hw_event_resp`, `struct thermal_hw_event`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.