Modular C
+ Collaboration diagram for C◼atomic:

Modules

 C◼atomic snippet: identifiers inserted directly to an importer
 If C◼atomic is imported explictly by a import directive, its snippet code is injected into the importer.
 
 C◼atomic◼flag
 
 C◼atomic◼rwlock
 
 Platform features used by module C◼atomic
 Some features are recovered or pre-computed specifically for the target platform by looking into the C include files:
 
 Specific macros to deal with the structure of module C◼atomic.
 

Macros

#define C◼atomic◼INIT(...)   __VA_ARGS__
 
#define C◼atomic◼CAS8   1
 
#define C◼atomic◼CAS16   1
 
#define C◼atomic◼CAS32   1
 
#define C◼atomic◼CAS64   1
 
#define C◼atomic◼CAS128   1
 
#define C◼atomic◼JOIN2(_0, _1, _2, _3, _4, _5)   _0##_1##_2##_3##_4##_5##E
 
#define C◼atomic◼JOIN1(...)   C◼atomic◼JOIN2(__VA_ARGS__)
 
#define C◼atomic◼JOIN(_0, _1, _2, _3, _4, _5)   C◼atomic◼JOIN1(_0, _1, _2, _3, _4, _5)
 
#define C◼atomic◼atomic_store   C◼atomic◼store
 
#define C◼atomic◼atomic_store_explicit   C◼atomic◼store_explicit
 
#define C◼atomic◼atomic_load   C◼atomic◼load
 
#define C◼atomic◼atomic_load_explicit   C◼atomic◼load_explicit
 
#define C◼atomic◼atomic_exchange   C◼atomic◼exchange
 
#define C◼atomic◼atomic_exchange_explicit   C◼atomic◼exchange_explicit
 
#define C◼atomic◼atomic_compare_exchange_strong   C◼atomic◼compare_exchange_strong
 
#define C◼atomic◼atomic_compare_exchange_strong_explicit   C◼atomic◼compare_exchange_strong_explicit
 
#define C◼atomic◼atomic_compare_exchange_weak   C◼atomic◼compare_exchange_weak
 
#define C◼atomic◼atomic_compare_exchange_weak_explicit   C◼atomic◼compare_exchange_weak_explicit
 
#define C◼atomic◼atomic_fetch_add   C◼atomic◼fetch_add
 
#define C◼atomic◼atomic_fetch_add_explicit   C◼atomic◼fetch_add_explicit
 
#define C◼atomic◼atomic_fetch_sub   C◼atomic◼fetch_sub
 
#define C◼atomic◼atomic_fetch_sub_explicit   C◼atomic◼fetch_sub_explicit
 
#define C◼atomic◼atomic_fetch_or   C◼atomic◼fetch_or
 
#define C◼atomic◼atomic_fetch_or_explicit   C◼atomic◼fetch_or_explicit
 
#define C◼atomic◼atomic_fetch_and   C◼atomic◼fetch_and
 
#define C◼atomic◼atomic_fetch_and_explicit   C◼atomic◼fetch_and_explicit
 
#define C◼atomic◼atomic_fetch_xor   C◼atomic◼fetch_xor
 
#define C◼atomic◼atomic_fetch_xor_explicit   C◼atomic◼fetch_xor_explicit
 

Typedefs

typedef C◼bool _Atomic C◼atomic◼bool
 
typedef C◼char _Atomic C◼atomic◼char
 
typedef C◼schar _Atomic C◼atomic◼schar
 
typedef C◼uchar _Atomic C◼atomic◼uchar
 
typedef C◼short _Atomic C◼atomic◼short
 
typedef C◼ushort _Atomic C◼atomic◼ushort
 
typedef C◼int _Atomic C◼atomic◼int
 
typedef C◼unsigned _Atomic C◼atomic◼unsigned
 
typedef C◼long _Atomic C◼atomic◼long
 
typedef C◼ulong _Atomic C◼atomic◼ulong
 
typedef C◼llong _Atomic C◼atomic◼llong
 
typedef C◼ullong _Atomic C◼atomic◼ullong
 
typedef C◼wchar _Atomic C◼atomic◼wchar
 
typedef C◼intptr _Atomic C◼atomic◼intptr
 
typedef C◼uintptr _Atomic C◼atomic◼uintptr
 
typedef C◼ptrdiff _Atomic C◼atomic◼ptrdiff
 
typedef C◼size _Atomic C◼atomic◼size
 
typedef C◼intmax _Atomic C◼atomic◼intmax
 
typedef C◼uintmax _Atomic C◼atomic◼uintmax
 
typedef C◼integer◼uleast16 _Atomic C◼atomic◼char16
 
typedef C◼integer◼uleast8 _Atomic C◼atomic◼char8
 
typedef C◼integer◼ileast8 _Atomic C◼atomic◼ileast8
 
typedef C◼integer◼uleast8 _Atomic C◼atomic◼uleast8
 
typedef C◼integer◼ifast8 _Atomic C◼atomic◼ifast8
 
typedef C◼integer◼ufast8 _Atomic C◼atomic◼ufast8
 
typedef C◼integer◼ileast16 _Atomic C◼atomic◼ileast16
 
typedef C◼integer◼uleast16 _Atomic C◼atomic◼uleast16
 
typedef C◼integer◼ifast16 _Atomic C◼atomic◼ifast16
 
typedef C◼integer◼ufast16 _Atomic C◼atomic◼ufast16
 
typedef C◼integer◼uleast32 _Atomic C◼atomic◼char32
 
typedef C◼integer◼ileast32 _Atomic C◼atomic◼ileast32
 
typedef C◼integer◼uleast32 _Atomic C◼atomic◼uleast32
 
typedef C◼integer◼ifast32 _Atomic C◼atomic◼ifast32
 
typedef C◼integer◼ufast32 _Atomic C◼atomic◼ufast32
 
typedef C◼integer◼uleast64 _Atomic C◼atomic◼char64
 
typedef C◼integer◼ileast64 _Atomic C◼atomic◼ileast64
 
typedef C◼integer◼uleast64 _Atomic C◼atomic◼uleast64
 
typedef C◼integer◼ifast64 _Atomic C◼atomic◼ifast64
 
typedef C◼integer◼ufast64 _Atomic C◼atomic◼ufast64
 

Enumerations

enum  C◼atomic◼memory_order {
  C◼atomic◼relaxed = C◼atomic◼memory_order_relaxed, C◼atomic◼consume = C◼atomic◼memory_order_consume, C◼atomic◼acquire = C◼atomic◼memory_order_acquire, C◼atomic◼release = C◼atomic◼memory_order_release,
  C◼atomic◼acq_rel = C◼atomic◼memory_order_acq_rel, C◼atomic◼seq_cst = C◼atomic◼memory_order_seq_cst
}
 

Functions

void() C◼atomic◼thread_fence (C◼atomic◼memory_order)
 
void() C◼atomic◼signal_fence (C◼atomic◼memory_order)
 
void C◼atomic◼calibrate (C◼io *)
 
void C◼atomic◼summarize (C◼io *)
 
static void calibrate_ (C◼io *out)
 
static void summarize_ (C◼io *out)
 

Variables

static void * fool [] = { &fool, (void*)calibrate_, (void*)summarize_, }
 

Detailed Description

Macro Definition Documentation

§ C◼atomic◼atomic_compare_exchange_strong

#define C◼atomic◼atomic_compare_exchange_strong   C◼atomic◼compare_exchange_strong

Definition at line 509 of file C-atomic.c.

§ C◼atomic◼atomic_compare_exchange_strong_explicit

#define C◼atomic◼atomic_compare_exchange_strong_explicit   C◼atomic◼compare_exchange_strong_explicit

Definition at line 510 of file C-atomic.c.

§ C◼atomic◼atomic_compare_exchange_weak

#define C◼atomic◼atomic_compare_exchange_weak   C◼atomic◼compare_exchange_weak

Definition at line 513 of file C-atomic.c.

§ C◼atomic◼atomic_compare_exchange_weak_explicit

#define C◼atomic◼atomic_compare_exchange_weak_explicit   C◼atomic◼compare_exchange_weak_explicit

Definition at line 514 of file C-atomic.c.

§ C◼atomic◼atomic_exchange

#define C◼atomic◼atomic_exchange   C◼atomic◼exchange

Definition at line 505 of file C-atomic.c.

§ C◼atomic◼atomic_exchange_explicit

#define C◼atomic◼atomic_exchange_explicit   C◼atomic◼exchange_explicit

Definition at line 506 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_add

#define C◼atomic◼atomic_fetch_add   C◼atomic◼fetch_add

Definition at line 517 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_add_explicit

#define C◼atomic◼atomic_fetch_add_explicit   C◼atomic◼fetch_add_explicit

Definition at line 518 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_and

#define C◼atomic◼atomic_fetch_and   C◼atomic◼fetch_and

Definition at line 529 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_and_explicit

#define C◼atomic◼atomic_fetch_and_explicit   C◼atomic◼fetch_and_explicit

Definition at line 530 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_or

#define C◼atomic◼atomic_fetch_or   C◼atomic◼fetch_or

Definition at line 525 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_or_explicit

#define C◼atomic◼atomic_fetch_or_explicit   C◼atomic◼fetch_or_explicit

Definition at line 526 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_sub

#define C◼atomic◼atomic_fetch_sub   C◼atomic◼fetch_sub

Definition at line 521 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_sub_explicit

#define C◼atomic◼atomic_fetch_sub_explicit   C◼atomic◼fetch_sub_explicit

Definition at line 522 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_xor

#define C◼atomic◼atomic_fetch_xor   C◼atomic◼fetch_xor

Definition at line 533 of file C-atomic.c.

§ C◼atomic◼atomic_fetch_xor_explicit

#define C◼atomic◼atomic_fetch_xor_explicit   C◼atomic◼fetch_xor_explicit

Definition at line 534 of file C-atomic.c.

§ C◼atomic◼atomic_load

#define C◼atomic◼atomic_load   C◼atomic◼load

Definition at line 501 of file C-atomic.c.

§ C◼atomic◼atomic_load_explicit

#define C◼atomic◼atomic_load_explicit   C◼atomic◼load_explicit

Definition at line 502 of file C-atomic.c.

§ C◼atomic◼atomic_store

#define C◼atomic◼atomic_store   C◼atomic◼store

Definition at line 497 of file C-atomic.c.

§ C◼atomic◼atomic_store_explicit

#define C◼atomic◼atomic_store_explicit   C◼atomic◼store_explicit

Definition at line 498 of file C-atomic.c.

§ C◼atomic◼CAS128

#define C◼atomic◼CAS128   1

Definition at line 348 of file C-atomic.c.

§ C◼atomic◼CAS16

#define C◼atomic◼CAS16   1

Definition at line 339 of file C-atomic.c.

§ C◼atomic◼CAS32

#define C◼atomic◼CAS32   1

Definition at line 342 of file C-atomic.c.

§ C◼atomic◼CAS64

#define C◼atomic◼CAS64   1

Definition at line 345 of file C-atomic.c.

§ C◼atomic◼CAS8

#define C◼atomic◼CAS8   1

Definition at line 336 of file C-atomic.c.

§ C◼atomic◼INIT

#define C◼atomic◼INIT (   ...)    __VA_ARGS__

Definition at line 332 of file C-atomic.c.

§ C◼atomic◼JOIN

#define C◼atomic◼JOIN (   _0,
  _1,
  _2,
  _3,
  _4,
  _5 
)    C◼atomic◼JOIN1(_0, _1, _2, _3, _4, _5)

Definition at line 368 of file C-atomic.c.

§ C◼atomic◼JOIN1

#define C◼atomic◼JOIN1 (   ...)    C◼atomic◼JOIN2(__VA_ARGS__)

Definition at line 367 of file C-atomic.c.

§ C◼atomic◼JOIN2

#define C◼atomic◼JOIN2 (   _0,
  _1,
  _2,
  _3,
  _4,
  _5 
)    _0##_1##_2##_3##_4##_5##E

Definition at line 366 of file C-atomic.c.

Typedef Documentation

§ C◼atomic◼bool

typedef C◼bool _Atomic C◼atomic◼bool

Definition at line 375 of file C-atomic.c.

§ C◼atomic◼char

typedef C◼char _Atomic C◼atomic◼char

Definition at line 378 of file C-atomic.c.

§ C◼atomic◼char16

Definition at line 433 of file C-atomic.c.

§ C◼atomic◼char32

Definition at line 455 of file C-atomic.c.

§ C◼atomic◼char64

Definition at line 464 of file C-atomic.c.

§ C◼atomic◼char8

Definition at line 437 of file C-atomic.c.

§ C◼atomic◼ifast16

Definition at line 449 of file C-atomic.c.

§ C◼atomic◼ifast32

Definition at line 458 of file C-atomic.c.

§ C◼atomic◼ifast64

Definition at line 467 of file C-atomic.c.

§ C◼atomic◼ifast8

Definition at line 440 of file C-atomic.c.

§ C◼atomic◼ileast16

Definition at line 447 of file C-atomic.c.

§ C◼atomic◼ileast32

Definition at line 456 of file C-atomic.c.

§ C◼atomic◼ileast64

Definition at line 465 of file C-atomic.c.

§ C◼atomic◼ileast8

Definition at line 438 of file C-atomic.c.

§ C◼atomic◼int

typedef C◼int _Atomic C◼atomic◼int

Definition at line 393 of file C-atomic.c.

§ C◼atomic◼intmax

Definition at line 426 of file C-atomic.c.

§ C◼atomic◼intptr

Definition at line 414 of file C-atomic.c.

§ C◼atomic◼llong

typedef C◼llong _Atomic C◼atomic◼llong

Definition at line 405 of file C-atomic.c.

§ C◼atomic◼long

typedef C◼long _Atomic C◼atomic◼long

Definition at line 399 of file C-atomic.c.

§ C◼atomic◼ptrdiff

Definition at line 420 of file C-atomic.c.

§ C◼atomic◼schar

typedef C◼schar _Atomic C◼atomic◼schar

Definition at line 381 of file C-atomic.c.

§ C◼atomic◼short

typedef C◼short _Atomic C◼atomic◼short

Definition at line 387 of file C-atomic.c.

§ C◼atomic◼size

typedef C◼size _Atomic C◼atomic◼size

Definition at line 423 of file C-atomic.c.

§ C◼atomic◼uchar

typedef C◼uchar _Atomic C◼atomic◼uchar

Definition at line 384 of file C-atomic.c.

§ C◼atomic◼ufast16

Definition at line 450 of file C-atomic.c.

§ C◼atomic◼ufast32

Definition at line 459 of file C-atomic.c.

§ C◼atomic◼ufast64

Definition at line 468 of file C-atomic.c.

§ C◼atomic◼ufast8

Definition at line 441 of file C-atomic.c.

§ C◼atomic◼uintmax

Definition at line 429 of file C-atomic.c.

§ C◼atomic◼uintptr

Definition at line 417 of file C-atomic.c.

§ C◼atomic◼uleast16

Definition at line 448 of file C-atomic.c.

§ C◼atomic◼uleast32

Definition at line 457 of file C-atomic.c.

§ C◼atomic◼uleast64

Definition at line 466 of file C-atomic.c.

§ C◼atomic◼uleast8

Definition at line 439 of file C-atomic.c.

§ C◼atomic◼ullong

Definition at line 408 of file C-atomic.c.

§ C◼atomic◼ulong

typedef C◼ulong _Atomic C◼atomic◼ulong

Definition at line 402 of file C-atomic.c.

§ C◼atomic◼unsigned

Definition at line 396 of file C-atomic.c.

§ C◼atomic◼ushort

Definition at line 390 of file C-atomic.c.

§ C◼atomic◼wchar

typedef C◼wchar _Atomic C◼atomic◼wchar

Definition at line 411 of file C-atomic.c.

Enumeration Type Documentation

§ C◼atomic◼memory_order

Enumerator
C◼atomic◼relaxed 
C◼atomic◼consume 
C◼atomic◼acquire 
C◼atomic◼release 
C◼atomic◼acq_rel 
C◼atomic◼seq_cst 

Definition at line 475 of file C-atomic.c.

475  {
476 #line 111 "/home/gustedt/build/cmod/C/C-atomic.X"
477 //VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
478 #line 113 "/home/gustedt/build/cmod/C/C-atomic.X"
480 #line 113 "/home/gustedt/build/cmod/C/C-atomic.X"
482 #line 113 "/home/gustedt/build/cmod/C/C-atomic.X"
484 #line 113 "/home/gustedt/build/cmod/C/C-atomic.X"
486 #line 113 "/home/gustedt/build/cmod/C/C-atomic.X"
488 #line 113 "/home/gustedt/build/cmod/C/C-atomic.X"
490 #line 115 "/home/gustedt/build/cmod/C/C-atomic.X"
491 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
492 };
#define C◼atomic◼memory_order_acq_rel
The platform specific value memory_order_acq_rel, if ATOMIC_VAR_INIT is defined. ...
#define C◼atomic◼memory_order_relaxed
The platform specific value memory_order_relaxed, if ATOMIC_VAR_INIT is defined. ...
#define C◼atomic◼memory_order_seq_cst
The platform specific value memory_order_seq_cst, if ATOMIC_VAR_INIT is defined. ...
#define C◼atomic◼memory_order_consume
The platform specific value memory_order_consume, if ATOMIC_VAR_INIT is defined. ...
#define C◼atomic◼memory_order_acquire
The platform specific value memory_order_acquire, if ATOMIC_VAR_INIT is defined. ...
#define C◼atomic◼memory_order_release
The platform specific value memory_order_release, if ATOMIC_VAR_INIT is defined. ...

Function Documentation

§ calibrate_()

static void calibrate_ ( C◼io out)
static

Definition at line 572 of file C-atomic.c.

572  {
573 #line 154 "/home/gustedt/build/cmod/C/C-atomic.X"
574  /* empty per default */
575 }

§ C◼atomic◼calibrate()

void C◼atomic◼calibrate ( C◼io )

§ C◼atomic◼signal_fence()

void() C◼atomic◼signal_fence ( C◼atomic◼memory_order  )

§ C◼atomic◼summarize()

void C◼atomic◼summarize ( C◼io )

§ C◼atomic◼thread_fence()

void() C◼atomic◼thread_fence ( C◼atomic◼memory_order  )

§ summarize_()

static void summarize_ ( C◼io out)
static

Definition at line 580 of file C-atomic.c.

580  {
581 #line 161 "/home/gustedt/build/cmod/C/C-atomic.X"
582  /* empty per default */
583 }

Variable Documentation

§ fool

void* fool[] = { &fool, (void*)calibrate_, (void*)summarize_, }
static

Definition at line 586 of file C-atomic.c.