53 lines
1.5 KiB
C
53 lines
1.5 KiB
C
|
#ifndef _STATUS_H_
|
||
|
#define _STATUS_H_
|
||
|
|
||
|
#include "type.h"
|
||
|
#include "lib/sxtdlib.h"
|
||
|
|
||
|
typedef uint32_t status_t;
|
||
|
|
||
|
//
|
||
|
// 32 bit ints
|
||
|
//
|
||
|
// bits 30 - 31 - Error/Success
|
||
|
// 00 = Success
|
||
|
// 01 = Error
|
||
|
//
|
||
|
// bits 0-14 - Return Code - 32768 in total
|
||
|
// bits 15-29 - Facility 32768 in total
|
||
|
//
|
||
|
|
||
|
#define SX_MAKE_STATUS(Severity, Facility, Return) (((Severity) << 30) | ((Facility) << 16) | (Return))
|
||
|
|
||
|
#define SEVERITY_ERROR 0x3
|
||
|
#define SEVERITY_SUCCESS 0x0
|
||
|
#define SEVERITY_INFO 0x1
|
||
|
|
||
|
#define FACILITY_GENERIC 0
|
||
|
#define FACILITY_RF 1
|
||
|
#define FACILITY_MM 2
|
||
|
|
||
|
static inline bool sx_success(status_t status)
|
||
|
{
|
||
|
uint32_t severity = status >> 30;
|
||
|
return (severity == SEVERITY_INFO) || (severity == SEVERITY_SUCCESS);
|
||
|
}
|
||
|
|
||
|
enum _status_t
|
||
|
{
|
||
|
STATUS_SUCCESS = SX_MAKE_STATUS(SEVERITY_SUCCESS, FACILITY_GENERIC, 0),
|
||
|
STATUS_FAIL = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_GENERIC, 0),
|
||
|
|
||
|
RF_UNINITIALIZED = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_RF, 1),
|
||
|
RF_ALLOCATION_FAILED = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_RF, 2),
|
||
|
RF_INVALID_ARGUMENTS = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_RF, 3),
|
||
|
RF_INVALID_HANDLE = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_RF, 4),
|
||
|
RF_DUPLICATED_HANDLE = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_RF, 5),
|
||
|
|
||
|
MM_INVALID_ARGUMENTS = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_MM, 1),
|
||
|
MM_ALLOCATION_FAILED = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_MM, 2),
|
||
|
MM_UNINITIALIZED = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_MM, 3),
|
||
|
MM_NOT_ENOUGH_PAGE = SX_MAKE_STATUS(SEVERITY_ERROR, FACILITY_MM, 4),
|
||
|
};
|
||
|
|
||
|
#endif
|