diff options
Diffstat (limited to 'drivers/scsi/ibmvscsi/viosrp.h')
-rw-r--r-- | drivers/scsi/ibmvscsi/viosrp.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/drivers/scsi/ibmvscsi/viosrp.h b/drivers/scsi/ibmvscsi/viosrp.h index f5a9c26d1da8..2cd735d1d196 100644 --- a/drivers/scsi/ibmvscsi/viosrp.h +++ b/drivers/scsi/ibmvscsi/viosrp.h | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | #define SRP_VERSION "16.a" | 38 | #define SRP_VERSION "16.a" |
39 | #define SRP_MAX_IU_LEN 256 | 39 | #define SRP_MAX_IU_LEN 256 |
40 | #define SRP_MAX_LOC_LEN 32 | ||
40 | 41 | ||
41 | union srp_iu { | 42 | union srp_iu { |
42 | struct srp_login_req login_req; | 43 | struct srp_login_req login_req; |
@@ -87,6 +88,7 @@ enum viosrp_mad_types { | |||
87 | VIOSRP_ERROR_LOG_TYPE = 0x02, | 88 | VIOSRP_ERROR_LOG_TYPE = 0x02, |
88 | VIOSRP_ADAPTER_INFO_TYPE = 0x03, | 89 | VIOSRP_ADAPTER_INFO_TYPE = 0x03, |
89 | VIOSRP_HOST_CONFIG_TYPE = 0x04, | 90 | VIOSRP_HOST_CONFIG_TYPE = 0x04, |
91 | VIOSRP_CAPABILITIES_TYPE = 0x05, | ||
90 | VIOSRP_ENABLE_FAST_FAIL = 0x08, | 92 | VIOSRP_ENABLE_FAST_FAIL = 0x08, |
91 | }; | 93 | }; |
92 | 94 | ||
@@ -96,6 +98,28 @@ enum viosrp_mad_status { | |||
96 | VIOSRP_MAD_FAILED = 0xF7, | 98 | VIOSRP_MAD_FAILED = 0xF7, |
97 | }; | 99 | }; |
98 | 100 | ||
101 | enum viosrp_capability_type { | ||
102 | MIGRATION_CAPABILITIES = 0x01, | ||
103 | RESERVATION_CAPABILITIES = 0x02, | ||
104 | }; | ||
105 | |||
106 | enum viosrp_capability_support { | ||
107 | SERVER_DOES_NOT_SUPPORTS_CAP = 0x0, | ||
108 | SERVER_SUPPORTS_CAP = 0x01, | ||
109 | SERVER_CAP_DATA = 0x02, | ||
110 | }; | ||
111 | |||
112 | enum viosrp_reserve_type { | ||
113 | CLIENT_RESERVE_SCSI_2 = 0x01, | ||
114 | }; | ||
115 | |||
116 | enum viosrp_capability_flag { | ||
117 | CLIENT_MIGRATED = 0x01, | ||
118 | CLIENT_RECONNECT = 0x02, | ||
119 | CAP_LIST_SUPPORTED = 0x04, | ||
120 | CAP_LIST_DATA = 0x08, | ||
121 | }; | ||
122 | |||
99 | /* | 123 | /* |
100 | * Common MAD header | 124 | * Common MAD header |
101 | */ | 125 | */ |
@@ -138,12 +162,42 @@ struct viosrp_fast_fail { | |||
138 | struct mad_common common; | 162 | struct mad_common common; |
139 | }; | 163 | }; |
140 | 164 | ||
165 | struct viosrp_capabilities { | ||
166 | struct mad_common common; | ||
167 | u64 buffer; | ||
168 | }; | ||
169 | |||
170 | struct mad_capability_common { | ||
171 | u32 cap_type; | ||
172 | u16 length; | ||
173 | u16 server_support; | ||
174 | }; | ||
175 | |||
176 | struct mad_reserve_cap { | ||
177 | struct mad_capability_common common; | ||
178 | u32 type; | ||
179 | }; | ||
180 | |||
181 | struct mad_migration_cap { | ||
182 | struct mad_capability_common common; | ||
183 | u32 ecl; | ||
184 | }; | ||
185 | |||
186 | struct capabilities{ | ||
187 | u32 flags; | ||
188 | char name[SRP_MAX_LOC_LEN]; | ||
189 | char loc[SRP_MAX_LOC_LEN]; | ||
190 | struct mad_migration_cap migration; | ||
191 | struct mad_reserve_cap reserve; | ||
192 | }; | ||
193 | |||
141 | union mad_iu { | 194 | union mad_iu { |
142 | struct viosrp_empty_iu empty_iu; | 195 | struct viosrp_empty_iu empty_iu; |
143 | struct viosrp_error_log error_log; | 196 | struct viosrp_error_log error_log; |
144 | struct viosrp_adapter_info adapter_info; | 197 | struct viosrp_adapter_info adapter_info; |
145 | struct viosrp_host_config host_config; | 198 | struct viosrp_host_config host_config; |
146 | struct viosrp_fast_fail fast_fail; | 199 | struct viosrp_fast_fail fast_fail; |
200 | struct viosrp_capabilities capabilities; | ||
147 | }; | 201 | }; |
148 | 202 | ||
149 | union viosrp_iu { | 203 | union viosrp_iu { |