1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#define T_ERROR_CLASS_FIELDS \
T_X( STANDARD, 0, "standard") \
T_X( BOARD_A, 1, "board a") \
T_X( DRIVER, 2, "driver")
typedef enum{
#define T_X(name, value, string) name##_NEWVALUE = value * 10000,
T_ERROR_CLASS_FIELDS
#undef T_X
}T_ERROR_CLASS;
#define T_ERROR_CODE_FIELDS \
T_X( T_SUCCESS, 0, STANDARD, "success") \
T_X( T_ERROR, 1, STANDARD, "error") \
#define T_RC_FIELDS \
T_X( RC_NO_ERROR, 0, BOARD_A, "success") \
T_X( RC_ERROR, 1, BOARD_A, "error") \
#define T_DRIVER_ERROR_FIELDS \
T_X( T_DRV_NO_ERROR, 0, DRIVER, "success") \
T_X( T_DRV_ERROR, 1, DRIVER, "error") \
#define T_ALL_ERROR_FIELDS \
T_ERROR_CODE_FIELDS \
T_RC_FIELDS \
T_DRIVER_ERROR_FIELDS
#define T_ERROR_FROM_CLASS_ERROR(class, error) (error + class##_NEWVALUE)
#define T_X(name, value, class, string) name = T_ERROR_FROM_CLASS_ERROR(class, value),
typedef enum{
T_ALL_ERROR_FIELDS
}T_ERROR;
#undef T_X |
Partager