Home | History | Annotate | Line # | Download | only in tss
      1 /*
      2  * The TPM error codes extracted from the TPM main specification
      3  * version 1.2 revision 85.
      4  */
      5 
      6 #ifndef __TPM_ERROR_H__
      7 #define __TPM_ERROR_H__
      8 
      9 
     10 #ifndef TPM_E_BASE
     11 #define TPM_E_BASE        ((UINT32)0)
     12 #endif
     13 
     14 #ifndef TPM_E_NON_FATAL
     15 #define TPM_E_NON_FATAL   ((UINT32)0x00000800)
     16 #endif
     17 
     18 
     19 // Successful completion of the TPM operation.
     20 #define TPM_SUCCESS    TPM_E_BASE
     21 
     22 //
     23 // MessageId: TPM_E_AUTHFAIL
     24 //
     25 // MessageText:
     26 //
     27 // Authentication failed
     28 //
     29 #define TPM_E_AUTHFAIL ((UINT32)(TPM_E_BASE + 0x00000001))
     30 
     31 //
     32 // MessageId: TPM_E_BADINDEX
     33 //
     34 // MessageText:
     35 //
     36 // The index to a PCR, DIR or other register is incorrect
     37 //
     38 #define TPM_E_BADINDEX ((UINT32)(TPM_E_BASE + 0x00000002))
     39 
     40 //
     41 // MessageId: TPM_E_BAD_PARAMETER
     42 //
     43 // MessageText:
     44 //
     45 // One or more parameter is bad
     46 //
     47 #define TPM_E_BAD_PARAMETER ((UINT32)(TPM_E_BASE + 0x00000003))
     48 
     49 //
     50 // MessageId: TPM_E_AUDITFAILURE
     51 //
     52 // MessageText:
     53 //
     54 // An operation completed successfully but the auditing of that
     55 // operation failed.
     56 //
     57 #define TPM_E_AUDITFAILURE ((UINT32)(TPM_E_BASE + 0x00000004))
     58 
     59 //
     60 // MessageId: TPM_E_CLEAR_DISABLED
     61 //
     62 // MessageText:
     63 //
     64 // The clear disable flag is set and all clear operations now require
     65 // physical access
     66 //
     67 #define TPM_E_CLEAR_DISABLED ((UINT32)(TPM_E_BASE + 0x00000005))
     68 
     69 //
     70 // MessageId: TPM_E_DEACTIVATED
     71 //
     72 // MessageText:
     73 //
     74 // The TPM is deactivated
     75 //
     76 #define TPM_E_DEACTIVATED ((UINT32)(TPM_E_BASE + 0x00000006))
     77 
     78 //
     79 // MessageId: TPM_E_DISABLED
     80 //
     81 // MessageText:
     82 //
     83 // The TPM is disabled
     84 //
     85 #define TPM_E_DISABLED ((UINT32)(TPM_E_BASE + 0x00000007))
     86 
     87 //
     88 // MessageId: TPM_E_DISABLED_CMD
     89 //
     90 // MessageText:
     91 //
     92 // The target command has been disabled
     93 //
     94 #define TPM_E_DISABLED_CMD ((UINT32)(TPM_E_BASE + 0x00000008))
     95 
     96 //
     97 // MessageId: TPM_E_FAIL
     98 //
     99 // MessageText:
    100 //
    101 // The operation failed
    102 //
    103 #define TPM_E_FAIL ((UINT32)(TPM_E_BASE + 0x00000009))
    104 
    105 //
    106 // MessageId: TPM_E_BAD_ORDINAL
    107 //
    108 // MessageText:
    109 //
    110 // The ordinal was unknown or inconsistent
    111 //
    112 #define TPM_E_BAD_ORDINAL ((UINT32)(TPM_E_BASE + 0x0000000a))
    113 
    114 //
    115 // MessageId: TPM_E_INSTALL_DISABLED
    116 //
    117 // MessageText:
    118 //
    119 // The ability to install an owner is disabled
    120 //
    121 #define TPM_E_INSTALL_DISABLED ((UINT32)(TPM_E_BASE + 0x0000000b))
    122 
    123 //
    124 // MessageId: TPM_E_INVALID_KEYHANDLE
    125 //
    126 // MessageText:
    127 //
    128 // The key handle can not be interpreted
    129 //
    130 #define TPM_E_INVALID_KEYHANDLE ((UINT32)(TPM_E_BASE + 0x0000000c))
    131 
    132 //
    133 // MessageId: TPM_E_KEYNOTFOUND
    134 //
    135 // MessageText:
    136 //
    137 // The key handle points to an invalid key
    138 //
    139 #define TPM_E_KEYNOTFOUND ((UINT32)(TPM_E_BASE + 0x0000000d))
    140 
    141 //
    142 // MessageId: TPM_E_INAPPROPRIATE_ENC
    143 //
    144 // MessageText:
    145 //
    146 // Unacceptable encryption scheme
    147 //
    148 #define TPM_E_INAPPROPRIATE_ENC ((UINT32)(TPM_E_BASE + 0x0000000e))
    149 
    150 //
    151 // MessageId: TPM_E_MIGRATEFAIL
    152 //
    153 // MessageText:
    154 //
    155 // Migration authorization failed
    156 //
    157 #define TPM_E_MIGRATEFAIL ((UINT32)(TPM_E_BASE + 0x0000000f))
    158 
    159 //
    160 // MessageId: TPM_E_INVALID_PCR_INFO
    161 //
    162 // MessageText:
    163 //
    164 // PCR information could not be interpreted
    165 //
    166 #define TPM_E_INVALID_PCR_INFO ((UINT32)(TPM_E_BASE + 0x00000010))
    167 
    168 //
    169 // MessageId: TPM_E_NOSPACE
    170 //
    171 // MessageText:
    172 //
    173 // No room to load key.
    174 //
    175 #define TPM_E_NOSPACE ((UINT32)(TPM_E_BASE + 0x00000011))
    176 
    177 //
    178 // MessageId: TPM_E_NOSRK
    179 //
    180 // MessageText:
    181 //
    182 // There is no SRK set
    183 //
    184 #define TPM_E_NOSRK ((UINT32)(TPM_E_BASE + 0x00000012))
    185 
    186 //
    187 // MessageId: TPM_E_NOTSEALED_BLOB
    188 //
    189 // MessageText:
    190 //
    191 // An encrypted blob is invalid or was not created by this TPM
    192 //
    193 #define TPM_E_NOTSEALED_BLOB ((UINT32)(TPM_E_BASE + 0x00000013))
    194 
    195 //
    196 // MessageId: TPM_E_OWNER_SET
    197 //
    198 // MessageText:
    199 //
    200 // There is already an Owner
    201 //
    202 #define TPM_E_OWNER_SET ((UINT32)(TPM_E_BASE + 0x00000014))
    203 
    204 //
    205 // MessageId: TPM_E_RESOURCES
    206 //
    207 // MessageText:
    208 //
    209 // The TPM has insufficient internal resources to perform the
    210 // requested action.
    211 //
    212 #define TPM_E_RESOURCES ((UINT32)(TPM_E_BASE + 0x00000015))
    213 
    214 //
    215 // MessageId: TPM_E_SHORTRANDOM
    216 //
    217 // MessageText:
    218 //
    219 // A random string was too short
    220 //
    221 #define TPM_E_SHORTRANDOM ((UINT32)(TPM_E_BASE + 0x00000016))
    222 
    223 //
    224 // MessageId: TPM_E_SIZE
    225 //
    226 // MessageText:
    227 //
    228 // The TPM does not have the space to perform the operation.
    229 //
    230 #define TPM_E_SIZE ((UINT32)(TPM_E_BASE + 0x00000017))
    231 
    232 //
    233 // MessageId: TPM_E_WRONGPCRVAL
    234 //
    235 // MessageText:
    236 //
    237 // The named PCR value does not match the current PCR value.
    238 //
    239 #define TPM_E_WRONGPCRVAL ((UINT32)(TPM_E_BASE + 0x00000018))
    240 
    241 //
    242 // MessageId: TPM_E_BAD_PARAM_SIZE
    243 //
    244 // MessageText:
    245 //
    246 // The paramSize argument to the command has the incorrect value
    247 //
    248 #define TPM_E_BAD_PARAM_SIZE ((UINT32)(TPM_E_BASE + 0x00000019))
    249 
    250 //
    251 // MessageId: TPM_E_SHA_THREAD
    252 //
    253 // MessageText:
    254 //
    255 // There is no existing SHA-1 thread.
    256 //
    257 #define TPM_E_SHA_THREAD ((UINT32)(TPM_E_BASE + 0x0000001a))
    258 
    259 //
    260 // MessageId: TPM_E_SHA_ERROR
    261 //
    262 // MessageText:
    263 //
    264 // The calculation is unable to proceed because the existing SHA-1
    265 // thread has already encountered an error.
    266 //
    267 #define TPM_E_SHA_ERROR ((UINT32)(TPM_E_BASE + 0x0000001b))
    268 
    269 //
    270 // MessageId: TPM_E_FAILEDSELFTEST
    271 //
    272 // MessageText:
    273 //
    274 // Self-test has failed and the TPM has shutdown.
    275 //
    276 #define TPM_E_FAILEDSELFTEST ((UINT32)(TPM_E_BASE + 0x0000001c))
    277 
    278 //
    279 // MessageId: TPM_E_AUTH2FAIL
    280 //
    281 // MessageText:
    282 //
    283 // The authorization for the second key in a 2 key function failed
    284 // authorization
    285 //
    286 #define TPM_E_AUTH2FAIL ((UINT32)(TPM_E_BASE + 0x0000001d))
    287 
    288 //
    289 // MessageId: TPM_E_BADTAG
    290 //
    291 // MessageText:
    292 //
    293 // The tag value sent to for a command is invalid
    294 //
    295 #define TPM_E_BADTAG ((UINT32)(TPM_E_BASE + 0x0000001e))
    296 
    297 //
    298 // MessageId: TPM_E_IOERROR
    299 //
    300 // MessageText:
    301 //
    302 // An IO error occurred transmitting information to the TPM
    303 //
    304 #define TPM_E_IOERROR ((UINT32)(TPM_E_BASE + 0x0000001f))
    305 
    306 //
    307 // MessageId: TPM_E_ENCRYPT_ERROR
    308 //
    309 // MessageText:
    310 //
    311 // The encryption process had a problem.
    312 //
    313 #define TPM_E_ENCRYPT_ERROR ((UINT32)(TPM_E_BASE + 0x00000020))
    314 
    315 //
    316 // MessageId: TPM_E_DECRYPT_ERROR
    317 //
    318 // MessageText:
    319 //
    320 // The decryption process did not complete.
    321 //
    322 #define TPM_E_DECRYPT_ERROR ((UINT32)(TPM_E_BASE + 0x00000021))
    323 
    324 //
    325 // MessageId: TPM_E_INVALID_AUTHHANDLE
    326 //
    327 // MessageText:
    328 //
    329 // An invalid handle was used.
    330 //
    331 #define TPM_E_INVALID_AUTHHANDLE ((UINT32)(TPM_E_BASE + 0x00000022))
    332 
    333 //
    334 // MessageId: TPM_E_NO_ENDORSEMENT
    335 //
    336 // MessageText:
    337 //
    338 // The TPM does not a EK installed
    339 //
    340 #define TPM_E_NO_ENDORSEMENT ((UINT32)(TPM_E_BASE + 0x00000023))
    341 
    342 //
    343 // MessageId: TPM_E_INVALID_KEYUSAGE
    344 //
    345 // MessageText:
    346 //
    347 // The usage of a key is not allowed
    348 //
    349 #define TPM_E_INVALID_KEYUSAGE ((UINT32)(TPM_E_BASE + 0x00000024))
    350 
    351 //
    352 // MessageId: TPM_E_WRONG_ENTITYTYPE
    353 //
    354 // MessageText:
    355 //
    356 // The submitted entity type is not allowed
    357 //
    358 #define TPM_E_WRONG_ENTITYTYPE ((UINT32)(TPM_E_BASE + 0x00000025))
    359 
    360 //
    361 // MessageId: TPM_E_INVALID_POSTINIT
    362 //
    363 // MessageText:
    364 //
    365 // The command was received in the wrong sequence relative to TPM_Init
    366 // and a subsequent TPM_Startup
    367 //
    368 #define TPM_E_INVALID_POSTINIT ((UINT32)(TPM_E_BASE + 0x00000026))
    369 
    370 //
    371 // MessageId: TPM_E_INAPPROPRIATE_SIG
    372 //
    373 // MessageText:
    374 //
    375 // Signed data cannot include additional DER information
    376 //
    377 #define TPM_E_INAPPROPRIATE_SIG ((UINT32)(TPM_E_BASE + 0x00000027))
    378 
    379 //
    380 // MessageId: TPM_E_BAD_KEY_PROPERTY
    381 //
    382 // MessageText:
    383 //
    384 // The key properties in TPM_KEY_PARMs are not supported by this TPM
    385 //
    386 #define TPM_E_BAD_KEY_PROPERTY ((UINT32)(TPM_E_BASE + 0x00000028))
    387 
    388 //
    389 // MessageId: TPM_E_BAD_MIGRATION
    390 //
    391 // MessageText:
    392 //
    393 // The migration properties of this key are incorrect.
    394 //
    395 #define TPM_E_BAD_MIGRATION ((UINT32)(TPM_E_BASE + 0x00000029))
    396 
    397 //
    398 // MessageId: TPM_E_BAD_SCHEME
    399 //
    400 // MessageText:
    401 //
    402 // The signature or encryption scheme for this key is incorrect or not
    403 // permitted in this situation.
    404 //
    405 #define TPM_E_BAD_SCHEME ((UINT32)(TPM_E_BASE + 0x0000002a))
    406 
    407 //
    408 // MessageId: TPM_E_BAD_DATASIZE
    409 //
    410 // MessageText:
    411 //
    412 // The size of the data (or blob) parameter is bad or inconsistent
    413 // with the referenced key
    414 //
    415 #define TPM_E_BAD_DATASIZE ((UINT32)(TPM_E_BASE + 0x0000002b))
    416 
    417 //
    418 // MessageId: TPM_E_BAD_MODE
    419 //
    420 // MessageText:
    421 //
    422 // A mode parameter is bad, such as capArea or subCapArea for
    423 // TPM_GetCapability, physicalPresence parameter for
    424 // TPM_PhysicalPresence, or migrationType for TPM_CreateMigrationBlob.
    425 //
    426 #define TPM_E_BAD_MODE ((UINT32)(TPM_E_BASE + 0x0000002c))
    427 
    428 //
    429 // MessageId: TPM_E_BAD_PRESENCE
    430 //
    431 // MessageText:
    432 //
    433 // Either the physicalPresence or physicalPresenceLock bits have the
    434 // wrong value
    435 //
    436 #define TPM_E_BAD_PRESENCE ((UINT32)(TPM_E_BASE + 0x0000002d))
    437 
    438 //
    439 // MessageId: TPM_E_BAD_VERSION
    440 //
    441 // MessageText:
    442 //
    443 // The TPM cannot perform this version of the capability
    444 //
    445 #define TPM_E_BAD_VERSION ((UINT32)(TPM_E_BASE + 0x0000002e))
    446 
    447 //
    448 // MessageId: TPM_E_NO_WRAP_TRANSPORT
    449 //
    450 // MessageText:
    451 //
    452 // The TPM does not allow for wrapped transport sessions
    453 //
    454 #define TPM_E_NO_WRAP_TRANSPORT ((UINT32)(TPM_E_BASE + 0x0000002f))
    455 
    456 //
    457 // MessageId: TPM_E_AUDITFAIL_UNSUCCESSFUL
    458 //
    459 // MessageText:
    460 //
    461 // TPM audit construction failed and the underlying command was
    462 // returning a failure code also
    463 //
    464 #define TPM_E_AUDITFAIL_UNSUCCESSFUL ((UINT32)(TPM_E_BASE + 0x00000030))
    465 
    466 //
    467 // MessageId: TPM_E_AUDITFAIL_SUCCESSFUL
    468 //
    469 // MessageText:
    470 //
    471 // TPM audit construction failed and the underlying command was
    472 // returning success
    473 //
    474 #define TPM_E_AUDITFAIL_SUCCESSFUL ((UINT32)(TPM_E_BASE + 0x00000031))
    475 
    476 //
    477 // MessageId: TPM_E_NOTRESETABLE
    478 //
    479 // MessageText:
    480 //
    481 // Attempt to reset a PCR register that does not have the resettable
    482 // attribute
    483 //
    484 #define TPM_E_NOTRESETABLE ((UINT32)(TPM_E_BASE + 0x00000032))
    485 
    486 //
    487 // MessageId: TPM_E_NOTLOCAL
    488 //
    489 // MessageText:
    490 //
    491 // Attempt to reset a PCR register that requires locality and locality
    492 // modifier not part of command transport
    493 //
    494 #define TPM_E_NOTLOCAL ((UINT32)(TPM_E_BASE + 0x00000033))
    495 
    496 //
    497 // MessageId: TPM_E_BAD_TYPE
    498 //
    499 // MessageText:
    500 //
    501 // Make identity blob not properly typed
    502 //
    503 #define TPM_E_BAD_TYPE ((UINT32)(TPM_E_BASE + 0x00000034))
    504 
    505 //
    506 // MessageId: TPM_E_INVALID_RESOURCE
    507 //
    508 // MessageText:
    509 //
    510 // When saving context identified resource type does not match actual
    511 // resource
    512 //
    513 #define TPM_E_INVALID_RESOURCE ((UINT32)(TPM_E_BASE + 0x00000035))
    514 
    515 //
    516 // MessageId: TPM_E_NOTFIPS
    517 //
    518 // MessageText:
    519 //
    520 // The TPM is attempting to execute a command only available when in
    521 // FIPS mode
    522 //
    523 #define TPM_E_NOTFIPS ((UINT32)(TPM_E_BASE + 0x00000036))
    524 
    525 //
    526 // MessageId: TPM_E_INVALID_FAMILY
    527 //
    528 // MessageText:
    529 //
    530 // The command is attempting to use an invalid family ID
    531 //
    532 #define TPM_E_INVALID_FAMILY ((UINT32)(TPM_E_BASE + 0x00000037))
    533 
    534 //
    535 // MessageId: TPM_E_NO_NV_PERMISSION
    536 //
    537 // MessageText:
    538 //
    539 // The permission to manipulate the NV storage is not available
    540 //
    541 #define TPM_E_NO_NV_PERMISSION ((UINT32)(TPM_E_BASE + 0x00000038))
    542 
    543 //
    544 // MessageId: TPM_E_REQUIRES_SIGN
    545 //
    546 // MessageText:
    547 //
    548 // The operation requires a signed command
    549 //
    550 #define TPM_E_REQUIRES_SIGN ((UINT32)(TPM_E_BASE + 0x00000039))
    551 
    552 //
    553 // MessageId: TPM_E_KEY_NOTSUPPORTED
    554 //
    555 // MessageText:
    556 //
    557 // Wrong operation to load an NV key
    558 //
    559 #define TPM_E_KEY_NOTSUPPORTED ((UINT32)(TPM_E_BASE + 0x0000003a))
    560 
    561 //
    562 // MessageId: TPM_E_AUTH_CONFLICT
    563 //
    564 // MessageText:
    565 //
    566 // NV_LoadKey blob requires both owner and blob authorization
    567 //
    568 #define TPM_E_AUTH_CONFLICT ((UINT32)(TPM_E_BASE + 0x0000003b))
    569 
    570 //
    571 // MessageId: TPM_E_AREA_LOCKED
    572 //
    573 // MessageText:
    574 //
    575 // The NV area is locked and not writable
    576 //
    577 #define TPM_E_AREA_LOCKED ((UINT32)(TPM_E_BASE + 0x0000003c))
    578 
    579 //
    580 // MessageId: TPM_E_BAD_LOCALITY
    581 //
    582 // MessageText:
    583 //
    584 // The locality is incorrect for the attempted operation
    585 //
    586 #define TPM_E_BAD_LOCALITY ((UINT32)(TPM_E_BASE + 0x0000003d))
    587 
    588 //
    589 // MessageId: TPM_E_READ_ONLY
    590 //
    591 // MessageText:
    592 //
    593 // The NV area is read only and can't be written to
    594 //
    595 #define TPM_E_READ_ONLY ((UINT32)(TPM_E_BASE + 0x0000003e))
    596 
    597 //
    598 // MessageId: TPM_E_PER_NOWRITE
    599 //
    600 // MessageText:
    601 //
    602 // There is no protection on the write to the NV area
    603 //
    604 #define TPM_E_PER_NOWRITE ((UINT32)(TPM_E_BASE + 0x0000003f))
    605 
    606 //
    607 // MessageId: TPM_E_FAMILYCOUNT
    608 //
    609 // MessageText:
    610 //
    611 // The family count value does not match
    612 //
    613 #define TPM_E_FAMILYCOUNT ((UINT32)(TPM_E_BASE + 0x00000040))
    614 
    615 //
    616 // MessageId: TPM_E_WRITE_LOCKED
    617 //
    618 // MessageText:
    619 //
    620 // The NV area has already been written to
    621 //
    622 #define TPM_E_WRITE_LOCKED ((UINT32)(TPM_E_BASE + 0x00000041))
    623 
    624 //
    625 // MessageId: TPM_E_BAD_ATTRIBUTES
    626 //
    627 // MessageText:
    628 //
    629 // The NV area attributes conflict
    630 //
    631 #define TPM_E_BAD_ATTRIBUTES ((UINT32)(TPM_E_BASE + 0x00000042))
    632 
    633 //
    634 // MessageId: TPM_E_INVALID_STRUCTURE
    635 //
    636 // MessageText:
    637 //
    638 // The structure tag and version are invalid or inconsistent
    639 //
    640 #define TPM_E_INVALID_STRUCTURE ((UINT32)(TPM_E_BASE + 0x00000043))
    641 
    642 //
    643 // MessageId: TPM_E_KEY_OWNER_CONTROL
    644 //
    645 // MessageText:
    646 //
    647 // The key is under control of the TPM Owner and can only be evicted
    648 // by the TPM Owner.
    649 //
    650 #define TPM_E_KEY_OWNER_CONTROL ((UINT32)(TPM_E_BASE + 0x00000044))
    651 
    652 //
    653 // MessageId: TPM_E_BAD_COUNTER
    654 //
    655 // MessageText:
    656 //
    657 // The counter handle is incorrect
    658 //
    659 #define TPM_E_BAD_COUNTER ((UINT32)(TPM_E_BASE + 0x00000045))
    660 
    661 //
    662 // MessageId: TPM_E_NOT_FULLWRITE
    663 //
    664 // MessageText:
    665 //
    666 // The write is not a complete write of the area
    667 //
    668 #define TPM_E_NOT_FULLWRITE ((UINT32)(TPM_E_BASE + 0x00000046))
    669 
    670 //
    671 // MessageId: TPM_E_CONTEXT_GAP
    672 //
    673 // MessageText:
    674 //
    675 // The gap between saved context counts is too large
    676 //
    677 #define TPM_E_CONTEXT_GAP ((UINT32)(TPM_E_BASE + 0x00000047))
    678 
    679 //
    680 // MessageId: TPM_E_MAXNVWRITES
    681 //
    682 // MessageText:
    683 //
    684 // The maximum number of NV writes without an owner has been exceeded
    685 //
    686 #define TPM_E_MAXNVWRITES ((UINT32)(TPM_E_BASE + 0x00000048))
    687 
    688 //
    689 // MessageId: TPM_E_NOOPERATOR
    690 //
    691 // MessageText:
    692 //
    693 // No operator AuthData value is set
    694 //
    695 #define TPM_E_NOOPERATOR ((UINT32)(TPM_E_BASE + 0x00000049))
    696 
    697 //
    698 // MessageId: TPM_E_RESOURCEMISSING
    699 //
    700 // MessageText:
    701 //
    702 // The resource pointed to by context is not loaded
    703 //
    704 #define TPM_E_RESOURCEMISSING ((UINT32)(TPM_E_BASE + 0x0000004a))
    705 
    706 //
    707 // MessageId: TPM_E_DELEGATE_LOCK
    708 //
    709 // MessageText:
    710 //
    711 // The delegate administration is locked
    712 //
    713 #define TPM_E_DELEGATE_LOCK ((UINT32)(TPM_E_BASE + 0x0000004b))
    714 
    715 //
    716 // MessageId: TPM_E_DELEGATE_FAMILY
    717 //
    718 // MessageText:
    719 //
    720 // Attempt to manage a family other then the delegated family
    721 //
    722 #define TPM_E_DELEGATE_FAMILY ((UINT32)(TPM_E_BASE + 0x0000004c))
    723 
    724 //
    725 // MessageId: TPM_E_DELEGATE_ADMIN
    726 //
    727 // MessageText:
    728 //
    729 // Delegation table management not enabled
    730 //
    731 #define TPM_E_DELEGATE_ADMIN ((UINT32)(TPM_E_BASE + 0x0000004d))
    732 
    733 //
    734 // MessageId: TPM_E_TRANSPORT_NOTEXCLUSIVE
    735 //
    736 // MessageText:
    737 //
    738 // There was a command executed outside of an exclusive transport session
    739 //
    740 #define TPM_E_TRANSPORT_NOTEXCLUSIVE ((UINT32)(TPM_E_BASE + 0x0000004e))
    741 
    742 //
    743 // MessageId: TPM_E_OWNER_CONTROL
    744 //
    745 // MessageText:
    746 //
    747 // Attempt to context save a owner evict controlled key
    748 //
    749 #define TPM_E_OWNER_CONTROL ((UINT32)(TPM_E_BASE + 0x0000004f))
    750 
    751 //
    752 // MessageId: TPM_E_DAA_RESOURCES
    753 //
    754 // MessageText:
    755 //
    756 // The DAA command has no resources available to execute the command
    757 //
    758 #define TPM_E_DAA_RESOURCES ((UINT32)(TPM_E_BASE + 0x00000050))
    759 
    760 //
    761 // MessageId: TPM_E_DAA_INPUT_DATA0
    762 //
    763 // MessageText:
    764 //
    765 // The consistency check on DAA parameter inputData0 has failed.
    766 //
    767 #define TPM_E_DAA_INPUT_DATA0 ((UINT32)(TPM_E_BASE + 0x00000051))
    768 
    769 //
    770 // MessageId: TPM_E_DAA_INPUT_DATA1
    771 //
    772 // MessageText:
    773 //
    774 // The consistency check on DAA parameter inputData1 has failed.
    775 //
    776 #define TPM_E_DAA_INPUT_DATA1 ((UINT32)(TPM_E_BASE + 0x00000052))
    777 
    778 //
    779 // MessageId: TPM_E_DAA_ISSUER_SETTINGS
    780 //
    781 // MessageText:
    782 //
    783 // The consistency check on DAA_issuerSettings has failed.
    784 //
    785 #define TPM_E_DAA_ISSUER_SETTINGS ((UINT32)(TPM_E_BASE + 0x00000053))
    786 
    787 //
    788 // MessageId: TPM_E_DAA_TPM_SETTINGS
    789 //
    790 // MessageText:
    791 //
    792 // The consistency check on DAA_tpmSpecific has failed.
    793 //
    794 #define TPM_E_DAA_TPM_SETTINGS ((UINT32)(TPM_E_BASE + 0x00000054))
    795 
    796 //
    797 // MessageId: TPM_E_DAA_STAGE
    798 //
    799 // MessageText:
    800 //
    801 // The atomic process indicated by the submitted DAA command is not
    802 // the expected process.
    803 //
    804 #define TPM_E_DAA_STAGE ((UINT32)(TPM_E_BASE + 0x00000055))
    805 
    806 //
    807 // MessageId: TPM_E_DAA_ISSUER_VALIDITY
    808 //
    809 // MessageText:
    810 //
    811 // The issuer's validity check has detected an inconsistency
    812 //
    813 #define TPM_E_DAA_ISSUER_VALIDITY ((UINT32)(TPM_E_BASE + 0x00000056))
    814 
    815 //
    816 // MessageId: TPM_E_DAA_WRONG_W
    817 //
    818 // MessageText:
    819 //
    820 // The consistency check on w has failed.
    821 //
    822 #define TPM_E_DAA_WRONG_W ((UINT32)(TPM_E_BASE + 0x00000057))
    823 
    824 //
    825 // MessageId: TPM_E_BAD_HANDLE
    826 //
    827 // MessageText:
    828 //
    829 // The handle is incorrect
    830 //
    831 #define TPM_E_BAD_HANDLE ((UINT32)(TPM_E_BASE + 0x00000058))
    832 
    833 //
    834 // MessageId: TPM_E_BAD_DELEGATE
    835 //
    836 // MessageText:
    837 //
    838 // Delegation is not correct
    839 //
    840 #define TPM_E_BAD_DELEGATE ((UINT32)(TPM_E_BASE + 0x00000059))
    841 
    842 //
    843 // MessageId: TPM_E_BADCONTEXT
    844 //
    845 // MessageText:
    846 //
    847 // The context blob is invalid
    848 //
    849 #define TPM_E_BADCONTEXT ((UINT32)(TPM_E_BASE + 0x0000005a))
    850 
    851 //
    852 // MessageId: TPM_E_TOOMANYCONTEXTS
    853 //
    854 // MessageText:
    855 //
    856 // Too many contexts held by the TPM
    857 //
    858 #define TPM_E_TOOMANYCONTEXTS ((UINT32)(TPM_E_BASE + 0x0000005b))
    859 
    860 //
    861 // MessageId: TPM_E_MA_TICKET_SIGNATURE
    862 //
    863 // MessageText:
    864 //
    865 // Migration authority signature validation failure
    866 //
    867 #define TPM_E_MA_TICKET_SIGNATURE ((UINT32)(TPM_E_BASE + 0x0000005c))
    868 
    869 //
    870 // MessageId: TPM_E_MA_DESTINATION
    871 //
    872 // MessageText:
    873 //
    874 // Migration destination not authenticated
    875 //
    876 #define TPM_E_MA_DESTINATION ((UINT32)(TPM_E_BASE + 0x0000005d))
    877 
    878 //
    879 // MessageId: TPM_E_MA_SOURCE
    880 //
    881 // MessageText:
    882 //
    883 // Migration source incorrect
    884 //
    885 #define TPM_E_MA_SOURCE ((UINT32)(TPM_E_BASE + 0x0000005e))
    886 
    887 //
    888 // MessageId: TPM_E_MA_AUTHORITY
    889 //
    890 // MessageText:
    891 //
    892 // Incorrect migration authority
    893 //
    894 #define TPM_E_MA_AUTHORITY ((UINT32)(TPM_E_BASE + 0x0000005f))
    895 
    896 //
    897 // MessageId: TPM_E_PERMANENTEK
    898 //
    899 // MessageText:
    900 //
    901 // Attempt to revoke the EK and the EK is not revocable
    902 //
    903 #define TPM_E_PERMANENTEK ((UINT32)(TPM_E_BASE + 0x00000061))
    904 
    905 //
    906 // MessageId: TPM_E_BAD_SIGNATURE
    907 //
    908 // MessageText:
    909 //
    910 // Bad signature of CMK ticket
    911 //
    912 #define TPM_E_BAD_SIGNATURE ((UINT32)(TPM_E_BASE + 0x00000062))
    913 
    914 //
    915 // MessageId: TPM_E_NOCONTEXTSPACE
    916 //
    917 // MessageText:
    918 //
    919 // There is no room in the context list for additional contexts
    920 //
    921 #define TPM_E_NOCONTEXTSPACE  ((UINT32)(TPM_E_BASE + 0x00000063))
    922 
    923 
    924 //
    925 // MessageId: TPM_E_RETRY
    926 //
    927 // MessageText:
    928 //
    929 // The TPM is too busy to respond to the command immediately, but the
    930 // command could be resubmitted at a later time. The TPM MAY return
    931 // TPM_Retry for any command at any time.
    932 //
    933 #define TPM_E_RETRY ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL))
    934 
    935 //
    936 // MessageId: TPM_E_NEEDS_SELFTEST
    937 //
    938 // MessageText:
    939 //
    940 // SelfTestFull has not been run
    941 //
    942 #define TPM_E_NEEDS_SELFTEST ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL + 1))
    943 
    944 //
    945 // MessageId: TPM_E_DOING_SELFTEST
    946 //
    947 // MessageText:
    948 //
    949 // The TPM is currently executing a full selftest
    950 //
    951 #define TPM_E_DOING_SELFTEST ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL + 2))
    952 
    953 //
    954 // MessageId: TPM_E_DEFEND_LOCK_RUNNING
    955 //
    956 // MessageText:
    957 //
    958 // The TPM is defending against dictionary attacks and is in some
    959 // time-out period.
    960 //
    961 #define TPM_E_DEFEND_LOCK_RUNNING ((UINT32)(TPM_E_BASE + TPM_E_NON_FATAL + 3))
    962 
    963 #endif /* __TPM_ERROR_H__ */
    964