PAPI 7.1.0.0
Loading...
Searching...
No Matches
generic-arithm.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define AO_HAVE_char_fetch_and_add
 
#define AO_HAVE_char_and
 
#define AO_HAVE_char_or
 
#define AO_HAVE_char_xor
 
#define AO_HAVE_short_fetch_and_add
 
#define AO_HAVE_short_and
 
#define AO_HAVE_short_or
 
#define AO_HAVE_short_xor
 
#define AO_HAVE_int_fetch_and_add
 
#define AO_HAVE_int_and
 
#define AO_HAVE_int_or
 
#define AO_HAVE_int_xor
 
#define AO_HAVE_fetch_and_add
 
#define AO_HAVE_and
 
#define AO_HAVE_or
 
#define AO_HAVE_xor
 
#define AO_HAVE_char_fetch_and_add_acquire
 
#define AO_HAVE_char_and_acquire
 
#define AO_HAVE_char_or_acquire
 
#define AO_HAVE_char_xor_acquire
 
#define AO_HAVE_short_fetch_and_add_acquire
 
#define AO_HAVE_short_and_acquire
 
#define AO_HAVE_short_or_acquire
 
#define AO_HAVE_short_xor_acquire
 
#define AO_HAVE_int_fetch_and_add_acquire
 
#define AO_HAVE_int_and_acquire
 
#define AO_HAVE_int_or_acquire
 
#define AO_HAVE_int_xor_acquire
 
#define AO_HAVE_fetch_and_add_acquire
 
#define AO_HAVE_and_acquire
 
#define AO_HAVE_or_acquire
 
#define AO_HAVE_xor_acquire
 
#define AO_HAVE_char_fetch_and_add_release
 
#define AO_HAVE_char_and_release
 
#define AO_HAVE_char_or_release
 
#define AO_HAVE_char_xor_release
 
#define AO_HAVE_short_fetch_and_add_release
 
#define AO_HAVE_short_and_release
 
#define AO_HAVE_short_or_release
 
#define AO_HAVE_short_xor_release
 
#define AO_HAVE_int_fetch_and_add_release
 
#define AO_HAVE_int_and_release
 
#define AO_HAVE_int_or_release
 
#define AO_HAVE_int_xor_release
 
#define AO_HAVE_fetch_and_add_release
 
#define AO_HAVE_and_release
 
#define AO_HAVE_or_release
 
#define AO_HAVE_xor_release
 
#define AO_HAVE_char_fetch_and_add_full
 
#define AO_HAVE_char_and_full
 
#define AO_HAVE_char_or_full
 
#define AO_HAVE_char_xor_full
 
#define AO_HAVE_short_fetch_and_add_full
 
#define AO_HAVE_short_and_full
 
#define AO_HAVE_short_or_full
 
#define AO_HAVE_short_xor_full
 
#define AO_HAVE_int_fetch_and_add_full
 
#define AO_HAVE_int_and_full
 
#define AO_HAVE_int_or_full
 
#define AO_HAVE_int_xor_full
 
#define AO_HAVE_fetch_and_add_full
 
#define AO_HAVE_and_full
 
#define AO_HAVE_or_full
 
#define AO_HAVE_xor_full
 

Functions

AO_INLINE unsigned char AO_char_fetch_and_add (volatile unsignedchar *addr, unsignedchar incr)
 
AO_INLINE void AO_char_and (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_or (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_xor (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE unsigned short AO_short_fetch_and_add (volatile unsignedshort *addr, unsignedshort incr)
 
AO_INLINE void AO_short_and (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_or (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_xor (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE unsigned AO_int_fetch_and_add (volatile unsigned *addr, unsigned incr)
 
AO_INLINE void AO_int_and (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_or (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_xor (volatile unsigned *addr, unsigned value)
 
AO_INLINE AO_t AO_fetch_and_add (volatile AO_t *addr, AO_t incr)
 
AO_INLINE void AO_and (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_or (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_xor (volatile AO_t *addr, AO_t value)
 
AO_INLINE unsigned char AO_char_fetch_and_add_acquire (volatile unsignedchar *addr, unsignedchar incr)
 
AO_INLINE void AO_char_and_acquire (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_or_acquire (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_xor_acquire (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE unsigned short AO_short_fetch_and_add_acquire (volatile unsignedshort *addr, unsignedshort incr)
 
AO_INLINE void AO_short_and_acquire (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_or_acquire (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_xor_acquire (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE unsigned AO_int_fetch_and_add_acquire (volatile unsigned *addr, unsigned incr)
 
AO_INLINE void AO_int_and_acquire (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_or_acquire (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_xor_acquire (volatile unsigned *addr, unsigned value)
 
AO_INLINE AO_t AO_fetch_and_add_acquire (volatile AO_t *addr, AO_t incr)
 
AO_INLINE void AO_and_acquire (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_or_acquire (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_xor_acquire (volatile AO_t *addr, AO_t value)
 
AO_INLINE unsigned char AO_char_fetch_and_add_release (volatile unsignedchar *addr, unsignedchar incr)
 
AO_INLINE void AO_char_and_release (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_or_release (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_xor_release (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE unsigned short AO_short_fetch_and_add_release (volatile unsignedshort *addr, unsignedshort incr)
 
AO_INLINE void AO_short_and_release (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_or_release (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_xor_release (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE unsigned AO_int_fetch_and_add_release (volatile unsigned *addr, unsigned incr)
 
AO_INLINE void AO_int_and_release (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_or_release (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_xor_release (volatile unsigned *addr, unsigned value)
 
AO_INLINE AO_t AO_fetch_and_add_release (volatile AO_t *addr, AO_t incr)
 
AO_INLINE void AO_and_release (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_or_release (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_xor_release (volatile AO_t *addr, AO_t value)
 
AO_INLINE unsigned char AO_char_fetch_and_add_full (volatile unsignedchar *addr, unsignedchar incr)
 
AO_INLINE void AO_char_and_full (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_or_full (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE void AO_char_xor_full (volatile unsignedchar *addr, unsignedchar value)
 
AO_INLINE unsigned short AO_short_fetch_and_add_full (volatile unsignedshort *addr, unsignedshort incr)
 
AO_INLINE void AO_short_and_full (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_or_full (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE void AO_short_xor_full (volatile unsignedshort *addr, unsignedshort value)
 
AO_INLINE unsigned AO_int_fetch_and_add_full (volatile unsigned *addr, unsigned incr)
 
AO_INLINE void AO_int_and_full (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_or_full (volatile unsigned *addr, unsigned value)
 
AO_INLINE void AO_int_xor_full (volatile unsigned *addr, unsigned value)
 
AO_INLINE AO_t AO_fetch_and_add_full (volatile AO_t *addr, AO_t incr)
 
AO_INLINE void AO_and_full (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_or_full (volatile AO_t *addr, AO_t value)
 
AO_INLINE void AO_xor_full (volatile AO_t *addr, AO_t value)
 

Macro Definition Documentation

◆ AO_HAVE_and

#define AO_HAVE_and

Definition at line 195 of file generic-arithm.h.

◆ AO_HAVE_and_acquire

#define AO_HAVE_and_acquire

Definition at line 411 of file generic-arithm.h.

◆ AO_HAVE_and_full

#define AO_HAVE_and_full

Definition at line 843 of file generic-arithm.h.

◆ AO_HAVE_and_release

#define AO_HAVE_and_release

Definition at line 627 of file generic-arithm.h.

◆ AO_HAVE_char_and

#define AO_HAVE_char_and

Definition at line 33 of file generic-arithm.h.

◆ AO_HAVE_char_and_acquire

#define AO_HAVE_char_and_acquire

Definition at line 249 of file generic-arithm.h.

◆ AO_HAVE_char_and_full

#define AO_HAVE_char_and_full

Definition at line 681 of file generic-arithm.h.

◆ AO_HAVE_char_and_release

#define AO_HAVE_char_and_release

Definition at line 465 of file generic-arithm.h.

◆ AO_HAVE_char_fetch_and_add

#define AO_HAVE_char_fetch_and_add

Definition at line 25 of file generic-arithm.h.

◆ AO_HAVE_char_fetch_and_add_acquire

#define AO_HAVE_char_fetch_and_add_acquire

Definition at line 241 of file generic-arithm.h.

◆ AO_HAVE_char_fetch_and_add_full

#define AO_HAVE_char_fetch_and_add_full

Definition at line 673 of file generic-arithm.h.

◆ AO_HAVE_char_fetch_and_add_release

#define AO_HAVE_char_fetch_and_add_release

Definition at line 457 of file generic-arithm.h.

◆ AO_HAVE_char_or

#define AO_HAVE_char_or

Definition at line 42 of file generic-arithm.h.

◆ AO_HAVE_char_or_acquire

#define AO_HAVE_char_or_acquire

Definition at line 258 of file generic-arithm.h.

◆ AO_HAVE_char_or_full

#define AO_HAVE_char_or_full

Definition at line 690 of file generic-arithm.h.

◆ AO_HAVE_char_or_release

#define AO_HAVE_char_or_release

Definition at line 474 of file generic-arithm.h.

◆ AO_HAVE_char_xor

#define AO_HAVE_char_xor

Definition at line 51 of file generic-arithm.h.

◆ AO_HAVE_char_xor_acquire

#define AO_HAVE_char_xor_acquire

Definition at line 267 of file generic-arithm.h.

◆ AO_HAVE_char_xor_full

#define AO_HAVE_char_xor_full

Definition at line 699 of file generic-arithm.h.

◆ AO_HAVE_char_xor_release

#define AO_HAVE_char_xor_release

Definition at line 483 of file generic-arithm.h.

◆ AO_HAVE_fetch_and_add

#define AO_HAVE_fetch_and_add

Definition at line 187 of file generic-arithm.h.

◆ AO_HAVE_fetch_and_add_acquire

#define AO_HAVE_fetch_and_add_acquire

Definition at line 403 of file generic-arithm.h.

◆ AO_HAVE_fetch_and_add_full

#define AO_HAVE_fetch_and_add_full

Definition at line 835 of file generic-arithm.h.

◆ AO_HAVE_fetch_and_add_release

#define AO_HAVE_fetch_and_add_release

Definition at line 619 of file generic-arithm.h.

◆ AO_HAVE_int_and

#define AO_HAVE_int_and

Definition at line 141 of file generic-arithm.h.

◆ AO_HAVE_int_and_acquire

#define AO_HAVE_int_and_acquire

Definition at line 357 of file generic-arithm.h.

◆ AO_HAVE_int_and_full

#define AO_HAVE_int_and_full

Definition at line 789 of file generic-arithm.h.

◆ AO_HAVE_int_and_release

#define AO_HAVE_int_and_release

Definition at line 573 of file generic-arithm.h.

◆ AO_HAVE_int_fetch_and_add

#define AO_HAVE_int_fetch_and_add

Definition at line 133 of file generic-arithm.h.

◆ AO_HAVE_int_fetch_and_add_acquire

#define AO_HAVE_int_fetch_and_add_acquire

Definition at line 349 of file generic-arithm.h.

◆ AO_HAVE_int_fetch_and_add_full

#define AO_HAVE_int_fetch_and_add_full

Definition at line 781 of file generic-arithm.h.

◆ AO_HAVE_int_fetch_and_add_release

#define AO_HAVE_int_fetch_and_add_release

Definition at line 565 of file generic-arithm.h.

◆ AO_HAVE_int_or

#define AO_HAVE_int_or

Definition at line 150 of file generic-arithm.h.

◆ AO_HAVE_int_or_acquire

#define AO_HAVE_int_or_acquire

Definition at line 366 of file generic-arithm.h.

◆ AO_HAVE_int_or_full

#define AO_HAVE_int_or_full

Definition at line 798 of file generic-arithm.h.

◆ AO_HAVE_int_or_release

#define AO_HAVE_int_or_release

Definition at line 582 of file generic-arithm.h.

◆ AO_HAVE_int_xor

#define AO_HAVE_int_xor

Definition at line 159 of file generic-arithm.h.

◆ AO_HAVE_int_xor_acquire

#define AO_HAVE_int_xor_acquire

Definition at line 375 of file generic-arithm.h.

◆ AO_HAVE_int_xor_full

#define AO_HAVE_int_xor_full

Definition at line 807 of file generic-arithm.h.

◆ AO_HAVE_int_xor_release

#define AO_HAVE_int_xor_release

Definition at line 591 of file generic-arithm.h.

◆ AO_HAVE_or

#define AO_HAVE_or

Definition at line 204 of file generic-arithm.h.

◆ AO_HAVE_or_acquire

#define AO_HAVE_or_acquire

Definition at line 420 of file generic-arithm.h.

◆ AO_HAVE_or_full

#define AO_HAVE_or_full

Definition at line 852 of file generic-arithm.h.

◆ AO_HAVE_or_release

#define AO_HAVE_or_release

Definition at line 636 of file generic-arithm.h.

◆ AO_HAVE_short_and

#define AO_HAVE_short_and

Definition at line 87 of file generic-arithm.h.

◆ AO_HAVE_short_and_acquire

#define AO_HAVE_short_and_acquire

Definition at line 303 of file generic-arithm.h.

◆ AO_HAVE_short_and_full

#define AO_HAVE_short_and_full

Definition at line 735 of file generic-arithm.h.

◆ AO_HAVE_short_and_release

#define AO_HAVE_short_and_release

Definition at line 519 of file generic-arithm.h.

◆ AO_HAVE_short_fetch_and_add

#define AO_HAVE_short_fetch_and_add

Definition at line 79 of file generic-arithm.h.

◆ AO_HAVE_short_fetch_and_add_acquire

#define AO_HAVE_short_fetch_and_add_acquire

Definition at line 295 of file generic-arithm.h.

◆ AO_HAVE_short_fetch_and_add_full

#define AO_HAVE_short_fetch_and_add_full

Definition at line 727 of file generic-arithm.h.

◆ AO_HAVE_short_fetch_and_add_release

#define AO_HAVE_short_fetch_and_add_release

Definition at line 511 of file generic-arithm.h.

◆ AO_HAVE_short_or

#define AO_HAVE_short_or

Definition at line 96 of file generic-arithm.h.

◆ AO_HAVE_short_or_acquire

#define AO_HAVE_short_or_acquire

Definition at line 312 of file generic-arithm.h.

◆ AO_HAVE_short_or_full

#define AO_HAVE_short_or_full

Definition at line 744 of file generic-arithm.h.

◆ AO_HAVE_short_or_release

#define AO_HAVE_short_or_release

Definition at line 528 of file generic-arithm.h.

◆ AO_HAVE_short_xor

#define AO_HAVE_short_xor

Definition at line 105 of file generic-arithm.h.

◆ AO_HAVE_short_xor_acquire

#define AO_HAVE_short_xor_acquire

Definition at line 321 of file generic-arithm.h.

◆ AO_HAVE_short_xor_full

#define AO_HAVE_short_xor_full

Definition at line 753 of file generic-arithm.h.

◆ AO_HAVE_short_xor_release

#define AO_HAVE_short_xor_release

Definition at line 537 of file generic-arithm.h.

◆ AO_HAVE_xor

#define AO_HAVE_xor

Definition at line 213 of file generic-arithm.h.

◆ AO_HAVE_xor_acquire

#define AO_HAVE_xor_acquire

Definition at line 429 of file generic-arithm.h.

◆ AO_HAVE_xor_full

#define AO_HAVE_xor_full

Definition at line 861 of file generic-arithm.h.

◆ AO_HAVE_xor_release

#define AO_HAVE_xor_release

Definition at line 645 of file generic-arithm.h.

Function Documentation

◆ AO_and()

AO_INLINE void AO_and ( volatile AO_t addr,
AO_t  value 
)

Definition at line 191 of file generic-arithm.h.

192 {
193 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELAXED);
194 }

◆ AO_and_acquire()

AO_INLINE void AO_and_acquire ( volatile AO_t addr,
AO_t  value 
)

Definition at line 407 of file generic-arithm.h.

408 {
409 (void)__atomic_and_fetch(addr, value, __ATOMIC_ACQUIRE);
410 }

◆ AO_and_full()

AO_INLINE void AO_and_full ( volatile AO_t addr,
AO_t  value 
)

Definition at line 839 of file generic-arithm.h.

840 {
841 (void)__atomic_and_fetch(addr, value, __ATOMIC_SEQ_CST);
842 }

◆ AO_and_release()

AO_INLINE void AO_and_release ( volatile AO_t addr,
AO_t  value 
)

Definition at line 623 of file generic-arithm.h.

624 {
625 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELEASE);
626 }

◆ AO_char_and()

AO_INLINE void AO_char_and ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 29 of file generic-arithm.h.

30 {
31 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELAXED);
32 }

◆ AO_char_and_acquire()

AO_INLINE void AO_char_and_acquire ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 245 of file generic-arithm.h.

246 {
247 (void)__atomic_and_fetch(addr, value, __ATOMIC_ACQUIRE);
248 }

◆ AO_char_and_full()

AO_INLINE void AO_char_and_full ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 677 of file generic-arithm.h.

678 {
679 (void)__atomic_and_fetch(addr, value, __ATOMIC_SEQ_CST);
680 }

◆ AO_char_and_release()

AO_INLINE void AO_char_and_release ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 461 of file generic-arithm.h.

462 {
463 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELEASE);
464 }

◆ AO_char_fetch_and_add()

AO_INLINE unsigned char AO_char_fetch_and_add ( volatile unsignedchar *  addr,
unsignedchar  incr 
)

Definition at line 21 of file generic-arithm.h.

22{
23 return __atomic_fetch_add(addr, incr, __ATOMIC_RELAXED);
24}

◆ AO_char_fetch_and_add_acquire()

AO_INLINE unsigned char AO_char_fetch_and_add_acquire ( volatile unsignedchar *  addr,
unsignedchar  incr 
)

Definition at line 237 of file generic-arithm.h.

238{
239 return __atomic_fetch_add(addr, incr, __ATOMIC_ACQUIRE);
240}

◆ AO_char_fetch_and_add_full()

AO_INLINE unsigned char AO_char_fetch_and_add_full ( volatile unsignedchar *  addr,
unsignedchar  incr 
)

Definition at line 669 of file generic-arithm.h.

670{
671 return __atomic_fetch_add(addr, incr, __ATOMIC_SEQ_CST);
672}

◆ AO_char_fetch_and_add_release()

AO_INLINE unsigned char AO_char_fetch_and_add_release ( volatile unsignedchar *  addr,
unsignedchar  incr 
)

Definition at line 453 of file generic-arithm.h.

454{
455 return __atomic_fetch_add(addr, incr, __ATOMIC_RELEASE);
456}

◆ AO_char_or()

AO_INLINE void AO_char_or ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 38 of file generic-arithm.h.

39 {
40 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELAXED);
41 }

◆ AO_char_or_acquire()

AO_INLINE void AO_char_or_acquire ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 254 of file generic-arithm.h.

255 {
256 (void)__atomic_or_fetch(addr, value, __ATOMIC_ACQUIRE);
257 }

◆ AO_char_or_full()

AO_INLINE void AO_char_or_full ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 686 of file generic-arithm.h.

687 {
688 (void)__atomic_or_fetch(addr, value, __ATOMIC_SEQ_CST);
689 }

◆ AO_char_or_release()

AO_INLINE void AO_char_or_release ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 470 of file generic-arithm.h.

471 {
472 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELEASE);
473 }

◆ AO_char_xor()

AO_INLINE void AO_char_xor ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 47 of file generic-arithm.h.

48 {
49 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELAXED);
50 }

◆ AO_char_xor_acquire()

AO_INLINE void AO_char_xor_acquire ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 263 of file generic-arithm.h.

264 {
265 (void)__atomic_xor_fetch(addr, value, __ATOMIC_ACQUIRE);
266 }

◆ AO_char_xor_full()

AO_INLINE void AO_char_xor_full ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 695 of file generic-arithm.h.

696 {
697 (void)__atomic_xor_fetch(addr, value, __ATOMIC_SEQ_CST);
698 }

◆ AO_char_xor_release()

AO_INLINE void AO_char_xor_release ( volatile unsignedchar *  addr,
unsignedchar  value 
)

Definition at line 479 of file generic-arithm.h.

480 {
481 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELEASE);
482 }

◆ AO_fetch_and_add()

AO_INLINE AO_t AO_fetch_and_add ( volatile AO_t addr,
AO_t  incr 
)

Definition at line 183 of file generic-arithm.h.

184{
185 return __atomic_fetch_add(addr, incr, __ATOMIC_RELAXED);
186}

◆ AO_fetch_and_add_acquire()

AO_INLINE AO_t AO_fetch_and_add_acquire ( volatile AO_t addr,
AO_t  incr 
)

Definition at line 399 of file generic-arithm.h.

400{
401 return __atomic_fetch_add(addr, incr, __ATOMIC_ACQUIRE);
402}

◆ AO_fetch_and_add_full()

AO_INLINE AO_t AO_fetch_and_add_full ( volatile AO_t addr,
AO_t  incr 
)

Definition at line 831 of file generic-arithm.h.

832{
833 return __atomic_fetch_add(addr, incr, __ATOMIC_SEQ_CST);
834}

◆ AO_fetch_and_add_release()

AO_INLINE AO_t AO_fetch_and_add_release ( volatile AO_t addr,
AO_t  incr 
)

Definition at line 615 of file generic-arithm.h.

616{
617 return __atomic_fetch_add(addr, incr, __ATOMIC_RELEASE);
618}

◆ AO_int_and()

AO_INLINE void AO_int_and ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 137 of file generic-arithm.h.

138 {
139 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELAXED);
140 }

◆ AO_int_and_acquire()

AO_INLINE void AO_int_and_acquire ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 353 of file generic-arithm.h.

354 {
355 (void)__atomic_and_fetch(addr, value, __ATOMIC_ACQUIRE);
356 }

◆ AO_int_and_full()

AO_INLINE void AO_int_and_full ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 785 of file generic-arithm.h.

786 {
787 (void)__atomic_and_fetch(addr, value, __ATOMIC_SEQ_CST);
788 }

◆ AO_int_and_release()

AO_INLINE void AO_int_and_release ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 569 of file generic-arithm.h.

570 {
571 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELEASE);
572 }

◆ AO_int_fetch_and_add()

AO_INLINE unsigned AO_int_fetch_and_add ( volatile unsigned *  addr,
unsigned  incr 
)

Definition at line 129 of file generic-arithm.h.

130{
131 return __atomic_fetch_add(addr, incr, __ATOMIC_RELAXED);
132}

◆ AO_int_fetch_and_add_acquire()

AO_INLINE unsigned AO_int_fetch_and_add_acquire ( volatile unsigned *  addr,
unsigned  incr 
)

Definition at line 345 of file generic-arithm.h.

346{
347 return __atomic_fetch_add(addr, incr, __ATOMIC_ACQUIRE);
348}

◆ AO_int_fetch_and_add_full()

AO_INLINE unsigned AO_int_fetch_and_add_full ( volatile unsigned *  addr,
unsigned  incr 
)

Definition at line 777 of file generic-arithm.h.

778{
779 return __atomic_fetch_add(addr, incr, __ATOMIC_SEQ_CST);
780}

◆ AO_int_fetch_and_add_release()

AO_INLINE unsigned AO_int_fetch_and_add_release ( volatile unsigned *  addr,
unsigned  incr 
)

Definition at line 561 of file generic-arithm.h.

562{
563 return __atomic_fetch_add(addr, incr, __ATOMIC_RELEASE);
564}

◆ AO_int_or()

AO_INLINE void AO_int_or ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 146 of file generic-arithm.h.

147 {
148 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELAXED);
149 }

◆ AO_int_or_acquire()

AO_INLINE void AO_int_or_acquire ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 362 of file generic-arithm.h.

363 {
364 (void)__atomic_or_fetch(addr, value, __ATOMIC_ACQUIRE);
365 }

◆ AO_int_or_full()

AO_INLINE void AO_int_or_full ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 794 of file generic-arithm.h.

795 {
796 (void)__atomic_or_fetch(addr, value, __ATOMIC_SEQ_CST);
797 }

◆ AO_int_or_release()

AO_INLINE void AO_int_or_release ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 578 of file generic-arithm.h.

579 {
580 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELEASE);
581 }

◆ AO_int_xor()

AO_INLINE void AO_int_xor ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 155 of file generic-arithm.h.

156 {
157 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELAXED);
158 }

◆ AO_int_xor_acquire()

AO_INLINE void AO_int_xor_acquire ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 371 of file generic-arithm.h.

372 {
373 (void)__atomic_xor_fetch(addr, value, __ATOMIC_ACQUIRE);
374 }

◆ AO_int_xor_full()

AO_INLINE void AO_int_xor_full ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 803 of file generic-arithm.h.

804 {
805 (void)__atomic_xor_fetch(addr, value, __ATOMIC_SEQ_CST);
806 }

◆ AO_int_xor_release()

AO_INLINE void AO_int_xor_release ( volatile unsigned *  addr,
unsigned  value 
)

Definition at line 587 of file generic-arithm.h.

588 {
589 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELEASE);
590 }

◆ AO_or()

AO_INLINE void AO_or ( volatile AO_t addr,
AO_t  value 
)

Definition at line 200 of file generic-arithm.h.

201 {
202 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELAXED);
203 }

◆ AO_or_acquire()

AO_INLINE void AO_or_acquire ( volatile AO_t addr,
AO_t  value 
)

Definition at line 416 of file generic-arithm.h.

417 {
418 (void)__atomic_or_fetch(addr, value, __ATOMIC_ACQUIRE);
419 }

◆ AO_or_full()

AO_INLINE void AO_or_full ( volatile AO_t addr,
AO_t  value 
)

Definition at line 848 of file generic-arithm.h.

849 {
850 (void)__atomic_or_fetch(addr, value, __ATOMIC_SEQ_CST);
851 }

◆ AO_or_release()

AO_INLINE void AO_or_release ( volatile AO_t addr,
AO_t  value 
)

Definition at line 632 of file generic-arithm.h.

633 {
634 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELEASE);
635 }

◆ AO_short_and()

AO_INLINE void AO_short_and ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 83 of file generic-arithm.h.

84 {
85 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELAXED);
86 }

◆ AO_short_and_acquire()

AO_INLINE void AO_short_and_acquire ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 299 of file generic-arithm.h.

300 {
301 (void)__atomic_and_fetch(addr, value, __ATOMIC_ACQUIRE);
302 }

◆ AO_short_and_full()

AO_INLINE void AO_short_and_full ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 731 of file generic-arithm.h.

732 {
733 (void)__atomic_and_fetch(addr, value, __ATOMIC_SEQ_CST);
734 }

◆ AO_short_and_release()

AO_INLINE void AO_short_and_release ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 515 of file generic-arithm.h.

516 {
517 (void)__atomic_and_fetch(addr, value, __ATOMIC_RELEASE);
518 }

◆ AO_short_fetch_and_add()

AO_INLINE unsigned short AO_short_fetch_and_add ( volatile unsignedshort *  addr,
unsignedshort  incr 
)

Definition at line 75 of file generic-arithm.h.

76{
77 return __atomic_fetch_add(addr, incr, __ATOMIC_RELAXED);
78}

◆ AO_short_fetch_and_add_acquire()

AO_INLINE unsigned short AO_short_fetch_and_add_acquire ( volatile unsignedshort *  addr,
unsignedshort  incr 
)

Definition at line 291 of file generic-arithm.h.

292{
293 return __atomic_fetch_add(addr, incr, __ATOMIC_ACQUIRE);
294}

◆ AO_short_fetch_and_add_full()

AO_INLINE unsigned short AO_short_fetch_and_add_full ( volatile unsignedshort *  addr,
unsignedshort  incr 
)

Definition at line 723 of file generic-arithm.h.

724{
725 return __atomic_fetch_add(addr, incr, __ATOMIC_SEQ_CST);
726}

◆ AO_short_fetch_and_add_release()

AO_INLINE unsigned short AO_short_fetch_and_add_release ( volatile unsignedshort *  addr,
unsignedshort  incr 
)

Definition at line 507 of file generic-arithm.h.

508{
509 return __atomic_fetch_add(addr, incr, __ATOMIC_RELEASE);
510}

◆ AO_short_or()

AO_INLINE void AO_short_or ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 92 of file generic-arithm.h.

93 {
94 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELAXED);
95 }

◆ AO_short_or_acquire()

AO_INLINE void AO_short_or_acquire ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 308 of file generic-arithm.h.

309 {
310 (void)__atomic_or_fetch(addr, value, __ATOMIC_ACQUIRE);
311 }

◆ AO_short_or_full()

AO_INLINE void AO_short_or_full ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 740 of file generic-arithm.h.

741 {
742 (void)__atomic_or_fetch(addr, value, __ATOMIC_SEQ_CST);
743 }

◆ AO_short_or_release()

AO_INLINE void AO_short_or_release ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 524 of file generic-arithm.h.

525 {
526 (void)__atomic_or_fetch(addr, value, __ATOMIC_RELEASE);
527 }

◆ AO_short_xor()

AO_INLINE void AO_short_xor ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 101 of file generic-arithm.h.

102 {
103 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELAXED);
104 }

◆ AO_short_xor_acquire()

AO_INLINE void AO_short_xor_acquire ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 317 of file generic-arithm.h.

318 {
319 (void)__atomic_xor_fetch(addr, value, __ATOMIC_ACQUIRE);
320 }

◆ AO_short_xor_full()

AO_INLINE void AO_short_xor_full ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 749 of file generic-arithm.h.

750 {
751 (void)__atomic_xor_fetch(addr, value, __ATOMIC_SEQ_CST);
752 }

◆ AO_short_xor_release()

AO_INLINE void AO_short_xor_release ( volatile unsignedshort *  addr,
unsignedshort  value 
)

Definition at line 533 of file generic-arithm.h.

534 {
535 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELEASE);
536 }

◆ AO_xor()

AO_INLINE void AO_xor ( volatile AO_t addr,
AO_t  value 
)

Definition at line 209 of file generic-arithm.h.

210 {
211 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELAXED);
212 }

◆ AO_xor_acquire()

AO_INLINE void AO_xor_acquire ( volatile AO_t addr,
AO_t  value 
)

Definition at line 425 of file generic-arithm.h.

426 {
427 (void)__atomic_xor_fetch(addr, value, __ATOMIC_ACQUIRE);
428 }

◆ AO_xor_full()

AO_INLINE void AO_xor_full ( volatile AO_t addr,
AO_t  value 
)

Definition at line 857 of file generic-arithm.h.

858 {
859 (void)__atomic_xor_fetch(addr, value, __ATOMIC_SEQ_CST);
860 }

◆ AO_xor_release()

AO_INLINE void AO_xor_release ( volatile AO_t addr,
AO_t  value 
)

Definition at line 641 of file generic-arithm.h.

642 {
643 (void)__atomic_xor_fetch(addr, value, __ATOMIC_RELEASE);
644 }