|  | Software APIs
    | 
 
 
 
    5#ifndef OPENTITAN_SW_DEVICE_LIB_BASE_INTERNAL_STATUS_H_ 
    6#define OPENTITAN_SW_DEVICE_LIB_BASE_INTERNAL_STATUS_H_ 
    8#ifndef USING_INTERNAL_STATUS 
    9#error "Do not include internal/status.h directly. Include status.h instead." 
   13#define USING_ABSL_STATUS 
   14#include "sw/device/lib/base/internal/absl_status.h" 
   15#undef USING_ABSL_STATUS 
   50#define STATUS_FIELD_CODE ((bitfield_field32_t){.mask = 0x1f, .index = 0}) 
   51#define STATUS_FIELD_ARG ((bitfield_field32_t){.mask = 0x7ff, .index = 5}) 
   52#define STATUS_FIELD_MODULE_ID \ 
   53  ((bitfield_field32_t){.mask = 0x7fff, .index = 16}) 
   54#define STATUS_BIT_ERROR 31 
   57#define ASCII_5BIT(v) ( \ 
   58      (v) >= '@' && (v) <= '_' ? OT_UNSIGNED((v) - '@') \ 
   59         : (v) >= '`' && (v) <= 'z' ? OT_UNSIGNED((v) - '`') \ 
   60     : OT_UNSIGNED('_' - '@')                            \ 
   76#define MAKE_MODULE_ID(a, b, c) \ 
   77  (ASCII_5BIT(a) << 16) | (ASCII_5BIT(b) << 21) | (ASCII_5BIT(c) << 26)