1 // This file was extracted from the TCG Published 2 // Trusted Platform Module Library 3 // Part 4: Supporting Routines 4 // Family "2.0" 5 // Level 00 Revision 01.16 6 // October 30, 2014 7 8 #ifndef _TPM_ERROR_H 9 #define _TPM_ERROR_H 10 #include "TpmBuildSwitches.h" 11 #define FATAL_ERROR_ALLOCATION (1) 12 #define FATAL_ERROR_DIVIDE_ZERO (2) 13 #define FATAL_ERROR_INTERNAL (3) 14 #define FATAL_ERROR_PARAMETER (4) 15 #define FATAL_ERROR_ENTROPY (5) 16 #define FATAL_ERROR_SELF_TEST (6) 17 #define FATAL_ERROR_CRYPTO (7) 18 #define FATAL_ERROR_NV_UNRECOVERABLE (8) 19 #define FATAL_ERROR_REMANUFACTURED (9) // indicates that the TPM has 20 // been re-manufactured after an 21 // unrecoverable NV error 22 #define FATAL_ERROR_DRBG (10) 23 #define FATAL_ERROR_FORCED (666) 24 // 25 // These are the crypto assertion routines. When a function returns an unexpected and unrecoverable 26 // result, the assertion fails and the TpmFail() is called 27 // 28 void 29 TpmFail(const char *function, int line, int code); 30 typedef void (*FAIL_FUNCTION)(const char *, int, int); 31 #define FAIL(a) (TpmFail(__FUNCTION__, __LINE__, a)) 32 #if defined(EMPTY_ASSERT) 33 # define pAssert(a) ((void)0) 34 #else 35 # define pAssert(a) {if (!(a)) { FAIL(FATAL_ERROR_PARAMETER);}} 36 #endif 37 #endif // _TPM_ERROR_H 38