\r
#include <IndustryStandard/TcgStorageCore.h>\r
\r
-#define OPAL_UID_ADMIN_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01)\r
-#define OPAL_UID_ADMIN_SP_C_PIN_MSID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02)\r
-#define OPAL_UID_ADMIN_SP_C_PIN_SID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01)\r
-#define OPAL_UID_LOCKING_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02)\r
+#define OPAL_UID_ADMIN_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01)\r
+#define OPAL_UID_ADMIN_SP_C_PIN_MSID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02)\r
+#define OPAL_UID_ADMIN_SP_C_PIN_SID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01)\r
+#define OPAL_UID_LOCKING_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02)\r
\r
// ADMIN_SP\r
// Authorities\r
-#define OPAL_ADMIN_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)\r
-#define OPAL_ADMIN_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)\r
-#define OPAL_ADMIN_SP_MAKERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03)\r
-#define OPAL_ADMIN_SP_SID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06)\r
-#define OPAL_ADMIN_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x02, 0x01)\r
-#define OPAL_ADMIN_SP_PSID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xFF, 0x01)\r
+#define OPAL_ADMIN_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)\r
+#define OPAL_ADMIN_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)\r
+#define OPAL_ADMIN_SP_MAKERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03)\r
+#define OPAL_ADMIN_SP_SID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06)\r
+#define OPAL_ADMIN_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x02, 0x01)\r
+#define OPAL_ADMIN_SP_PSID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xFF, 0x01)\r
\r
-#define OPAL_ADMIN_SP_ACTIVATE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x03)\r
-#define OPAL_ADMIN_SP_REVERT_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x02)\r
+#define OPAL_ADMIN_SP_ACTIVATE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x03)\r
+#define OPAL_ADMIN_SP_REVERT_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x02)\r
\r
// ADMIN_SP\r
// Data Removal mechanism\r
\r
// LOCKING SP\r
// Authorities\r
-#define OPAL_LOCKING_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)\r
-#define OPAL_LOCKING_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)\r
-#define OPAL_LOCKING_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01)\r
-#define OPAL_LOCKING_SP_USERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00)\r
-#define OPAL_LOCKING_SP_USER1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01)\r
+#define OPAL_LOCKING_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)\r
+#define OPAL_LOCKING_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)\r
+#define OPAL_LOCKING_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01)\r
+#define OPAL_LOCKING_SP_USERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00)\r
+#define OPAL_LOCKING_SP_USER1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01)\r
\r
-#define OPAL_LOCKING_SP_REVERTSP_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11)\r
+#define OPAL_LOCKING_SP_REVERTSP_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11)\r
\r
// C_PIN Table Rows\r
-#define OPAL_LOCKING_SP_C_PIN_ADMIN1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01 )\r
-#define OPAL_LOCKING_SP_C_PIN_USER1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x03, 0x00, 0x01 )\r
+#define OPAL_LOCKING_SP_C_PIN_ADMIN1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01 )\r
+#define OPAL_LOCKING_SP_C_PIN_USER1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x03, 0x00, 0x01 )\r
\r
// Locking Table\r
-#define OPAL_LOCKING_SP_LOCKING_GLOBALRANGE TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01 )\r
-#define OPAL_LOCKING_SP_LOCKING_RANGE1 TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x03, 0x00, 0x01 )\r
-\r
+#define OPAL_LOCKING_SP_LOCKING_GLOBALRANGE TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01 )\r
+#define OPAL_LOCKING_SP_LOCKING_RANGE1 TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x03, 0x00, 0x01 )\r
\r
// LOCKING SP ACE Table Preconfiguration\r
-#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_GET_ALL TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xD0, 0x00 )\r
-#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_RDLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x00 )\r
-#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_WRLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x00 )\r
-\r
-#define OPAL_LOCKING_SP_ACE_K_AES_256_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB8, 0x00 )\r
-#define OPAL_LOCKING_SP_ACE_K_AES_128_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB0, 0x00 )\r
+#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_GET_ALL TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xD0, 0x00 )\r
+#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_RDLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x00 )\r
+#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_WRLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x00 )\r
\r
+#define OPAL_LOCKING_SP_ACE_K_AES_256_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB8, 0x00 )\r
+#define OPAL_LOCKING_SP_ACE_K_AES_128_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB0, 0x00 )\r
\r
// LOCKING SP LockingInfo Table Preconfiguration\r
-#define OPAL_LOCKING_SP_LOCKING_INFO TCG_TO_UID( 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01 )\r
+#define OPAL_LOCKING_SP_LOCKING_INFO TCG_TO_UID( 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01 )\r
\r
-#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTREQUIRED_COL 0x7\r
-#define OPAL_LOCKING_SP_LOCKINGINFO_LOGICALBLOCKSIZE_COL 0x8\r
-#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTGRANULARITY_COL 0x9\r
-#define OPAL_LOCKING_SP_LOCKINGINFO_LOWESTALIGNEDLBA_COL 0xA\r
+#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTREQUIRED_COL 0x7\r
+#define OPAL_LOCKING_SP_LOCKINGINFO_LOGICALBLOCKSIZE_COL 0x8\r
+#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTGRANULARITY_COL 0x9\r
+#define OPAL_LOCKING_SP_LOCKINGINFO_LOWESTALIGNEDLBA_COL 0xA\r
\r
// K_AES_256 Table Preconfiguration\r
-#define OPAL_LOCKING_SP_K_AES_256_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x01 )\r
+#define OPAL_LOCKING_SP_K_AES_256_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x01 )\r
\r
// K_AES_128 Table Preconfiguration\r
-#define OPAL_LOCKING_SP_K_AES_128_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x05, 0x00, 0x00, 0x00, 0x01 )\r
+#define OPAL_LOCKING_SP_K_AES_128_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x05, 0x00, 0x00, 0x00, 0x01 )\r
\r
// Minimum Properties that an Opal Compliant SD Shall support\r
-#define OPAL_MIN_MAX_COM_PACKET_SIZE 2048\r
-#define OPAL_MIN_MAX_REPONSE_COM_PACKET_SIZE 2048\r
-#define OPAL_MIN_MAX_PACKET_SIZE 2028\r
-#define OPAL_MIN_MAX_IND_TOKEN_SIZE 1992\r
-#define OPAL_MIN_MAX_PACKETS 1\r
-#define OPAL_MIN_MAX_SUBPACKETS 1\r
-#define OPAL_MIN_MAX_METHODS 1\r
-#define OPAL_MIN_MAX_SESSIONS 1\r
-#define OPAL_MIN_MAX_AUTHENTICATIONS 2\r
-#define OPAL_MIN_MAX_TRANSACTION_LIMIT 1\r
-\r
-#define OPAL_ADMIN_SP_PIN_COL 3\r
-#define OPAL_LOCKING_SP_C_PIN_TRYLIMIT_COL 5\r
-#define OPAL_RANDOM_METHOD_MAX_COUNT_SIZE 32\r
+#define OPAL_MIN_MAX_COM_PACKET_SIZE 2048\r
+#define OPAL_MIN_MAX_REPONSE_COM_PACKET_SIZE 2048\r
+#define OPAL_MIN_MAX_PACKET_SIZE 2028\r
+#define OPAL_MIN_MAX_IND_TOKEN_SIZE 1992\r
+#define OPAL_MIN_MAX_PACKETS 1\r
+#define OPAL_MIN_MAX_SUBPACKETS 1\r
+#define OPAL_MIN_MAX_METHODS 1\r
+#define OPAL_MIN_MAX_SESSIONS 1\r
+#define OPAL_MIN_MAX_AUTHENTICATIONS 2\r
+#define OPAL_MIN_MAX_TRANSACTION_LIMIT 1\r
+\r
+#define OPAL_ADMIN_SP_PIN_COL 3\r
+#define OPAL_LOCKING_SP_C_PIN_TRYLIMIT_COL 5\r
+#define OPAL_RANDOM_METHOD_MAX_COUNT_SIZE 32\r
\r
// Data Removal Mechanism column.\r
#define OPAL_ADMIN_SP_ACTIVE_DATA_REMOVAL_MECHANISM_COL 1\r
#pragma pack(1)\r
\r
typedef struct _OPAL_GEOMETRY_REPORTING_FEATURE {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT8 Reserved[8];\r
- UINT32 LogicalBlockSizeBE;\r
- UINT64 AlignmentGranularityBE;\r
- UINT64 LowestAlignedLBABE;\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT8 Reserved[8];\r
+ UINT32 LogicalBlockSizeBE;\r
+ UINT64 AlignmentGranularityBE;\r
+ UINT64 LowestAlignedLBABE;\r
} OPAL_GEOMETRY_REPORTING_FEATURE;\r
\r
typedef struct _OPAL_SINGLE_USER_MODE_FEATURE {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT32 NumLockingObjectsSupportedBE;\r
- UINT8 Any : 1;\r
- UINT8 All : 1;\r
- UINT8 Policy : 1;\r
- UINT8 Reserved : 5;\r
- UINT8 Reserved2[7];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT32 NumLockingObjectsSupportedBE;\r
+ UINT8 Any : 1;\r
+ UINT8 All : 1;\r
+ UINT8 Policy : 1;\r
+ UINT8 Reserved : 5;\r
+ UINT8 Reserved2[7];\r
} OPAL_SINGLE_USER_MODE_FEATURE;\r
\r
typedef struct _OPAL_DATASTORE_TABLE_FEATURE {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT16 Reserved;\r
- UINT16 MaxNumTablesBE;\r
- UINT32 MaxTotalSizeBE;\r
- UINT32 SizeAlignmentBE;\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 Reserved;\r
+ UINT16 MaxNumTablesBE;\r
+ UINT32 MaxTotalSizeBE;\r
+ UINT32 SizeAlignmentBE;\r
} OPAL_DATASTORE_TABLE_FEATURE;\r
\r
typedef struct _OPAL_SSCV1_FEATURE_DESCRIPTOR {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT16 BaseComdIdBE;\r
- UINT16 NumComIdsBE;\r
- UINT8 RangeCrossing : 1;\r
- UINT8 Reserved : 7;\r
- UINT8 Future[11];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 BaseComdIdBE;\r
+ UINT16 NumComIdsBE;\r
+ UINT8 RangeCrossing : 1;\r
+ UINT8 Reserved : 7;\r
+ UINT8 Future[11];\r
} OPAL_SSCV1_FEATURE_DESCRIPTOR;\r
\r
typedef struct _OPAL_SSCV2_FEATURE_DESCRIPTOR {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT16 BaseComdIdBE;\r
- UINT16 NumComIdsBE;\r
- UINT8 Reserved;\r
- UINT16 NumLockingSpAdminAuthoritiesSupportedBE;\r
- UINT16 NumLockingSpUserAuthoritiesSupportedBE;\r
- UINT8 InitialCPINSIDPIN;\r
- UINT8 CPINSIDPINRevertBehavior;\r
- UINT8 Future[5];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 BaseComdIdBE;\r
+ UINT16 NumComIdsBE;\r
+ UINT8 Reserved;\r
+ UINT16 NumLockingSpAdminAuthoritiesSupportedBE;\r
+ UINT16 NumLockingSpUserAuthoritiesSupportedBE;\r
+ UINT8 InitialCPINSIDPIN;\r
+ UINT8 CPINSIDPINRevertBehavior;\r
+ UINT8 Future[5];\r
} OPAL_SSCV2_FEATURE_DESCRIPTOR;\r
\r
typedef struct _OPAL_SSCLITE_FEATURE_DESCRIPTOR {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT16 BaseComdIdBE;\r
- UINT16 NumComIdsBE;\r
- UINT8 Reserved[5];\r
- UINT8 InitialCPINSIDPIN;\r
- UINT8 CPINSIDPINRevertBehavior;\r
- UINT8 Future[5];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 BaseComdIdBE;\r
+ UINT16 NumComIdsBE;\r
+ UINT8 Reserved[5];\r
+ UINT8 InitialCPINSIDPIN;\r
+ UINT8 CPINSIDPINRevertBehavior;\r
+ UINT8 Future[5];\r
} OPAL_SSCLITE_FEATURE_DESCRIPTOR;\r
\r
typedef struct _PYRITE_SSC_FEATURE_DESCRIPTOR {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT16 BaseComdIdBE;\r
- UINT16 NumComIdsBE;\r
- UINT8 Reserved[5];\r
- UINT8 InitialCPINSIDPIN;\r
- UINT8 CPINSIDPINRevertBehavior;\r
- UINT8 Future[5];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 BaseComdIdBE;\r
+ UINT16 NumComIdsBE;\r
+ UINT8 Reserved[5];\r
+ UINT8 InitialCPINSIDPIN;\r
+ UINT8 CPINSIDPINRevertBehavior;\r
+ UINT8 Future[5];\r
} PYRITE_SSC_FEATURE_DESCRIPTOR;\r
\r
typedef struct _PYRITE_SSCV2_FEATURE_DESCRIPTOR {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT16 BaseComdIdBE;\r
- UINT16 NumComIdsBE;\r
- UINT8 Reserved[5];\r
- UINT8 InitialCPINSIDPIN;\r
- UINT8 CPINSIDPINRevertBehavior;\r
- UINT8 Future[5];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 BaseComdIdBE;\r
+ UINT16 NumComIdsBE;\r
+ UINT8 Reserved[5];\r
+ UINT8 InitialCPINSIDPIN;\r
+ UINT8 CPINSIDPINRevertBehavior;\r
+ UINT8 Future[5];\r
} PYRITE_SSCV2_FEATURE_DESCRIPTOR;\r
\r
typedef struct _DATA_REMOVAL_FEATURE_DESCRIPTOR {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
- UINT8 Reserved;\r
- UINT8 OperationProcessing : 1;\r
- UINT8 Reserved2 : 7;\r
- UINT8 RemovalMechanism;\r
- UINT8 FormatBit0 : 1; // Data Removal Time Format for Bit 0\r
- UINT8 FormatBit1 : 1; // Data Removal Time Format for Bit 1\r
- UINT8 FormatBit2 : 1; // Data Removal Time Format for Bit 2\r
- UINT8 FormatBit3 : 1; // Data Removal Time Format for Bit 3\r
- UINT8 FormatBit4 : 1; // Data Removal Time Format for Bit 4\r
- UINT8 FormatBit5 : 1; // Data Removal Time Format for Bit 5\r
- UINT8 Reserved3 : 2;\r
- UINT16 TimeBit0; // Data Removal Time for Supported Data Removal Mechanism Bit 0\r
- UINT16 TimeBit1; // Data Removal Time for Supported Data Removal Mechanism Bit 1\r
- UINT16 TimeBit2; // Data Removal Time for Supported Data Removal Mechanism Bit 2\r
- UINT16 TimeBit3; // Data Removal Time for Supported Data Removal Mechanism Bit 3\r
- UINT16 TimeBit4; // Data Removal Time for Supported Data Removal Mechanism Bit 4\r
- UINT16 TimeBit5; // Data Removal Time for Supported Data Removal Mechanism Bit 5\r
- UINT8 Future[16];\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT8 Reserved;\r
+ UINT8 OperationProcessing : 1;\r
+ UINT8 Reserved2 : 7;\r
+ UINT8 RemovalMechanism;\r
+ UINT8 FormatBit0 : 1; // Data Removal Time Format for Bit 0\r
+ UINT8 FormatBit1 : 1; // Data Removal Time Format for Bit 1\r
+ UINT8 FormatBit2 : 1; // Data Removal Time Format for Bit 2\r
+ UINT8 FormatBit3 : 1; // Data Removal Time Format for Bit 3\r
+ UINT8 FormatBit4 : 1; // Data Removal Time Format for Bit 4\r
+ UINT8 FormatBit5 : 1; // Data Removal Time Format for Bit 5\r
+ UINT8 Reserved3 : 2;\r
+ UINT16 TimeBit0; // Data Removal Time for Supported Data Removal Mechanism Bit 0\r
+ UINT16 TimeBit1; // Data Removal Time for Supported Data Removal Mechanism Bit 1\r
+ UINT16 TimeBit2; // Data Removal Time for Supported Data Removal Mechanism Bit 2\r
+ UINT16 TimeBit3; // Data Removal Time for Supported Data Removal Mechanism Bit 3\r
+ UINT16 TimeBit4; // Data Removal Time for Supported Data Removal Mechanism Bit 4\r
+ UINT16 TimeBit5; // Data Removal Time for Supported Data Removal Mechanism Bit 5\r
+ UINT8 Future[16];\r
} DATA_REMOVAL_FEATURE_DESCRIPTOR;\r
\r
typedef union {\r
- TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER CommonHeader;\r
- TCG_TPER_FEATURE_DESCRIPTOR Tper;\r
- TCG_LOCKING_FEATURE_DESCRIPTOR Locking;\r
- OPAL_GEOMETRY_REPORTING_FEATURE Geometry;\r
- OPAL_SINGLE_USER_MODE_FEATURE SingleUser;\r
- OPAL_DATASTORE_TABLE_FEATURE DataStore;\r
- OPAL_SSCV1_FEATURE_DESCRIPTOR OpalSscV1;\r
- OPAL_SSCV2_FEATURE_DESCRIPTOR OpalSscV2;\r
- OPAL_SSCLITE_FEATURE_DESCRIPTOR OpalSscLite;\r
- PYRITE_SSC_FEATURE_DESCRIPTOR PyriteSsc;\r
- PYRITE_SSCV2_FEATURE_DESCRIPTOR PyriteSscV2;\r
- TCG_BLOCK_SID_FEATURE_DESCRIPTOR BlockSid;\r
- DATA_REMOVAL_FEATURE_DESCRIPTOR DataRemoval;\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER CommonHeader;\r
+ TCG_TPER_FEATURE_DESCRIPTOR Tper;\r
+ TCG_LOCKING_FEATURE_DESCRIPTOR Locking;\r
+ OPAL_GEOMETRY_REPORTING_FEATURE Geometry;\r
+ OPAL_SINGLE_USER_MODE_FEATURE SingleUser;\r
+ OPAL_DATASTORE_TABLE_FEATURE DataStore;\r
+ OPAL_SSCV1_FEATURE_DESCRIPTOR OpalSscV1;\r
+ OPAL_SSCV2_FEATURE_DESCRIPTOR OpalSscV2;\r
+ OPAL_SSCLITE_FEATURE_DESCRIPTOR OpalSscLite;\r
+ PYRITE_SSC_FEATURE_DESCRIPTOR PyriteSsc;\r
+ PYRITE_SSCV2_FEATURE_DESCRIPTOR PyriteSscV2;\r
+ TCG_BLOCK_SID_FEATURE_DESCRIPTOR BlockSid;\r
+ DATA_REMOVAL_FEATURE_DESCRIPTOR DataRemoval;\r
} OPAL_LEVEL0_FEATURE_DESCRIPTOR;\r
\r
#pragma pack()\r