include/scsi/viosrp.h
Source file repositories/reference/linux-study-clean/include/scsi/viosrp.h
File Facts
- System
- Linux kernel
- Corpus path
include/scsi/viosrp.h- Extension
.h- Size
- 5616 bytes
- Lines
- 218
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
scsi/srp.h
Detected Declarations
struct viosrp_crqstruct mad_commonstruct viosrp_empty_iustruct viosrp_error_logstruct viosrp_adapter_infostruct viosrp_fast_failstruct viosrp_capabilitiesstruct mad_capability_commonstruct mad_reserve_capstruct mad_migration_capstruct capabilitiesstruct mad_adapter_info_dataenum viosrp_crq_headersenum viosrp_crq_init_formatsenum viosrp_crq_formatsenum viosrp_crq_statusenum viosrp_mad_typesenum viosrp_mad_statusenum viosrp_capability_typeenum viosrp_capability_supportenum viosrp_reserve_typeenum viosrp_capability_flag
Annotated Snippet
struct viosrp_crq {
union {
__be64 high; /* High 64 bits */
struct {
u8 valid; /* used by RPA */
u8 format; /* SCSI vs out-of-band */
u8 reserved;
u8 status; /* non-scsi failure? (e.g. DMA failure) */
__be16 timeout; /* in seconds */
__be16 IU_length; /* in bytes */
};
};
__be64 IU_data_ptr; /* the TCE for transferring data */
};
/* MADs are Management requests above and beyond the IUs defined in the SRP
* standard.
*/
enum viosrp_mad_types {
VIOSRP_EMPTY_IU_TYPE = 0x01,
VIOSRP_ERROR_LOG_TYPE = 0x02,
VIOSRP_ADAPTER_INFO_TYPE = 0x03,
VIOSRP_CAPABILITIES_TYPE = 0x05,
VIOSRP_ENABLE_FAST_FAIL = 0x08,
};
enum viosrp_mad_status {
VIOSRP_MAD_SUCCESS = 0x00,
VIOSRP_MAD_NOT_SUPPORTED = 0xF1,
VIOSRP_MAD_FAILED = 0xF7,
};
enum viosrp_capability_type {
MIGRATION_CAPABILITIES = 0x01,
RESERVATION_CAPABILITIES = 0x02,
};
enum viosrp_capability_support {
SERVER_DOES_NOT_SUPPORTS_CAP = 0x0,
SERVER_SUPPORTS_CAP = 0x01,
SERVER_CAP_DATA = 0x02,
};
enum viosrp_reserve_type {
CLIENT_RESERVE_SCSI_2 = 0x01,
};
enum viosrp_capability_flag {
CLIENT_MIGRATED = 0x01,
CLIENT_RECONNECT = 0x02,
CAP_LIST_SUPPORTED = 0x04,
CAP_LIST_DATA = 0x08,
};
/*
* Common MAD header
*/
struct mad_common {
__be32 type;
__be16 status;
__be16 length;
__be64 tag;
};
/*
* All SRP (and MAD) requests normally flow from the
* client to the server. There is no way for the server to send
* an asynchronous message back to the client. The Empty IU is used
* to hang out a meaningless request to the server so that it can respond
* asynchrouously with something like a SCSI AER
*/
struct viosrp_empty_iu {
struct mad_common common;
__be64 buffer;
__be32 port;
};
struct viosrp_error_log {
struct mad_common common;
__be64 buffer;
};
struct viosrp_adapter_info {
struct mad_common common;
__be64 buffer;
};
struct viosrp_fast_fail {
struct mad_common common;
};
Annotation
- Immediate include surface: `scsi/srp.h`.
- Detected declarations: `struct viosrp_crq`, `struct mad_common`, `struct viosrp_empty_iu`, `struct viosrp_error_log`, `struct viosrp_adapter_info`, `struct viosrp_fast_fail`, `struct viosrp_capabilities`, `struct mad_capability_common`, `struct mad_reserve_cap`, `struct mad_migration_cap`.
- Atlas domain: Repository Root And Misc / include.
- 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.