X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Ftypes.h;h=3e56a360f08da48b56296c0d6ee853b79de09aa6;hb=a61181f8614fe8257dc21bf1762a380165932348;hp=daeec2ea7b332a198ab55168e6984bc565686feb;hpb=83fc7933f968173822ed3f636d75860d4a747e76;p=bertos.git diff --git a/bertos/cpu/types.h b/bertos/cpu/types.h index daeec2ea..3e56a360 100644 --- a/bertos/cpu/types.h +++ b/bertos/cpu/types.h @@ -77,14 +77,22 @@ #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #endif -#elif CPU_ARM +#elif CPU_ARM || CPU_CM3 typedef uint32_t cpu_flags_t; typedef uint32_t cpu_atomic_t; typedef uint32_t cpu_stack_t; - typedef uint64_t cpu_aligned_stack_t; #define SIZEOF_CPUSTACK_T 4 - #define SIZEOF_CPUALIGNED_T 8 + + #if CPU_ARM + typedef uint64_t cpu_aligned_stack_t; + #define SIZEOF_CPUALIGNED_T 8 + #elif CPU_CM3 + typedef uint32_t cpu_aligned_stack_t; + #define SIZEOF_CPUALIGNED_T 4 + #else + #error CPU configuration error + #endif #elif CPU_PPC @@ -174,6 +182,16 @@ #endif #endif +#ifndef SIZEOF_SIZE_T +#if CPU_REG_BITS < 32 + #define SIZEOF_SIZE_T 2 +#elif CPU_REG_BITS == 32 + #define SIZEOF_SIZE_T 4 +#else /* CPU_REG_BITS > 32 */ + #define SIZEOF_SIZE_T 8 +#endif +#endif + #ifndef CPU_BITS_PER_CHAR #define CPU_BITS_PER_CHAR (SIZEOF_CHAR * 8) #endif @@ -197,6 +215,11 @@ /*\}*/ +#ifndef INT_MAX + #define INT_MAX ((int)((unsigned int)~0 >> 1)) + #define INT_MIN (-INT_MAX - 1) +#endif + /* Sanity checks for the above definitions */ STATIC_ASSERT(sizeof(char) == SIZEOF_CHAR); STATIC_ASSERT(sizeof(short) == SIZEOF_SHORT); @@ -215,6 +238,6 @@ STATIC_ASSERT(sizeof(uint64_t) * CPU_BITS_PER_CHAR == 64); #endif STATIC_ASSERT(sizeof(cpu_stack_t) == SIZEOF_CPUSTACK_T); STATIC_ASSERT(sizeof(cpu_aligned_stack_t) == SIZEOF_CPUALIGNED_T); - +STATIC_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T); #endif /* CPU_TYPES_H */