1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /***********************************************************************; 3 * Copyright (c) 2015-2018, Intel Corporation 4 * 5 * Copyright 2015, Andreas Fuchs @ Fraunhofer SIT 6 * 7 * All rights reserved. 8 ***********************************************************************/ 9 10 #ifndef TSS2_COMMON_H 11 #define TSS2_COMMON_H 12 #define TSS2_API_VERSION_1_2_1_108 13 14 #include <stdint.h> 15 /* 16 * Type definitions 17 */ 18 typedef uint8_t UINT8; 19 typedef uint8_t BYTE; 20 typedef int8_t INT8; 21 typedef int BOOL; 22 typedef uint16_t UINT16; 23 typedef int16_t INT16; 24 typedef uint32_t UINT32; 25 typedef int32_t INT32; 26 typedef uint64_t UINT64; 27 typedef int64_t INT64; 28 29 /* 30 * ABI runtime negotiation definitions 31 */ 32 typedef struct { 33 uint32_t tssCreator; 34 uint32_t tssFamily; 35 uint32_t tssLevel; 36 uint32_t tssVersion; 37 } TSS2_ABI_VERSION; 38 39 #define TSS2_ABI_VERSION_CURRENT {1, 2, 1, 108} 40 41 /* 42 * Return Codes 43 */ 44 /* The return type for all TSS2 functions */ 45 typedef uint32_t TSS2_RC; 46 47 /* For return values other than SUCCESS, the second most significant 48 * byte of the return value is a layer code indicating the software 49 * layer that generated the error. 50 */ 51 #define TSS2_RC_LAYER_SHIFT (16) 52 #define TSS2_RC_LAYER(level) ((TSS2_RC)level << TSS2_RC_LAYER_SHIFT) 53 #define TSS2_RC_LAYER_MASK TSS2_RC_LAYER(0xff) 54 55 /* These layer codes are reserved for software layers defined in the TCG 56 * specifications. 57 */ 58 #define TSS2_TPM_RC_LAYER TSS2_RC_LAYER(0) 59 #define TSS2_FEATURE_RC_LAYER TSS2_RC_LAYER(6) 60 #define TSS2_ESAPI_RC_LAYER TSS2_RC_LAYER(7) 61 #define TSS2_SYS_RC_LAYER TSS2_RC_LAYER(8) 62 #define TSS2_MU_RC_LAYER TSS2_RC_LAYER(9) 63 #define TSS2_TCTI_RC_LAYER TSS2_RC_LAYER(10) 64 #define TSS2_RESMGR_RC_LAYER TSS2_RC_LAYER(11) 65 #define TSS2_RESMGR_TPM_RC_LAYER TSS2_RC_LAYER(12) 66 67 /* Base return codes. 68 * These base codes indicate the error that occurred. They are 69 * logical-ORed with a layer code to produce the TSS2 return value. 70 */ 71 #define TSS2_BASE_RC_GENERAL_FAILURE 1U /* Catch all for all errors not otherwise specified */ 72 #define TSS2_BASE_RC_NOT_IMPLEMENTED 2U /* If called functionality isn't implemented */ 73 #define TSS2_BASE_RC_BAD_CONTEXT 3U /* A context structure is bad */ 74 #define TSS2_BASE_RC_ABI_MISMATCH 4U /* Passed in ABI version doesn't match called module's ABI version */ 75 #define TSS2_BASE_RC_BAD_REFERENCE 5U /* A pointer is NULL that isn't allowed to be NULL. */ 76 #define TSS2_BASE_RC_INSUFFICIENT_BUFFER 6U /* A buffer isn't large enough */ 77 #define TSS2_BASE_RC_BAD_SEQUENCE 7U /* Function called in the wrong order */ 78 #define TSS2_BASE_RC_NO_CONNECTION 8U /* Fails to connect to next lower layer */ 79 #define TSS2_BASE_RC_TRY_AGAIN 9U /* Operation timed out; function must be called again to be completed */ 80 #define TSS2_BASE_RC_IO_ERROR 10U /* IO failure */ 81 #define TSS2_BASE_RC_BAD_VALUE 11U /* A parameter has a bad value */ 82 #define TSS2_BASE_RC_NOT_PERMITTED 12U /* Operation not permitted. */ 83 #define TSS2_BASE_RC_INVALID_SESSIONS 13U /* Session structures were sent, but command doesn't use them or doesn't use the specifed number of them */ 84 #define TSS2_BASE_RC_NO_DECRYPT_PARAM 14U /* If function called that uses decrypt parameter, but command doesn't support crypt parameter. */ 85 #define TSS2_BASE_RC_NO_ENCRYPT_PARAM 15U /* If function called that uses encrypt parameter, but command doesn't support encrypt parameter. */ 86 #define TSS2_BASE_RC_BAD_SIZE 16U /* If size of a parameter is incorrect */ 87 #define TSS2_BASE_RC_MALFORMED_RESPONSE 17U /* Response is malformed */ 88 #define TSS2_BASE_RC_INSUFFICIENT_CONTEXT 18U /* Context not large enough */ 89 #define TSS2_BASE_RC_INSUFFICIENT_RESPONSE 19U /* Response is not long enough */ 90 #define TSS2_BASE_RC_INCOMPATIBLE_TCTI 20U /* Unknown or unusable TCTI version */ 91 #define TSS2_BASE_RC_NOT_SUPPORTED 21U /* Functionality not supported. */ 92 #define TSS2_BASE_RC_BAD_TCTI_STRUCTURE 22U /* TCTI context is bad. */ 93 #define TSS2_BASE_RC_MEMORY 23U /* memory allocation failed */ 94 #define TSS2_BASE_RC_BAD_TR 24U /* invalid ESYS_TR handle */ 95 #define TSS2_BASE_RC_MULTIPLE_DECRYPT_SESSIONS 25U /* More than one session with TPMA_SESSION_DECRYPT bit set */ 96 #define TSS2_BASE_RC_MULTIPLE_ENCRYPT_SESSIONS 26U /* More than one session with TPMA_SESSION_ENCRYPT bit set */ 97 #define TSS2_BASE_RC_RSP_AUTH_FAILED 27U /* Response HMAC from TPM did not verify */ 98 #define TSS2_BASE_RC_NO_CONFIG 28U 99 #define TSS2_BASE_RC_BAD_PATH 29U 100 #define TSS2_BASE_RC_NOT_DELETABLE 30U 101 #define TSS2_BASE_RC_PATH_ALREADY_EXISTS 31U 102 #define TSS2_BASE_RC_KEY_NOT_FOUND 32U 103 #define TSS2_BASE_RC_SIGNATURE_VERIFICATION_FAILED 33U 104 #define TSS2_BASE_RC_HASH_MISMATCH 34U 105 #define TSS2_BASE_RC_KEY_NOT_DUPLICABLE 35U 106 #define TSS2_BASE_RC_PATH_NOT_FOUND 36U 107 #define TSS2_BASE_RC_NO_CERT 37U 108 #define TSS2_BASE_RC_NO_PCR 38U 109 #define TSS2_BASE_RC_PCR_NOT_RESETTABLE 39U 110 #define TSS2_BASE_RC_BAD_TEMPLATE 40U 111 #define TSS2_BASE_RC_AUTHORIZATION_FAILED 41U 112 #define TSS2_BASE_RC_AUTHORIZATION_UNKNOWN 42U 113 #define TSS2_BASE_RC_NV_NOT_READABLE 43U 114 #define TSS2_BASE_RC_NV_TOO_SMALL 44U 115 #define TSS2_BASE_RC_NV_NOT_WRITEABLE 45U 116 #define TSS2_BASE_RC_POLICY_UNKNOWN 46U 117 #define TSS2_BASE_RC_NV_WRONG_TYPE 47U 118 #define TSS2_BASE_RC_NAME_ALREADY_EXISTS 48U 119 #define TSS2_BASE_RC_NO_TPM 49U 120 #define TSS2_BASE_RC_BAD_KEY 50U 121 #define TSS2_BASE_RC_NO_HANDLE 51U 122 123 /* Base return codes in the range 0xf800 - 0xffff are reserved for 124 * implementation-specific purposes. 125 */ 126 #define TSS2_LAYER_IMPLEMENTATION_SPECIFIC_OFFSET 0xf800 127 #define TSS2_LEVEL_IMPLEMENTATION_SPECIFIC_SHIFT 11 128 129 /* Success is the same for all software layers */ 130 #define TSS2_RC_SUCCESS ((TSS2_RC) 0) 131 132 /* TCTI error codes */ 133 #define TSS2_TCTI_RC_GENERAL_FAILURE ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 134 TSS2_BASE_RC_GENERAL_FAILURE)) 135 #define TSS2_TCTI_RC_NOT_IMPLEMENTED ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 136 TSS2_BASE_RC_NOT_IMPLEMENTED)) 137 #define TSS2_TCTI_RC_BAD_CONTEXT ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 138 TSS2_BASE_RC_BAD_CONTEXT)) 139 #define TSS2_TCTI_RC_ABI_MISMATCH ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 140 TSS2_BASE_RC_ABI_MISMATCH)) 141 #define TSS2_TCTI_RC_BAD_REFERENCE ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 142 TSS2_BASE_RC_BAD_REFERENCE)) 143 #define TSS2_TCTI_RC_INSUFFICIENT_BUFFER ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 144 TSS2_BASE_RC_INSUFFICIENT_BUFFER)) 145 #define TSS2_TCTI_RC_BAD_SEQUENCE ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 146 TSS2_BASE_RC_BAD_SEQUENCE)) 147 #define TSS2_TCTI_RC_NO_CONNECTION ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 148 TSS2_BASE_RC_NO_CONNECTION)) 149 #define TSS2_TCTI_RC_TRY_AGAIN ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 150 TSS2_BASE_RC_TRY_AGAIN)) 151 #define TSS2_TCTI_RC_IO_ERROR ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 152 TSS2_BASE_RC_IO_ERROR)) 153 #define TSS2_TCTI_RC_BAD_VALUE ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 154 TSS2_BASE_RC_BAD_VALUE)) 155 #define TSS2_TCTI_RC_NOT_PERMITTED ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 156 TSS2_BASE_RC_NOT_PERMITTED)) 157 #define TSS2_TCTI_RC_MALFORMED_RESPONSE ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 158 TSS2_BASE_RC_MALFORMED_RESPONSE)) 159 #define TSS2_TCTI_RC_NOT_SUPPORTED ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 160 TSS2_BASE_RC_NOT_SUPPORTED)) 161 #define TSS2_TCTI_RC_MEMORY ((TSS2_RC)(TSS2_TCTI_RC_LAYER | \ 162 TSS2_BASE_RC_MEMORY)) 163 /* SAPI error codes */ 164 #define TSS2_SYS_RC_GENERAL_FAILURE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 165 TSS2_BASE_RC_GENERAL_FAILURE)) 166 #define TSS2_SYS_RC_ABI_MISMATCH ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 167 TSS2_BASE_RC_ABI_MISMATCH)) 168 #define TSS2_SYS_RC_BAD_REFERENCE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 169 TSS2_BASE_RC_BAD_REFERENCE)) 170 #define TSS2_SYS_RC_INSUFFICIENT_BUFFER ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 171 TSS2_BASE_RC_INSUFFICIENT_BUFFER)) 172 #define TSS2_SYS_RC_BAD_SEQUENCE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 173 TSS2_BASE_RC_BAD_SEQUENCE)) 174 #define TSS2_SYS_RC_BAD_VALUE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 175 TSS2_BASE_RC_BAD_VALUE)) 176 #define TSS2_SYS_RC_INVALID_SESSIONS ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 177 TSS2_BASE_RC_INVALID_SESSIONS)) 178 #define TSS2_SYS_RC_NO_DECRYPT_PARAM ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 179 TSS2_BASE_RC_NO_DECRYPT_PARAM)) 180 #define TSS2_SYS_RC_NO_ENCRYPT_PARAM ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 181 TSS2_BASE_RC_NO_ENCRYPT_PARAM)) 182 #define TSS2_SYS_RC_BAD_SIZE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 183 TSS2_BASE_RC_BAD_SIZE)) 184 #define TSS2_SYS_RC_MALFORMED_RESPONSE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 185 TSS2_BASE_RC_MALFORMED_RESPONSE)) 186 #define TSS2_SYS_RC_INSUFFICIENT_CONTEXT ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 187 TSS2_BASE_RC_INSUFFICIENT_CONTEXT)) 188 #define TSS2_SYS_RC_INSUFFICIENT_RESPONSE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 189 TSS2_BASE_RC_INSUFFICIENT_RESPONSE)) 190 #define TSS2_SYS_RC_INCOMPATIBLE_TCTI ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 191 TSS2_BASE_RC_INCOMPATIBLE_TCTI)) 192 #define TSS2_SYS_RC_BAD_TCTI_STRUCTURE ((TSS2_RC)(TSS2_SYS_RC_LAYER | \ 193 TSS2_BASE_RC_BAD_TCTI_STRUCTURE)) 194 195 /* MUAPI error codes */ 196 #define TSS2_MU_RC_GENERAL_FAILURE ((TSS2_RC)(TSS2_MU_RC_LAYER | \ 197 TSS2_BASE_RC_GENERAL_FAILURE)) 198 #define TSS2_MU_RC_BAD_REFERENCE ((TSS2_RC)(TSS2_MU_RC_LAYER | \ 199 TSS2_BASE_RC_BAD_REFERENCE)) 200 #define TSS2_MU_RC_BAD_SIZE ((TSS2_RC)(TSS2_MU_RC_LAYER | \ 201 TSS2_BASE_RC_BAD_SIZE)) 202 #define TSS2_MU_RC_BAD_VALUE ((TSS2_RC)(TSS2_MU_RC_LAYER | \ 203 TSS2_BASE_RC_BAD_VALUE)) 204 #define TSS2_MU_RC_INSUFFICIENT_BUFFER ((TSS2_RC)(TSS2_MU_RC_LAYER | \ 205 TSS2_BASE_RC_INSUFFICIENT_BUFFER)) 206 207 /* ESAPI Error Codes */ 208 #define TSS2_ESYS_RC_GENERAL_FAILURE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 209 TSS2_BASE_RC_GENERAL_FAILURE)) 210 #define TSS2_ESYS_RC_NOT_IMPLEMENTED ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 211 TSS2_BASE_RC_NOT_IMPLEMENTED)) 212 #define TSS2_ESYS_RC_ABI_MISMATCH ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 213 TSS2_BASE_RC_ABI_MISMATCH)) 214 #define TSS2_ESYS_RC_BAD_REFERENCE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 215 TSS2_BASE_RC_BAD_REFERENCE)) 216 #define TSS2_ESYS_RC_INSUFFICIENT_BUFFER ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 217 TSS2_BASE_RC_INSUFFICIENT_BUFFER)) 218 #define TSS2_ESYS_RC_BAD_SEQUENCE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 219 TSS2_BASE_RC_BAD_SEQUENCE)) 220 #define TSS2_ESYS_RC_INVALID_SESSIONS ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 221 TSS2_BASE_RC_INVALID_SESSIONS)) 222 #define TSS2_ESYS_RC_TRY_AGAIN ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 223 TSS2_BASE_RC_TRY_AGAIN)) 224 #define TSS2_ESYS_RC_IO_ERROR ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 225 TSS2_BASE_RC_IO_ERROR)) 226 #define TSS2_ESYS_RC_BAD_VALUE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 227 TSS2_BASE_RC_BAD_VALUE)) 228 #define TSS2_ESYS_RC_NO_DECRYPT_PARAM ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 229 TSS2_BASE_RC_NO_DECRYPT_PARAM)) 230 #define TSS2_ESYS_RC_NO_ENCRYPT_PARAM ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 231 TSS2_BASE_RC_NO_ENCRYPT_PARAM)) 232 #define TSS2_ESYS_RC_BAD_SIZE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 233 TSS2_BASE_RC_BAD_SIZE)) 234 #define TSS2_ESYS_RC_MALFORMED_RESPONSE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 235 TSS2_BASE_RC_MALFORMED_RESPONSE)) 236 #define TSS2_ESYS_RC_INSUFFICIENT_CONTEXT ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 237 TSS2_BASE_RC_INSUFFICIENT_CONTEXT)) 238 #define TSS2_ESYS_RC_INSUFFICIENT_RESPONSE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 239 TSS2_BASE_RC_INSUFFICIENT_RESPONSE)) 240 #define TSS2_ESYS_RC_INCOMPATIBLE_TCTI ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 241 TSS2_BASE_RC_INCOMPATIBLE_TCTI)) 242 #define TSS2_ESYS_RC_BAD_TCTI_STRUCTURE ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 243 TSS2_BASE_RC_BAD_TCTI_STRUCTURE)) 244 #define TSS2_ESYS_RC_MEMORY ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 245 TSS2_BASE_RC_MEMORY)) 246 #define TSS2_ESYS_RC_BAD_TR ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 247 TSS2_BASE_RC_BAD_TR)) 248 #define TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 249 TSS2_BASE_RC_MULTIPLE_DECRYPT_SESSIONS)) 250 #define TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 251 TSS2_BASE_RC_MULTIPLE_ENCRYPT_SESSIONS)) 252 #define TSS2_ESYS_RC_RSP_AUTH_FAILED ((TSS2_RC)(TSS2_ESAPI_RC_LAYER | \ 253 TSS2_BASE_RC_RSP_AUTH_FAILED)) 254 255 /* FAPI Error Codes */ 256 257 #define TSS2_FAPI_RC_GENERAL_FAILURE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 258 TSS2_BASE_RC_GENERAL_FAILURE)) 259 #define TSS2_FAPI_RC_NOT_IMPLEMENTED ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 260 TSS2_BASE_RC_NOT_IMPLEMENTED)) 261 #define TSS2_FAPI_RC_BAD_REFERENCE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 262 TSS2_BASE_RC_BAD_REFERENCE)) 263 #define TSS2_FAPI_RC_BAD_SEQUENCE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 264 TSS2_BASE_RC_BAD_SEQUENCE)) 265 #define TSS2_FAPI_RC_IO_ERROR ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 266 TSS2_BASE_RC_IO_ERROR)) 267 #define TSS2_FAPI_RC_BAD_VALUE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 268 TSS2_BASE_RC_BAD_VALUE)) 269 #define TSS2_FAPI_RC_NO_DECRYPT_PARAM ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 270 TSS2_BASE_RC_NO_DECRYPT_PARAM)) 271 #define TSS2_FAPI_RC_NO_ENCRYPT_PARAM ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 272 TSS2_BASE_RC_NO_ENCRYPT_PARAM)) 273 #define TSS2_FAPI_RC_MEMORY ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 274 TSS2_BASE_RC_MEMORY)) 275 #define TSS2_FAPI_RC_BAD_CONTEXT ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 276 TSS2_BASE_RC_BAD_CONTEXT)) 277 #define TSS2_FAPI_RC_NO_CONFIG ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 278 TSS2_BASE_RC_NO_CONFIG)) 279 #define TSS2_FAPI_RC_BAD_PATH ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 280 TSS2_BASE_RC_BAD_PATH)) 281 #define TSS2_FAPI_RC_NOT_DELETABLE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 282 TSS2_BASE_RC_NOT_DELETABLE)) 283 #define TSS2_FAPI_RC_PATH_ALREADY_EXISTS ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 284 TSS2_BASE_RC_PATH_ALREADY_EXISTS)) 285 #define TSS2_FAPI_RC_KEY_NOT_FOUND ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 286 TSS2_BASE_RC_KEY_NOT_FOUND)) 287 #define TSS2_FAPI_RC_SIGNATURE_VERIFICATION_FAILED ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 288 TSS2_BASE_RC_SIGNATURE_VERIFICATION_FAILED)) 289 #define TSS2_FAPI_RC_HASH_MISMATCH ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 290 TSS2_BASE_RC_HASH_MISMATCH)) 291 #define TSS2_FAPI_RC_KEY_NOT_DUPLICABLE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 292 TSS2_BASE_RC_KEY_NOT_DUPLICABLE)) 293 #define TSS2_FAPI_RC_PATH_NOT_FOUND ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 294 TSS2_BASE_RC_PATH_NOT_FOUND)) 295 #define TSS2_FAPI_RC_NO_CERT ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 296 TSS2_BASE_RC_NO_CERT)) 297 #define TSS2_FAPI_RC_NO_PCR ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 298 TSS2_BASE_RC_NO_PCR)) 299 #define TSS2_FAPI_RC_PCR_NOT_RESETTABLE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 300 TSS2_BASE_RC_PCR_NOT_RESETTABLE)) 301 #define TSS2_FAPI_RC_BAD_TEMPLATE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 302 TSS2_BASE_RC_BAD_TEMPLATE)) 303 #define TSS2_FAPI_RC_AUTHORIZATION_FAILED ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 304 TSS2_BASE_RC_AUTHORIZATION_FAILED)) 305 #define TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 306 TSS2_BASE_RC_AUTHORIZATION_UNKNOWN)) 307 #define TSS2_FAPI_RC_NV_NOT_READABLE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 308 TSS2_BASE_RC_NV_NOT_READABLE)) 309 #define TSS2_FAPI_RC_NV_TOO_SMALL ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 310 TSS2_BASE_RC_NV_TOO_SMALL)) 311 #define TSS2_FAPI_RC_NV_NOT_WRITEABLE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 312 TSS2_BASE_RC_NV_NOT_WRITEABLE)) 313 #define TSS2_FAPI_RC_POLICY_UNKNOWN ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 314 TSS2_BASE_RC_POLICY_UNKNOWN)) 315 #define TSS2_FAPI_RC_NV_WRONG_TYPE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 316 TSS2_BASE_RC_NV_WRONG_TYPE)) 317 #define TSS2_FAPI_RC_NAME_ALREADY_EXISTS ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 318 TSS2_BASE_RC_NAME_ALREADY_EXISTS)) 319 #define TSS2_FAPI_RC_NO_TPM ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 320 TSS2_BASE_RC_NO_TPM)) 321 #define TSS2_FAPI_RC_TRY_AGAIN ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 322 TSS2_BASE_RC_TRY_AGAIN)) 323 #define TSS2_FAPI_RC_BAD_KEY ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 324 TSS2_BASE_RC_BAD_KEY)) 325 #define TSS2_FAPI_RC_NO_HANDLE ((TSS2_RC)(TSS2_FEATURE_RC_LAYER | \ 326 TSS2_BASE_RC_NO_HANDLE)) 327 #endif /* TSS2_COMMON_H */ 328