diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/scsi/osd_protocol.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/include/scsi/osd_protocol.h b/include/scsi/osd_protocol.h index cd3cbf764650..fa8343ce3ca2 100644 --- a/include/scsi/osd_protocol.h +++ b/include/scsi/osd_protocol.h | |||
@@ -301,14 +301,24 @@ struct osd_attributes_list_attrid { | |||
301 | } __packed; | 301 | } __packed; |
302 | 302 | ||
303 | /* | 303 | /* |
304 | * NOTE: v1: is not aligned. | ||
305 | */ | ||
306 | struct osdv1_attributes_list_element { | ||
307 | __be32 attr_page; | ||
308 | __be32 attr_id; | ||
309 | __be16 attr_bytes; /* valid bytes at attr_val without padding */ | ||
310 | u8 attr_val[0]; | ||
311 | } __packed; | ||
312 | |||
313 | /* | ||
304 | * osd2r03: 7.1.3.3 List entry format for retrieved attributes and | 314 | * osd2r03: 7.1.3.3 List entry format for retrieved attributes and |
305 | * for setting attributes | 315 | * for setting attributes |
306 | * NOTE: v2 is 8-bytes aligned, v1 is not aligned. | 316 | * NOTE: v2 is 8-bytes aligned |
307 | */ | 317 | */ |
308 | struct osd_attributes_list_element { | 318 | struct osdv2_attributes_list_element { |
309 | __be32 attr_page; | 319 | __be32 attr_page; |
310 | __be32 attr_id; | 320 | __be32 attr_id; |
311 | __be16 attr_bytes; | 321 | __be16 attr_bytes; /* valid bytes at attr_val without padding */ |
312 | u8 attr_val[0]; | 322 | u8 attr_val[0]; |
313 | } __packed; | 323 | } __packed; |
314 | 324 | ||
@@ -324,13 +334,13 @@ enum { | |||
324 | 334 | ||
325 | static inline unsigned osdv1_attr_list_elem_size(unsigned len) | 335 | static inline unsigned osdv1_attr_list_elem_size(unsigned len) |
326 | { | 336 | { |
327 | return ALIGN(len + sizeof(struct osd_attributes_list_element), | 337 | return ALIGN(len + sizeof(struct osdv1_attributes_list_element), |
328 | OSDv1_ATTRIBUTES_ELEM_ALIGN); | 338 | OSDv1_ATTRIBUTES_ELEM_ALIGN); |
329 | } | 339 | } |
330 | 340 | ||
331 | static inline unsigned osdv2_attr_list_elem_size(unsigned len) | 341 | static inline unsigned osdv2_attr_list_elem_size(unsigned len) |
332 | { | 342 | { |
333 | return ALIGN(len + sizeof(struct osd_attributes_list_element), | 343 | return ALIGN(len + sizeof(struct osdv2_attributes_list_element), |
334 | OSD_ATTRIBUTES_ELEM_ALIGN); | 344 | OSD_ATTRIBUTES_ELEM_ALIGN); |
335 | } | 345 | } |
336 | 346 | ||