Loading...
Searching...
No Matches
c11_atomics_compat.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Otto-von-Guericke-Universität Magdeburg
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
27#pragma once
28
29#include "c11_atomics_compat_cpu.hpp"
30
39#ifndef ATOMIC_VAR_INIT
40#define ATOMIC_VAR_INIT(x) { x }
41#endif
42
46typedef struct {
52 ATOMIC_BOOL_SAME_SIZED_TYPE do_not_access_from_cpp;
54
58typedef struct {
64 ATOMIC_CHAR_SAME_SIZED_TYPE do_not_access_from_cpp;
66
70typedef struct {
76 ATOMIC_SCHAR_SAME_SIZED_TYPE do_not_access_from_cpp;
78
82typedef struct {
88 ATOMIC_UCHAR_SAME_SIZED_TYPE do_not_access_from_cpp;
90
94typedef struct {
100 ATOMIC_SHORT_SAME_SIZED_TYPE do_not_access_from_cpp;
102
106typedef struct {
112 ATOMIC_USHORT_SAME_SIZED_TYPE do_not_access_from_cpp;
114
118typedef struct {
124 ATOMIC_INT_SAME_SIZED_TYPE do_not_access_from_cpp;
125} atomic_int;
126
130typedef struct {
136 ATOMIC_UINT_SAME_SIZED_TYPE do_not_access_from_cpp;
138
142typedef struct {
148 ATOMIC_LONG_SAME_SIZED_TYPE do_not_access_from_cpp;
150
154typedef struct {
160 ATOMIC_ULONG_SAME_SIZED_TYPE do_not_access_from_cpp;
162
166typedef struct {
172 ATOMIC_LLONG_SAME_SIZED_TYPE do_not_access_from_cpp;
174
178typedef struct {
184 ATOMIC_ULLONG_SAME_SIZED_TYPE do_not_access_from_cpp;
186
190typedef struct {
196 ATOMIC_INT_LEAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp;
198
202typedef struct {
208 ATOMIC_UINT_LEAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp;
210
214typedef struct {
220 ATOMIC_INT_LEAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp;
222
226typedef struct {
232 ATOMIC_UINT_LEAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp;
234
238typedef struct {
244 ATOMIC_INT_LEAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp;
246
250typedef struct {
256 ATOMIC_UINT_LEAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp;
258
262typedef struct {
268 ATOMIC_INT_LEAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp;
270
274typedef struct {
280 ATOMIC_UINT_LEAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp;
282
286typedef struct {
292 ATOMIC_INT_FAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp;
294
298typedef struct {
304 ATOMIC_UINT_FAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp;
306
310typedef struct {
316 ATOMIC_INT_FAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp;
318
322typedef struct {
328 ATOMIC_UINT_FAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp;
330
334typedef struct {
340 ATOMIC_INT_FAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp;
342
346typedef struct {
352 ATOMIC_UINT_FAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp;
354
358typedef struct {
364 ATOMIC_INT_FAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp;
366
370typedef struct {
376 ATOMIC_UINT_FAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp;
378
382typedef struct {
388 ATOMIC_INTPTR_T_SAME_SIZED_TYPE do_not_access_from_cpp;
390
394typedef struct {
400 ATOMIC_UINTPTR_T_SAME_SIZED_TYPE do_not_access_from_cpp;
402
406typedef struct {
412 ATOMIC_SIZE_T_SAME_SIZED_TYPE do_not_access_from_cpp;
414
418typedef struct {
424 ATOMIC_INTMAX_T_SAME_SIZED_TYPE do_not_access_from_cpp;
426
430typedef struct {
436 ATOMIC_UINTMAX_T_SAME_SIZED_TYPE do_not_access_from_cpp;
438
Type with the same alignment and size as atomic_bool
ATOMIC_BOOL_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_char
ATOMIC_CHAR_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_fast16_t
ATOMIC_INT_FAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_fast32_t
ATOMIC_INT_FAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_fast64_t
ATOMIC_INT_FAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_fast8_t
ATOMIC_INT_FAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_least16_t
ATOMIC_INT_LEAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_least32_t
ATOMIC_INT_LEAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_least64_t
ATOMIC_INT_LEAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int_least8_t
ATOMIC_INT_LEAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_int
ATOMIC_INT_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_intmax_t
ATOMIC_INTMAX_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_intptr_t
ATOMIC_INTPTR_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_llong
ATOMIC_LLONG_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_long
ATOMIC_LONG_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_schar
ATOMIC_SCHAR_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_short
ATOMIC_SHORT_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_size_t
ATOMIC_SIZE_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uchar
ATOMIC_UCHAR_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_fast16_t
ATOMIC_UINT_FAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_fast32_t
ATOMIC_UINT_FAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_fast64_t
ATOMIC_UINT_FAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_fast8_t
ATOMIC_UINT_FAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_least16_t
ATOMIC_UINT_LEAST16_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_least32_t
ATOMIC_UINT_LEAST32_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_least64_t
ATOMIC_UINT_LEAST64_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint_least8_t
ATOMIC_UINT_LEAST8_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uint
ATOMIC_UINT_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uintmax_t
ATOMIC_UINTMAX_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_uintptr_t
ATOMIC_UINTPTR_T_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_ullong
ATOMIC_ULLONG_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_ulong
ATOMIC_ULONG_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.
Type with the same alignment and size as atomic_ushort
ATOMIC_USHORT_SAME_SIZED_TYPE do_not_access_from_cpp
Opaque content placeholder.