drivers/scsi/megaraid/megaraid_sas.h
Source file repositories/reference/linux-study-clean/drivers/scsi/megaraid/megaraid_sas.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/megaraid/megaraid_sas.h- Extension
.h- Size
- 67101 bytes
- Lines
- 2765
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- 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
scsi/scsi_cmnd.h
Detected Declarations
struct MR_PD_PROGRESSstruct MR_PD_INFOstruct MR_TARGET_PROPERTIESstruct MR_PD_ADDRESSstruct MR_PD_LISTstruct megasas_pd_liststruct MR_LD_LISTstruct MR_LD_TARGETID_LISTstruct MR_HOST_DEVICE_LIST_ENTRYstruct MR_HOST_DEVICE_LISTstruct megasas_ctrl_propstruct megasas_ctrl_infostruct megasas_register_setstruct megasas_sge32struct megasas_sge64struct megasas_sge_skinnystruct megasas_headerstruct megasas_init_framestruct megasas_init_queue_infostruct megasas_io_framestruct megasas_pthru_framestruct megasas_dcmd_framestruct megasas_abort_framestruct megasas_smp_framestruct megasas_stp_framestruct MR_PRIV_DEVICEstruct megasas_cmdstruct megasas_evt_log_infostruct megasas_progressstruct megasas_evtarg_ldstruct megasas_evtarg_pdstruct megasas_evt_detailstruct megasas_aen_eventstruct megasas_irq_contextstruct MR_DRV_SYSTEM_INFOstruct megasas_instancestruct MR_LD_VF_MAPstruct MR_LD_VF_AFFILIATIONstruct IOV_111struct MR_LD_VF_MAP_111struct MR_LD_VF_AFFILIATION_111struct MR_CTRL_HB_HOST_MEMstruct megasas_instance_templatestruct megasas_cmdstruct megasas_cmd_privstruct megasas_iocpacketstruct megasas_aenstruct compat_megasas_iocpacket
Annotated Snippet
struct MR_PD_PROGRESS {
struct {
#ifndef __BIG_ENDIAN_BITFIELD
u32 rbld:1;
u32 patrol:1;
u32 clear:1;
u32 copyBack:1;
u32 erase:1;
u32 locate:1;
u32 reserved:26;
#else
u32 reserved:26;
u32 locate:1;
u32 erase:1;
u32 copyBack:1;
u32 clear:1;
u32 patrol:1;
u32 rbld:1;
#endif
} active;
union MR_PROGRESS rbld;
union MR_PROGRESS patrol;
union {
union MR_PROGRESS clear;
union MR_PROGRESS erase;
};
struct {
#ifndef __BIG_ENDIAN_BITFIELD
u32 rbld:1;
u32 patrol:1;
u32 clear:1;
u32 copyBack:1;
u32 erase:1;
u32 reserved:27;
#else
u32 reserved:27;
u32 erase:1;
u32 copyBack:1;
u32 clear:1;
u32 patrol:1;
u32 rbld:1;
#endif
} pause;
union MR_PROGRESS reserved[3];
} __packed;
struct MR_PD_INFO {
union MR_PD_REF ref;
u8 inquiryData[96];
u8 vpdPage83[64];
u8 notSupported;
u8 scsiDevType;
union {
u8 connectedPortBitmap;
u8 connectedPortNumbers;
};
u8 deviceSpeed;
u32 mediaErrCount;
u32 otherErrCount;
u32 predFailCount;
u32 lastPredFailEventSeqNum;
u16 fwState;
u8 disabledForRemoval;
u8 linkSpeed;
union MR_PD_DDF_TYPE state;
struct {
u8 count;
#ifndef __BIG_ENDIAN_BITFIELD
u8 isPathBroken:4;
u8 reserved3:3;
u8 widePortCapable:1;
#else
u8 widePortCapable:1;
u8 reserved3:3;
u8 isPathBroken:4;
#endif
u8 connectorIndex[2];
u8 reserved[4];
u64 sasAddr[2];
u8 reserved2[16];
} pathInfo;
u64 rawSize;
Annotation
- Immediate include surface: `scsi/scsi_cmnd.h`.
- Detected declarations: `struct MR_PD_PROGRESS`, `struct MR_PD_INFO`, `struct MR_TARGET_PROPERTIES`, `struct MR_PD_ADDRESS`, `struct MR_PD_LIST`, `struct megasas_pd_list`, `struct MR_LD_LIST`, `struct MR_LD_TARGETID_LIST`, `struct MR_HOST_DEVICE_LIST_ENTRY`, `struct MR_HOST_DEVICE_LIST`.
- Atlas domain: Driver Families / drivers/scsi.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
- 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.