drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
Source file repositories/reference/linux-study-clean/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/mpi3mr/mpi/mpi30_ioc.h- Extension
.h- Size
- 52711 bytes
- Lines
- 1095
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct mpi3_ioc_init_requeststruct mpi3_ioc_facts_requeststruct mpi3_ioc_facts_datastruct mpi3_mgmt_passthrough_requeststruct mpi3_create_request_queue_requeststruct mpi3_delete_request_queue_requeststruct mpi3_create_reply_queue_requeststruct mpi3_delete_reply_queue_requeststruct mpi3_port_enable_requeststruct mpi3_event_notification_requeststruct mpi3_event_notification_replystruct mpi3_event_data_gpio_interruptstruct mpi3_event_data_cable_managementstruct mpi3_event_ack_requeststruct mpi3_event_data_prepare_for_resetstruct mpi3_event_data_comp_image_activationstruct mpi3_event_data_device_status_changestruct mpi3_event_data_energy_pack_changestruct mpi3_event_data_sas_discoverystruct mpi3_event_data_sas_broadcast_primitivestruct mpi3_event_data_sas_notify_primitivestruct mpi3_event_sas_topo_phy_entrystruct mpi3_event_data_sas_topology_change_liststruct mpi3_event_data_sas_phy_counterstruct mpi3_event_data_sas_device_disc_errstruct mpi3_event_data_pcie_enumerationstruct mpi3_event_pcie_topo_port_entrystruct mpi3_event_data_pcie_topology_change_liststruct mpi3_event_data_pcie_error_thresholdstruct mpi3_event_data_sas_init_dev_status_changestruct mpi3_event_data_sas_init_table_overflowstruct mpi3_event_data_hard_reset_receivedstruct mpi3_event_data_diag_buffer_status_changestruct mpi3_pel_seqstruct mpi3_pel_entrystruct mpi3_pel_liststruct mpi3_pel_arg_mapstruct mpi3_pel_print_stringstruct mpi3_pel_print_string_liststruct mpi3_pel_requeststruct mpi3_pel_req_action_get_sequence_numbersstruct mpi3_pel_req_action_clear_log_markerstruct mpi3_pel_req_action_get_logstruct mpi3_pel_req_action_get_countstruct mpi3_pel_req_action_waitstruct mpi3_pel_req_action_abortstruct mpi3_pel_req_action_get_print_stringsstruct mpi3_pel_req_action_acknowledge
Annotated Snippet
struct mpi3_ioc_init_request {
__le16 host_tag;
u8 ioc_use_only02;
u8 function;
__le16 ioc_use_only04;
u8 ioc_use_only06;
u8 msg_flags;
__le16 change_count;
__le16 reserved0a;
union mpi3_version_union mpi_version;
__le64 time_stamp;
u8 reserved18;
u8 who_init;
__le16 reserved1a;
__le16 reply_free_queue_depth;
__le16 reserved1e;
__le64 reply_free_queue_address;
__le32 reserved28;
__le16 sense_buffer_free_queue_depth;
__le16 sense_buffer_length;
__le64 sense_buffer_free_queue_address;
__le64 driver_information_address;
};
#define MPI3_IOCINIT_MSGFLAGS_WRITESAMEDIVERT_SUPPORTED (0x08)
#define MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED (0x04)
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03)
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SHIFT (0)
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00)
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01)
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_INLINE (0x02)
#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_BOTH (0x03)
#define MPI3_WHOINIT_NOT_INITIALIZED (0x00)
#define MPI3_WHOINIT_ROM_BIOS (0x02)
#define MPI3_WHOINIT_HOST_DRIVER (0x03)
#define MPI3_WHOINIT_MANUFACTURER (0x04)
#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_MASK (0x00000003)
#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_SHIFT (0)
#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_GUIDANCE (0x00000000)
#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL (0x00000001)
#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_REPORT_AS_HDD (0x00000002)
#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_REPORT_AS_SSD (0x00000003)
struct mpi3_ioc_facts_request {
__le16 host_tag;
u8 ioc_use_only02;
u8 function;
__le16 ioc_use_only04;
u8 ioc_use_only06;
u8 msg_flags;
__le16 change_count;
__le16 reserved0a;
__le32 reserved0c;
union mpi3_sge_union sgl;
};
struct mpi3_ioc_facts_data {
__le16 ioc_facts_data_length;
__le16 reserved02;
union mpi3_version_union mpi_version;
struct mpi3_comp_image_version fw_version;
__le32 ioc_capabilities;
u8 ioc_number;
u8 who_init;
__le16 max_msix_vectors;
__le16 max_outstanding_requests;
__le16 product_id;
__le16 ioc_request_frame_size;
__le16 reply_frame_size;
__le16 ioc_exceptions;
__le16 max_persistent_id;
u8 sge_modifier_mask;
u8 sge_modifier_value;
u8 sge_modifier_shift;
u8 protocol_flags;
__le16 max_sas_initiators;
__le16 max_data_length;
__le16 max_sas_expanders;
__le16 max_enclosures;
__le16 min_dev_handle;
__le16 max_dev_handle;
__le16 max_pcie_switches;
__le16 max_nvme;
__le16 reserved38;
__le16 max_vds;
__le16 max_host_pds;
__le16 max_adv_host_pds;
__le16 max_raid_pds;
__le16 max_posted_cmd_buffers;
__le32 flags;
Annotation
- Detected declarations: `struct mpi3_ioc_init_request`, `struct mpi3_ioc_facts_request`, `struct mpi3_ioc_facts_data`, `struct mpi3_mgmt_passthrough_request`, `struct mpi3_create_request_queue_request`, `struct mpi3_delete_request_queue_request`, `struct mpi3_create_reply_queue_request`, `struct mpi3_delete_reply_queue_request`, `struct mpi3_port_enable_request`, `struct mpi3_event_notification_request`.
- 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.