drivers/scsi/mpt3sas/mpt3sas_base.h
Source file repositories/reference/linux-study-clean/drivers/scsi/mpt3sas/mpt3sas_base.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/mpt3sas/mpt3sas_base.h- Extension
.h- Size
- 69390 bytes
- Lines
- 2067
- 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
mpi/mpi2_type.hmpi/mpi2.hmpi/mpi2_ioc.hmpi/mpi2_cnfg.hmpi/mpi2_init.hmpi/mpi2_raid.hmpi/mpi2_tool.hmpi/mpi2_sas.hmpi/mpi2_pci.hmpi/mpi2_image.hscsi/scsi.hscsi/scsi_cmnd.hscsi/scsi_device.hscsi/scsi_host.hscsi/scsi_tcq.hscsi/scsi_transport_sas.hscsi/scsi_dbg.hscsi/scsi_eh.hlinux/pci.hlinux/poll.hlinux/irq_poll.hmpt3sas_debug.hmpt3sas_trigger_diag.hmpt3sas_trigger_pages.h
Detected Declarations
struct mpt3sas_nvme_cmdstruct Mpi2ManufacturingPage10_tstruct Mpi2ManufacturingPage11_tstruct MPT3SAS_TARGETstruct MPT3SAS_DEVICEstruct _internal_cmdstruct _sas_devicestruct _pcie_devicestruct _raid_devicestruct _boot_devicestruct _sas_portstruct _sas_phystruct _sas_nodestruct _enclosure_nodestruct pcie_sg_liststruct chain_trackerstruct chain_lookupstruct scsiio_trackerstruct request_trackerstruct _tr_liststruct _sc_liststruct _event_ack_liststruct adapter_reply_queuestruct io_uring_poll_queuestruct mpt3sas_factsstruct mpt3sas_port_factsstruct reply_post_structstruct virtual_phystruct hba_portstruct htb_rel_querystruct MPT3SAS_ADAPTERstruct mpt3sas_debugfs_bufferstruct ATTO_SAS_NVRAMenum reset_typefunction sas_device_getfunction sas_device_freefunction sas_device_putfunction pcie_device_getfunction pcie_device_freefunction pcie_device_putfunction mpt3sas_scsih_is_pcie_scsi_device
Annotated Snippet
struct mpt3sas_nvme_cmd {
u8 rsvd[24];
__le64 prp1;
__le64 prp2;
};
/*
* logging format
*/
#define ioc_err(ioc, fmt, ...) \
pr_err("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
#define ioc_notice(ioc, fmt, ...) \
pr_notice("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
#define ioc_warn(ioc, fmt, ...) \
pr_warn("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
#define ioc_info(ioc, fmt, ...) \
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
/*
* WarpDrive Specific Log codes
*/
#define MPT2_WARPDRIVE_LOGENTRY (0x8002)
#define MPT2_WARPDRIVE_LC_SSDT (0x41)
#define MPT2_WARPDRIVE_LC_SSDLW (0x43)
#define MPT2_WARPDRIVE_LC_SSDLF (0x44)
#define MPT2_WARPDRIVE_LC_BRMF (0x4D)
/*
* per target private data
*/
#define MPT_TARGET_FLAGS_RAID_COMPONENT 0x01
#define MPT_TARGET_FLAGS_VOLUME 0x02
#define MPT_TARGET_FLAGS_DELETED 0x04
#define MPT_TARGET_FASTPATH_IO 0x08
#define MPT_TARGET_FLAGS_PCIE_DEVICE 0x10
#define SAS2_PCI_DEVICE_B0_REVISION (0x01)
#define SAS3_PCI_DEVICE_C0_REVISION (0x02)
/* Atlas PCIe Switch Management Port */
#define MPI26_ATLAS_PCIe_SWITCH_DEVID (0x00B2)
/*
* Intel HBA branding
*/
#define MPT2SAS_INTEL_RMS25JB080_BRANDING \
"Intel(R) Integrated RAID Module RMS25JB080"
#define MPT2SAS_INTEL_RMS25JB040_BRANDING \
"Intel(R) Integrated RAID Module RMS25JB040"
#define MPT2SAS_INTEL_RMS25KB080_BRANDING \
"Intel(R) Integrated RAID Module RMS25KB080"
#define MPT2SAS_INTEL_RMS25KB040_BRANDING \
"Intel(R) Integrated RAID Module RMS25KB040"
#define MPT2SAS_INTEL_RMS25LB040_BRANDING \
"Intel(R) Integrated RAID Module RMS25LB040"
#define MPT2SAS_INTEL_RMS25LB080_BRANDING \
"Intel(R) Integrated RAID Module RMS25LB080"
#define MPT2SAS_INTEL_RMS2LL080_BRANDING \
"Intel Integrated RAID Module RMS2LL080"
#define MPT2SAS_INTEL_RMS2LL040_BRANDING \
"Intel Integrated RAID Module RMS2LL040"
#define MPT2SAS_INTEL_RS25GB008_BRANDING \
"Intel(R) RAID Controller RS25GB008"
#define MPT2SAS_INTEL_SSD910_BRANDING \
"Intel(R) SSD 910 Series"
#define MPT3SAS_INTEL_RMS3JC080_BRANDING \
"Intel(R) Integrated RAID Module RMS3JC080"
#define MPT3SAS_INTEL_RS3GC008_BRANDING \
"Intel(R) RAID Controller RS3GC008"
#define MPT3SAS_INTEL_RS3FC044_BRANDING \
"Intel(R) RAID Controller RS3FC044"
#define MPT3SAS_INTEL_RS3UC080_BRANDING \
"Intel(R) RAID Controller RS3UC080"
/*
* Intel HBA SSDIDs
*/
#define MPT2SAS_INTEL_RMS25JB080_SSDID 0x3516
#define MPT2SAS_INTEL_RMS25JB040_SSDID 0x3517
#define MPT2SAS_INTEL_RMS25KB080_SSDID 0x3518
#define MPT2SAS_INTEL_RMS25KB040_SSDID 0x3519
#define MPT2SAS_INTEL_RMS25LB040_SSDID 0x351A
#define MPT2SAS_INTEL_RMS25LB080_SSDID 0x351B
#define MPT2SAS_INTEL_RMS2LL080_SSDID 0x350E
#define MPT2SAS_INTEL_RMS2LL040_SSDID 0x350F
#define MPT2SAS_INTEL_RS25GB008_SSDID 0x3000
#define MPT2SAS_INTEL_SSD910_SSDID 0x3700
Annotation
- Immediate include surface: `mpi/mpi2_type.h`, `mpi/mpi2.h`, `mpi/mpi2_ioc.h`, `mpi/mpi2_cnfg.h`, `mpi/mpi2_init.h`, `mpi/mpi2_raid.h`, `mpi/mpi2_tool.h`, `mpi/mpi2_sas.h`.
- Detected declarations: `struct mpt3sas_nvme_cmd`, `struct Mpi2ManufacturingPage10_t`, `struct Mpi2ManufacturingPage11_t`, `struct MPT3SAS_TARGET`, `struct MPT3SAS_DEVICE`, `struct _internal_cmd`, `struct _sas_device`, `struct _pcie_device`, `struct _raid_device`, `struct _boot_device`.
- 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.