Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SCSI] libosd: OSD2r05: Attribute definitions

Some New revision 5 Attribute definitions.
Some missing definitions of Attributes and pages

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

authored by

Boaz Harrosh and committed by
James Bottomley
29191b92 feb6118d

+72 -2
+72 -2
include/scsi/osd_attributes.h
··· 29 29 OSD_APAGE_PARTITION_INFORMATION = OSD_APAGE_PARTITION_FIRST + 1, 30 30 OSD_APAGE_PARTITION_QUOTAS = OSD_APAGE_PARTITION_FIRST + 2, 31 31 OSD_APAGE_PARTITION_TIMESTAMP = OSD_APAGE_PARTITION_FIRST + 3, 32 + OSD_APAGE_PARTITION_ATTR_ACCESS = OSD_APAGE_PARTITION_FIRST + 4, 32 33 OSD_APAGE_PARTITION_SECURITY = OSD_APAGE_PARTITION_FIRST + 5, 33 34 OSD_APAGE_PARTITION_LAST = 0x5FFFFFFF, 34 35 ··· 52 51 OSD_APAGE_RESERVED_TYPE_LAST = 0xEFFFFFFF, 53 52 54 53 OSD_APAGE_COMMON_FIRST = 0xF0000000, 55 - OSD_APAGE_COMMON_LAST = 0xFFFFFFFE, 54 + OSD_APAGE_COMMON_LAST = 0xFFFFFFFD, 55 + 56 + OSD_APAGE_CURRENT_COMMAND = 0xFFFFFFFE, 56 57 57 58 OSD_APAGE_REQUEST_ALL = 0xFFFFFFFF, 58 59 }; ··· 109 106 OSD_ATTR_RI_PRODUCT_REVISION_LEVEL = 0x7, /* 4 */ 110 107 OSD_ATTR_RI_PRODUCT_SERIAL_NUMBER = 0x8, /* variable */ 111 108 OSD_ATTR_RI_OSD_NAME = 0x9, /* variable */ 109 + OSD_ATTR_RI_MAX_CDB_CONTINUATION_LEN = 0xA, /* 4 */ 112 110 OSD_ATTR_RI_TOTAL_CAPACITY = 0x80, /* 8 */ 113 111 OSD_ATTR_RI_USED_CAPACITY = 0x81, /* 8 */ 114 112 OSD_ATTR_RI_NUMBER_OF_PARTITIONS = 0xC0, /* 8 */ 115 113 OSD_ATTR_RI_CLOCK = 0x100, /* 6 */ 114 + OARI_DEFAULT_ISOLATION_METHOD = 0X110, /* 1 */ 115 + OARI_SUPPORTED_ISOLATION_METHODS = 0X111, /* 32 */ 116 + 117 + OARI_DATA_ATOMICITY_GUARANTEE = 0X120, /* 8 */ 118 + OARI_DATA_ATOMICITY_ALIGNMENT = 0X121, /* 8 */ 119 + OARI_ATTRIBUTES_ATOMICITY_GUARANTEE = 0X122, /* 8 */ 120 + OARI_DATA_ATTRIBUTES_ATOMICITY_MULTIPLIER = 0X123, /* 1 */ 121 + 122 + OARI_MAXIMUM_SNAPSHOTS_COUNT = 0X1C1, /* 0 or 4 */ 123 + OARI_MAXIMUM_CLONES_COUNT = 0X1C2, /* 0 or 4 */ 124 + OARI_MAXIMUM_BRANCH_DEPTH = 0X1CC, /* 0 or 4 */ 125 + OARI_SUPPORTED_OBJECT_DUPLICATION_METHOD_FIRST = 0X200, /* 0 or 4 */ 126 + OARI_SUPPORTED_OBJECT_DUPLICATION_METHOD_LAST = 0X2ff, /* 0 or 4 */ 127 + OARI_SUPPORTED_TIME_OF_DUPLICATION_METHOD_FIRST = 0X300, /* 0 or 4 */ 128 + OARI_SUPPORTED_TIME_OF_DUPLICATION_METHOD_LAST = 0X30F, /* 0 or 4 */ 129 + OARI_SUPPORT_FOR_DUPLICATED_OBJECT_FREEZING = 0X310, /* 0 or 4 */ 130 + OARI_SUPPORT_FOR_SNAPSHOT_REFRESHING = 0X311, /* 0 or 1 */ 131 + OARI_SUPPORTED_CDB_CONTINUATION_DESC_TYPE_FIRST = 0X7000001,/* 0 or 4 */ 132 + OARI_SUPPORTED_CDB_CONTINUATION_DESC_TYPE_LAST = 0X700FFFF,/* 0 or 4 */ 116 133 }; 117 134 /* Root_Information_attributes_page does not have a get_page structure */ 118 135 ··· 143 120 OSD_ATTR_PI_PARTITION_ID = 0x1, /* 8 */ 144 121 OSD_ATTR_PI_USERNAME = 0x9, /* variable */ 145 122 OSD_ATTR_PI_USED_CAPACITY = 0x81, /* 8 */ 123 + OSD_ATTR_PI_USED_CAPACITY_INCREMENT = 0x84, /* 0 or 8 */ 146 124 OSD_ATTR_PI_NUMBER_OF_OBJECTS = 0xC1, /* 8 */ 125 + 126 + OSD_ATTR_PI_ACTUAL_DATA_SPACE = 0xD1, /* 0 or 8 */ 127 + OSD_ATTR_PI_RESERVED_DATA_SPACE = 0xD2, /* 0 or 8 */ 128 + OSD_ATTR_PI_DEFAULT_SNAPSHOT_DUPLICATION_METHOD = 0x200,/* 0 or 4 */ 129 + OSD_ATTR_PI_DEFAULT_CLONE_DUPLICATION_METHOD = 0x201,/* 0 or 4 */ 130 + OSD_ATTR_PI_DEFAULT_SP_TIME_OF_DUPLICATION = 0x300,/* 0 or 4 */ 131 + OSD_ATTR_PI_DEFAULT_CLONE_TIME_OF_DUPLICATION = 0x301,/* 0 or 4 */ 147 132 }; 148 133 /* Partition Information attributes page does not have a get_page structure */ 149 134 ··· 162 131 OSD_ATTR_CI_PARTITION_ID = 0x1, /* 8 */ 163 132 OSD_ATTR_CI_COLLECTION_OBJECT_ID = 0x2, /* 8 */ 164 133 OSD_ATTR_CI_USERNAME = 0x9, /* variable */ 134 + OSD_ATTR_CI_COLLECTION_TYPE = 0xA, /* 1 */ 165 135 OSD_ATTR_CI_USED_CAPACITY = 0x81, /* 8 */ 166 136 }; 167 137 /* Collection Information attributes page does not have a get_page structure */ ··· 176 144 OSD_ATTR_OI_USERNAME = 0x9, /* variable */ 177 145 OSD_ATTR_OI_USED_CAPACITY = 0x81, /* 8 */ 178 146 OSD_ATTR_OI_LOGICAL_LENGTH = 0x82, /* 8 */ 147 + SD_ATTR_OI_ACTUAL_DATA_SPACE = 0XD1, /* 0 OR 8 */ 148 + SD_ATTR_OI_RESERVED_DATA_SPACE = 0XD2, /* 0 OR 8 */ 179 149 }; 180 150 /* Object Information attributes page does not have a get_page structure */ 181 151 ··· 282 248 struct osd_timestamp data_modified_time; 283 249 } __packed; 284 250 285 - /* 7.1.2.19 Collections attributes page */ 251 + /* OSD2r05: 7.1.3.19 Attributes Access attributes page 252 + * (OSD_APAGE_PARTITION_ATTR_ACCESS) 253 + * 254 + * each attribute is of the form below. Total array length is deduced 255 + * from the attribute's length 256 + * (See allowed_attributes_access of the struct osd_cap_object_descriptor) 257 + */ 258 + struct attributes_access_attr { 259 + struct osd_attributes_list_attrid attr_list[0]; 260 + } __packed; 261 + 262 + /* OSD2r05: 7.1.2.21 Collections attributes page */ 286 263 /* TBD */ 287 264 288 265 /* 7.1.2.20 Root Policy/Security attributes page (OSD_APAGE_ROOT_SECURITY) */ ··· 368 323 struct osd_attr_page_header hdr; /* id=C+5/5, size=4 */ 369 324 __be32 policy_access_tag; 370 325 } __packed; 326 + 327 + /* OSD2r05: 7.1.3.31 Current Command attributes page 328 + * (OSD_APAGE_CURRENT_COMMAND) 329 + */ 330 + enum { 331 + OSD_ATTR_CC_RESPONSE_INTEGRITY_CHECK_VALUE = 0x1, /* 32 */ 332 + OSD_ATTR_CC_OBJECT_TYPE = 0x2, /* 1 */ 333 + OSD_ATTR_CC_PARTITION_ID = 0x3, /* 8 */ 334 + OSD_ATTR_CC_OBJECT_ID = 0x4, /* 8 */ 335 + OSD_ATTR_CC_STARTING_BYTE_ADDRESS_OF_APPEND = 0x5, /* 8 */ 336 + OSD_ATTR_CC_CHANGE_IN_USED_CAPACITY = 0x6, /* 8 */ 337 + }; 338 + 339 + /*TBD: osdv1_current_command_attributes_page */ 340 + 341 + struct osdv2_current_command_attributes_page { 342 + struct osd_attr_page_header hdr; /* id=0xFFFFFFFE, size=0x44 */ 343 + u8 response_integrity_check_value[OSD_CRYPTO_KEYID_SIZE]; 344 + u8 object_type; 345 + u8 reserved[3]; 346 + __be64 partition_id; 347 + __be64 object_id; 348 + __be64 starting_byte_address_of_append; 349 + __be64 change_in_used_capacity; 350 + }; 371 351 372 352 #endif /*ndef __OSD_ATTRIBUTES_H__*/