30 #include "architecture_arch.h"  
   42 #ifndef ARCHITECTURE_BREAKPOINT 
   46 #define ARCHITECTURE_BREAKPOINT(value)  do {} while (1) 
   56 #define ARCHITECTURE_WORD_BITS      <NUM> 
   62 #define ARCHITECTURE_WORD_BYTES     <ARCHITECTURE_WORD_BITS / 8> 
   83 #define SWORD_MAX   <2^(ARCHITECTURE_WORD_BITS - 1) - 1> 
   87 #define SWORD_MIN   <-2^(ARCHITECTURE_WORD_BITS - 1)> 
   91 #define UWORD_MAX   <2^ARCHITECTURE_WORD_BITS - 1> 
   94 #elif (ARCHITECTURE_WORD_BITS == 8) 
   95 #define ARCHITECTURE_WORD_BYTES     (1U) 
   98 #define SWORD_MAX   (INT8_MAX) 
   99 #define SWORD_MIN   (INT8_MIN) 
  100 #define UWORD_MAX   (UINT8_MAX) 
  101 #elif (ARCHITECTURE_WORD_BITS == 16) 
  102 #define ARCHITECTURE_WORD_BYTES     (2U) 
  105 #define SWORD_MAX   (INT16_MAX) 
  106 #define SWORD_MIN   (INT16_MIN) 
  107 #define UWORD_MAX   (UINT16_MAX) 
  108 #elif (ARCHITECTURE_WORD_BITS == 32) 
  109 #define ARCHITECTURE_WORD_BYTES     (4U) 
  112 #define SWORD_MAX   (INT32_MAX) 
  113 #define SWORD_MIN   (INT32_MIN) 
  114 #define UWORD_MAX   (UINT32_MAX) 
  115 #elif (ARCHITECTURE_WORD_BITS == 64) 
  116 #define ARCHITECTURE_WORD_BYTES     (8U) 
  119 #define SWORD_MAX   (INT64_MAX) 
  120 #define SWORD_MIN   (INT64_MIN) 
  121 #define UWORD_MAX   (UINT64_MAX) 
  123 #error  "Unsupported word size (check ARCHITECTURE_WORD_BITS in architecture_arch.h)" 
  129 #define UWORD_MIN   (0U) 
  131 #if !defined(ARCHITECTURE_LARGE_TXT_PTR) || DOXYGEN 
  140 #define PRIxTXTPTR PRIxPTR 
  147 #define PRI_SIZE_T_MODIFIER  
  148 #elif (UINT_MAX == SIZE_MAX) 
  149 #define PRI_SIZE_T_MODIFIER "" 
  150 #elif (ULONG_MAX == SIZE_MAX) 
  151 #define PRI_SIZE_T_MODIFIER "l" 
  153 #error Unsupported size_t length 
  160 #define PRIdSIZE PRI_SIZE_T_MODIFIER "d" 
  168 #define PRIiSIZE PRI_SIZE_T_MODIFIER "i" 
  173 #define PRIoSIZE PRI_SIZE_T_MODIFIER "o" 
  178 #define PRIuSIZE PRI_SIZE_T_MODIFIER "u" 
  186 #define PRIxSIZE PRI_SIZE_T_MODIFIER "x" 
  194 #define PRIXSIZE PRI_SIZE_T_MODIFIER "X" 
  205 #define WORD_ALIGNED __attribute__((aligned(ARCHITECTURE_WORD_BYTES))) 
  217 #define HAS_ALIGNMENT_OF(addr, alignment) (((uintptr_t)(addr) & ((alignment) - 1)) == 0) 
  225 #define IS_WORD_ALIGNED(addr) HAS_ALIGNMENT_OF(addr, ARCHITECTURE_WORD_BYTES) 
uint< NUM > _t uword_t
Word sized unsigned integer.
 
int< NUM > _t sword_t
Word sized signed integer.
 
uintptr_t uinttxtptr_t
Pointer type to point anywhere in the .text section.
 
Adds include for missing inttype definitions.