All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
c11_atomics_compat_cpu.hpp
1 
6 #pragma once
7 
8 #define ATOMIC_BOOL_SIZE (1U)
9 #define ATOMIC_BOOL_SAME_SIZED_TYPE uint8_t
10 #define ATOMIC_CHAR_SIZE (1U)
11 #define ATOMIC_CHAR_SAME_SIZED_TYPE uint8_t
12 #define ATOMIC_SCHAR_SIZE (1U)
13 #define ATOMIC_SCHAR_SAME_SIZED_TYPE uint8_t
14 #define ATOMIC_UCHAR_SIZE (1U)
15 #define ATOMIC_UCHAR_SAME_SIZED_TYPE uint8_t
16 #define ATOMIC_SHORT_SIZE (2U)
17 #define ATOMIC_SHORT_SAME_SIZED_TYPE uint16_t
18 #define ATOMIC_USHORT_SIZE (2U)
19 #define ATOMIC_USHORT_SAME_SIZED_TYPE uint16_t
20 #define ATOMIC_INT_SIZE (4U)
21 #define ATOMIC_INT_SAME_SIZED_TYPE uint32_t
22 #define ATOMIC_UINT_SIZE (4U)
23 #define ATOMIC_UINT_SAME_SIZED_TYPE uint32_t
24 #ifdef __x86_64__
25 #define ATOMIC_LONG_SIZE (8U)
26 #define ATOMIC_LONG_SAME_SIZED_TYPE uint64_t
27 #define ATOMIC_ULONG_SIZE (8U)
28 #define ATOMIC_ULONG_SAME_SIZED_TYPE uint64_t
29 #else
30 #define ATOMIC_LONG_SIZE (4U)
31 #define ATOMIC_LONG_SAME_SIZED_TYPE uint32_t
32 #define ATOMIC_ULONG_SIZE (4U)
33 #define ATOMIC_ULONG_SAME_SIZED_TYPE uint32_t
34 #endif
35 #define ATOMIC_LLONG_SIZE (8U)
36 #define ATOMIC_LLONG_SAME_SIZED_TYPE uint64_t
37 #define ATOMIC_ULLONG_SIZE (8U)
38 #define ATOMIC_ULLONG_SAME_SIZED_TYPE uint64_t
39 #define ATOMIC_INT_LEAST8_T_SIZE (1U)
40 #define ATOMIC_INT_LEAST8_T_SAME_SIZED_TYPE uint8_t
41 #define ATOMIC_UINT_LEAST8_T_SIZE (1U)
42 #define ATOMIC_UINT_LEAST8_T_SAME_SIZED_TYPE uint8_t
43 #define ATOMIC_INT_LEAST16_T_SIZE (2U)
44 #define ATOMIC_INT_LEAST16_T_SAME_SIZED_TYPE uint16_t
45 #define ATOMIC_UINT_LEAST16_T_SIZE (2U)
46 #define ATOMIC_UINT_LEAST16_T_SAME_SIZED_TYPE uint16_t
47 #define ATOMIC_INT_LEAST32_T_SIZE (4U)
48 #define ATOMIC_INT_LEAST32_T_SAME_SIZED_TYPE uint32_t
49 #define ATOMIC_UINT_LEAST32_T_SIZE (4U)
50 #define ATOMIC_UINT_LEAST32_T_SAME_SIZED_TYPE uint32_t
51 #define ATOMIC_INT_LEAST64_T_SIZE (8U)
52 #define ATOMIC_INT_LEAST64_T_SAME_SIZED_TYPE uint64_t
53 #define ATOMIC_UINT_LEAST64_T_SIZE (8U)
54 #define ATOMIC_UINT_LEAST64_T_SAME_SIZED_TYPE uint64_t
55 #ifdef __FreeBSD__
56 #define ATOMIC_INT_FAST8_T_SIZE (4U)
57 #define ATOMIC_INT_FAST8_T_SAME_SIZED_TYPE uint32_t
58 #define ATOMIC_UINT_FAST8_T_SIZE (4U)
59 #define ATOMIC_UINT_FAST8_T_SAME_SIZED_TYPE uint32_t
60 #else
61 #define ATOMIC_INT_FAST8_T_SIZE (1U)
62 #define ATOMIC_INT_FAST8_T_SAME_SIZED_TYPE uint8_t
63 #define ATOMIC_UINT_FAST8_T_SIZE (1U)
64 #define ATOMIC_UINT_FAST8_T_SAME_SIZED_TYPE uint8_t
65 #endif
66 #if defined(__x86_64__) && defined(__GLIBC__)
67 # define ATOMIC_INT_FAST16_T_SIZE (8U)
68 # define ATOMIC_INT_FAST16_T_SAME_SIZED_TYPE uint64_t
69 # define ATOMIC_UINT_FAST16_T_SIZE (8U)
70 # define ATOMIC_UINT_FAST16_T_SAME_SIZED_TYPE uint64_t
71 # define ATOMIC_INT_FAST32_T_SIZE (8U)
72 # define ATOMIC_INT_FAST32_T_SAME_SIZED_TYPE uint64_t
73 # define ATOMIC_UINT_FAST32_T_SIZE (8U)
74 # define ATOMIC_UINT_FAST32_T_SAME_SIZED_TYPE uint64_t
75 #else
76 # define ATOMIC_INT_FAST16_T_SIZE (4U)
77 # define ATOMIC_INT_FAST16_T_SAME_SIZED_TYPE uint32_t
78 # define ATOMIC_UINT_FAST16_T_SIZE (4U)
79 # define ATOMIC_UINT_FAST16_T_SAME_SIZED_TYPE uint32_t
80 # define ATOMIC_INT_FAST32_T_SIZE (4U)
81 # define ATOMIC_INT_FAST32_T_SAME_SIZED_TYPE uint32_t
82 # define ATOMIC_UINT_FAST32_T_SIZE (4U)
83 # define ATOMIC_UINT_FAST32_T_SAME_SIZED_TYPE uint32_t
84 #endif
85 #define ATOMIC_INT_FAST64_T_SIZE (8U)
86 #define ATOMIC_INT_FAST64_T_SAME_SIZED_TYPE uint64_t
87 #define ATOMIC_UINT_FAST64_T_SIZE (8U)
88 #define ATOMIC_UINT_FAST64_T_SAME_SIZED_TYPE uint64_t
89 #ifdef __x86_64__
90 #define ATOMIC_INTPTR_T_SIZE (8U)
91 #define ATOMIC_INTPTR_T_SAME_SIZED_TYPE uint64_t
92 #define ATOMIC_UINTPTR_T_SIZE (8U)
93 #define ATOMIC_UINTPTR_T_SAME_SIZED_TYPE uint64_t
94 #define ATOMIC_SIZE_T_SIZE (8U)
95 #define ATOMIC_SIZE_T_SAME_SIZED_TYPE uint64_t
96 #else
97 #define ATOMIC_INTPTR_T_SIZE (4U)
98 #define ATOMIC_INTPTR_T_SAME_SIZED_TYPE uint32_t
99 #define ATOMIC_UINTPTR_T_SIZE (4U)
100 #define ATOMIC_UINTPTR_T_SAME_SIZED_TYPE uint32_t
101 #define ATOMIC_SIZE_T_SIZE (4U)
102 #define ATOMIC_SIZE_T_SAME_SIZED_TYPE uint32_t
103 #endif
104 #define ATOMIC_PTRDIFF_T_SIZE (8U)
105 #define ATOMIC_PTRDIFF_T_SAME_SIZED_TYPE uint64_t
106 #define ATOMIC_INTMAX_T_SIZE (8U)
107 #define ATOMIC_INTMAX_T_SAME_SIZED_TYPE uint64_t
108 #define ATOMIC_UINTMAX_T_SIZE (8U)
109 #define ATOMIC_UINTMAX_T_SAME_SIZED_TYPE uint64_t