summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/stdint.h
blob: 627403f98097ddccaf9d0dc6cd0d6729ffac3726 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef OSMO_STDINT_H
#define OSMO_STDINT_H

/* some older toolchains (like gnuarm-3.x) don't provide a C99
   compliant stdint.h yet, so we define our own here */

/* to make matters worse newer gcc with glibc headers have
   a incompatible definition of these types. We will use the
   gcc'ism of #include_next to include the compiler's libc
   header file and then check if it has defined int8_t and
   if not we will use our own typedefs */

/* another bad criteria. We can not detect __NEWLIB_H__ or
   _NEWLIB_VERSION. Assume that older GCCs have a older C library
   that did not include a stdint.h yet. This is for gnuarm-3.x
   one of the compilers producing working code right now. */

#if __GNUC__ > 3
#include_next <stdint.h>
#endif

#ifndef __int8_t_defined
typedef signed char int8_t;
typedef unsigned char uint8_t;

typedef signed short int16_t;
typedef unsigned short uint16_t;

typedef signed int int32_t;
typedef unsigned int uint32_t;

typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#endif

#endif