/*++ | |
Basic defines for TSS error return codes | |
--*/ | |
#ifndef __TSS_ERROR_BASICS_H__ | |
#define __TSS_ERROR_BASICS_H__ | |
// | |
// definitions for the various TSS-SW layers | |
// | |
#ifndef TSS_LAYER_TPM | |
#define TSS_LAYER_TPM 0x0000L // definition for TPM layer | |
#endif // TSS_LAYER_TPM | |
#define TSS_LAYER_TDDL 0x1000L // definition for TDDL layer | |
#define TSS_LAYER_TCS 0x2000L // definition for TCS layer | |
#ifndef TSS_LAYER_TSP | |
#define TSS_LAYER_TSP 0x3000L // definition for TSP layer | |
#endif // TSS_LAYER_TSP | |
// | |
// definitions for the start points of layer specific error codes | |
// | |
#ifndef TSS_COMMON_OFFSET | |
#define TSS_COMMON_OFFSET 0x000L | |
#endif // TSS_COMMON_OFFSET | |
#define TSS_TDDL_OFFSET 0x080L | |
#define TSS_TCSI_OFFSET 0x0C0L | |
#ifndef TSS_TSPI_OFFSET | |
#define TSS_TSPI_OFFSET 0x100L | |
#endif // TSS_TSPI_OFFSET | |
#ifndef TSS_VENDOR_OFFSET | |
#define TSS_VENDOR_OFFSET 0x800L | |
#endif // TSS_VENDOR_OFFSET | |
// do not exceed TSS_MAX_ERROR for vendor specific code values: | |
#ifndef TSS_MAX_ERROR | |
#define TSS_MAX_ERROR 0xFFFL | |
#endif // TSS_MAX_ERROR | |
/* Macros for the construction and interpretation of error codes */ | |
#define TPM_ERROR(code) (code) | |
#define TDDL_ERROR(code) ((code) ? (TSS_LAYER_TDDL | (code)) : (code)) | |
#define TCS_ERROR(code) ((code) ? (TSS_LAYER_TCS | (code)) : (code)) | |
#define TSP_ERROR(code) ((code) ? (TSS_LAYER_TSP | (code)) : (code)) | |
#define ERROR_LAYER(error) ((error) & 0xf000) | |
#define ERROR_CODE(error) ((error) & 0x0fff) | |
#endif // __TSS_ERROR_BASICS_H__ | |