X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Ftypes.h;h=bb4aa79f2092982c9b414c865413462d7b5bea9f;hb=32d1445272120a254d77ce8d1af1f527da7a2c17;hp=1b2b23f4c7538fb4ddafd7ec25277a81fc6ec35b;hpb=4cc44c9888a0336b9d01121ec0b7ad95f4a76195;p=bertos.git diff --git a/bertos/cpu/types.h b/bertos/cpu/types.h index 1b2b23f4..bb4aa79f 100644 --- a/bertos/cpu/types.h +++ b/bertos/cpu/types.h @@ -47,51 +47,77 @@ #if CPU_I196 - typedef uint16_t cpuflags_t; // FIXME - typedef unsigned int cpustack_t; + typedef uint16_t cpu_flags_t; // FIXME + typedef unsigned int cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; + typedef unsigned int cpu_atomic_t; #warning Verify following constant #define SIZEOF_CPUSTACK_T 2 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #elif CPU_X86 - /* Get IRQ_* definitions from the hosting environment. */ + /* Get cpu_flags_t definition from the hosting environment. */ #include #if OS_EMBEDDED - typedef uint32_t cpuflags_t; // FIXME + typedef uint32_t cpu_flags_t; // FIXME #endif /* OS_EMBEDDED */ + typedef uint32_t cpu_atomic_t; + #if CPU_X86_64 - typedef uint64_t cpustack_t; + typedef uint64_t cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; #define SIZEOF_CPUSTACK_T 8 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #else - typedef uint32_t cpustack_t; + typedef uint32_t cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; #define SIZEOF_CPUSTACK_T 4 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #endif #elif CPU_ARM - typedef uint32_t cpuflags_t; - typedef uint32_t cpustack_t; + 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 #elif CPU_PPC - typedef uint32_t cpuflags_t; // FIXME - typedef uint32_t cpustack_t; // FIXME + /* Get cpu_flags_t definition from the hosting environment. */ + #include + #if OS_EMBEDDED + typedef uint32_t cpu_flags_t; + #endif + + typedef uint32_t cpu_atomic_t; + typedef uint32_t cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; #define SIZEOF_CPUSTACK_T 4 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #elif CPU_DSP56K - typedef uint16_t cpuflags_t; - typedef unsigned int cpustack_t; + typedef uint16_t cpu_flags_t; + typedef uint16_t cpu_atomic_t; + typedef unsigned int cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; #warning Verify following costant #define SIZEOF_CPUSTACK_T 2 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #elif CPU_AVR - typedef uint8_t cpuflags_t; - typedef uint8_t cpustack_t; + typedef uint8_t cpu_flags_t; + typedef uint8_t cpu_atomic_t; + typedef uint8_t cpu_stack_t; + typedef cpu_stack_t cpu_aligned_stack_t; #define SIZEOF_CPUSTACK_T 1 + #define SIZEOF_CPUALIGNED_T SIZEOF_CPUSTACK_T #else #error No CPU_... defined. @@ -148,6 +174,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 @@ -171,6 +207,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); @@ -187,7 +228,8 @@ STATIC_ASSERT(sizeof(uint32_t) * CPU_BITS_PER_CHAR == 32); STATIC_ASSERT(sizeof(int64_t) * CPU_BITS_PER_CHAR == 64); STATIC_ASSERT(sizeof(uint64_t) * CPU_BITS_PER_CHAR == 64); #endif -STATIC_ASSERT(sizeof(cpustack_t) == SIZEOF_CPUSTACK_T); - +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 */