Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/hyperv/storvsc/hv_vstorage.h
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | |||||
/* | /* | ||||
* Version history: | * Version history: | ||||
* V1 Beta 0.1 | * V1 Beta 0.1 | ||||
* V1 RC < 2008/1/31 1.0 | * V1 RC < 2008/1/31 1.0 | ||||
* V1 RC > 2008/1/31 2.0 | * V1 RC > 2008/1/31 2.0 | ||||
*/ | */ | ||||
#define VMSTOR_PROTOCOL_VERSION_CURRENT VMSTOR_PROTOCOL_VERSION(2, 0) | #define VMSTOR_PROTOCOL_VERSION_CURRENT VMSTOR_PROTOCOL_VERSION(5, 1) | ||||
/** | /** | ||||
* Packet structure ops describing virtual storage requests. | * Packet structure ops describing virtual storage requests. | ||||
*/ | */ | ||||
enum vstor_packet_ops { | enum vstor_packet_ops { | ||||
VSTOR_OPERATION_COMPLETEIO = 1, | VSTOR_OPERATION_COMPLETEIO = 1, | ||||
VSTOR_OPERATION_REMOVEDEVICE = 2, | VSTOR_OPERATION_REMOVEDEVICE = 2, | ||||
VSTOR_OPERATION_EXECUTESRB = 3, | VSTOR_OPERATION_EXECUTESRB = 3, | ||||
VSTOR_OPERATION_RESETLUN = 4, | VSTOR_OPERATION_RESETLUN = 4, | ||||
VSTOR_OPERATION_RESETADAPTER = 5, | VSTOR_OPERATION_RESETADAPTER = 5, | ||||
VSTOR_OPERATION_RESETBUS = 6, | VSTOR_OPERATION_RESETBUS = 6, | ||||
VSTOR_OPERATION_BEGININITIALIZATION = 7, | VSTOR_OPERATION_BEGININITIALIZATION = 7, | ||||
VSTOR_OPERATION_ENDINITIALIZATION = 8, | VSTOR_OPERATION_ENDINITIALIZATION = 8, | ||||
VSTOR_OPERATION_QUERYPROTOCOLVERSION = 9, | VSTOR_OPERATION_QUERYPROTOCOLVERSION = 9, | ||||
VSTOR_OPERATION_QUERYPROPERTIES = 10, | VSTOR_OPERATION_QUERYPROPERTIES = 10, | ||||
VSTOR_OPERATION_MAXIMUM = 10 | VSTOR_OPERATION_ENUMERATE_BUS = 11, | ||||
VSTOR_OPERATION_FCHBA_DATA = 12, | |||||
VSTOR_OPERATION_CREATE_MULTI_CHANNELS = 13, | |||||
VSTOR_OPERATION_MAXIMUM = 13 | |||||
}; | }; | ||||
/* | /* | ||||
* Platform neutral description of a scsi request - | * Platform neutral description of a scsi request - | ||||
* this remains the same across the write regardless of 32/64 bit | * this remains the same across the write regardless of 32/64 bit | ||||
* note: it's patterned off the Windows DDK SCSI_PASS_THROUGH structure | * note: it's patterned off the Windows DDK SCSI_PASS_THROUGH structure | ||||
*/ | */ | ||||
Show All 37 Lines | |||||
* properties of the channel. | * properties of the channel. | ||||
*/ | */ | ||||
struct vmstor_chan_props { | struct vmstor_chan_props { | ||||
uint16_t proto_ver; | uint16_t proto_ver; | ||||
uint8_t path_id; | uint8_t path_id; | ||||
uint8_t target_id; | uint8_t target_id; | ||||
uint16_t max_channel_cnt; | |||||
/** | /** | ||||
* Note: port number is only really known on the client side | * Note: port number is only really known on the client side | ||||
*/ | */ | ||||
uint32_t port; | uint16_t port; | ||||
uint32_t flags; | uint32_t flags; | ||||
uint32_t max_transfer_bytes; | uint32_t max_transfer_bytes; | ||||
/** | /** | ||||
* This id is unique for each channel and will correspond with | * This id is unique for each channel and will correspond with | ||||
* vendor specific data in the inquiry_ata | * vendor specific data in the inquiry_ata | ||||
*/ | */ | ||||
uint64_t unique_id; | uint64_t unique_id; | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | union | ||||
* Structure used to query channel properties. | * Structure used to query channel properties. | ||||
*/ | */ | ||||
struct vmstor_chan_props chan_props; | struct vmstor_chan_props chan_props; | ||||
/** | /** | ||||
* Used during version negotiations. | * Used during version negotiations. | ||||
*/ | */ | ||||
struct vmstor_proto_ver version; | struct vmstor_proto_ver version; | ||||
/** | |||||
* Number of multichannels to create | |||||
*/ | |||||
uint16_t multi_channels_cnt; | |||||
} u; | } u; | ||||
} __packed; | } __packed; | ||||
/** | /** | ||||
* SRB (SCSI Request Block) Status Codes | * SRB (SCSI Request Block) Status Codes | ||||
*/ | */ | ||||
Show All 30 Lines |