acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
aaa_want_to_remove_001.h
1
#pragma once
2
3
4
5
6
7
#if defined(SOLARIS)
8
#include <atomic.h>
9
#if defined(OS64BIT)
10
#define _gen_InterlockedIncrement(ptr) atomic_inc_64(ptr)
11
#define _gen_InterlockedDecrement(ptr) atomic_dec_64(ptr)
12
#else
13
#define _gen_InterlockedIncrement(ptr) atomic_inc_32((volatile ::u32 *) ptr)
14
#define _gen_InterlockedDecrement(ptr) atomic_dec_32((volatile ::u32 *) ptr)
15
#endif
16
#elif defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__)
17
#if (defined(RASPBERRYPIOS)) && defined(OS32BIT)
18
#define _gen_InterlockedIncrement(ptr) __sync_add_and_fetch_4(ptr, 1)
19
#define _gen_InterlockedDecrement(ptr) __sync_sub_and_fetch_4(ptr, 1)
20
#else
21
#define _gen_InterlockedIncrement(ptr) __sync_add_and_fetch(ptr, 1)
22
#define _gen_InterlockedDecrement(ptr) __sync_sub_and_fetch(ptr, 1)
23
#endif
24
#else
25
#ifdef _M_IX86
26
#ifndef _M_CEE
27
#define _gen_InterlockedIncrement InterlockedIncrement
28
#define _gen_InterlockedDecrement InterlockedDecrement
29
#else
30
#define _gen_InterlockedIncrement InterlockedIncrement
31
#define _gen_InterlockedDecrement InterlockedDecrement
32
/* managed code must use the non-intrinsics */
33
#ifdef InterlockedIncrement
34
#undef InterlockedIncrement
35
#endif
36
#ifdef InterlockedDecrement
37
#undef InterlockedDecrement
38
#endif
39
#endif
// !_M_CEE
40
#else
41
#define _gen_InterlockedIncrement InterlockedIncrement
42
#define _gen_InterlockedDecrement InterlockedDecrement
43
#endif
// _M_IX86_
44
#endif
// ! LINUX
45
46
prototype
string
aaa_want_to_remove_001.h
Generated by
1.17.0