annotate dyncall/dyncall_macros.h @ 588:dfc2e6ee8782 r1.4-RC3

- more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in - syscall test: added newline to output
author Tassilo Philipp
date Mon, 19 Sep 2022 09:54:21 +0200
parents f6430d194be6
children 5d999f5c13d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 /*
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 Package: dyncall
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 Library: dyncall
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 File: dyncall/dyncall_macros.h
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 Description: Platform detection macros
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 License:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8
281
f5577f6bf97a - file header cleanups for release
Tassilo Philipp
parents: 268
diff changeset
9 Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 /*
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 dyncall macros
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 Platform detection, specific defines and configuration.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 The purpose of this file is to provide coherent platform and compiler
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 specific defines. So instead of defines like WIN32, _OpenBSD_ or
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 __GNUC__, one should use DC__OS_Win32, DC__OS_OpenBSD or DC__C_GNU,
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 respectively.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 REVISION
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 2007/12/11 initial
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 #ifndef DYNCALL_MACROS_H
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 #define DYNCALL_MACROS_H
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
48
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
49 /* -- Platform specific #defines ------------------------------------ */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 /* MS Windows XP x64/Vista64 or later. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 #if defined(WIN64) || defined(_WIN64) || defined(__WIN64__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 #define DC__OS_Win64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 /* MS Windows NT/95/98/ME/2000/XP/Vista32. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) || defined(__WINDOWS__) || defined(_WINDOWS)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 #define DC__OS_Win32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 /* All the OS' based on Darwin OS (MacOS X, OpenDarwin). Note that '__APPLE__' may be defined for classic MacOS, too. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 /* __MACOSX__ is not defined in gcc assembler mode (switch: -S) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 /* @@@ TODO: Check for Classic OS */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 #elif defined(__APPLE__) || defined(__Darwin__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 # define DC__OS_Darwin
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 # if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 # define DC__OS_IPhone
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 # else /* defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68 # define DC__OS_MacOSX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 # endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 /* The most popular open source Unix-like OS - Linux. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 #elif defined(__linux__) || defined(__linux) || defined(__gnu_linux__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 #define DC__OS_Linux
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 /* The most powerful open source Unix-like OS - FreeBSD. */
254
9d70178c1ded - better cpp checking whether dlinfo() is available, to also cover GLIBC based systems that don't identify as Linux (e.g. debian/k*BSD)
Tassilo Philipp
parents: 204
diff changeset
76 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) /* latter is (also) used by systems using FreeBSD kernel, e.g. Debian/kFreeBSD, which could be detected specifically by also checking for __GLIBC__ */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 #define DC__OS_FreeBSD
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79 /* The most secure open source Unix-like OS - OpenBSD. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 #elif defined(__OpenBSD__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81 #define DC__OS_OpenBSD
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 /* The most portable open source Unix-like OS - NetBSD. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84 #elif defined(__NetBSD__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
85 #define DC__OS_NetBSD
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 /* The FreeBSD fork having heavy clusterization in mind - DragonFlyBSD. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88 #elif defined(__DragonFly__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
89 #define DC__OS_DragonFlyBSD
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91 /* Sun's Unix-like OS - SunOS / Solaris. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 #elif defined(__sun__) || defined(__sun) || defined(sun)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93 #define DC__OS_SunOS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95 /* The "Linux-like environment for Windows" - Cygwin. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96 #elif defined(__CYGWIN__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
97 #define DC__OS_Cygwin
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
98
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99 /* The "Minimalist GNU for Windows" - MinGW. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100 #elif defined(__MINGW__)/*@@@*/
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 #define DC__OS_MinGW
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103 /* The Nintendo DS (homebrew) using devkitpro. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104 #elif defined(__nds__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105 #define DC__OS_NDS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 /* The PlayStation Portable (homebrew) SDK. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 #elif defined(__psp__) || defined(PSP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
109 #define DC__OS_PSP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
110
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111 /* Haiku (BeOS alike). */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
112 #elif defined(__HAIKU__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
113 #define DC__OS_BeOS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
114
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115 /* The Unix successor - Plan9 from Bell Labs */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116 #elif defined(Plan9) || defined(__Plan9__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 #define DC__OS_Plan9
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
118
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119 /* Digital's Unix-like OS - VMS */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
120 #elif defined(__vms)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
121 #define DC__OS_VMS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
122
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
123 #elif defined(__minix)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
124 #define DC__OS_Minix
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126 #else
174
a8052efbde18 - loosened OS detection macros a bit to not bail out and thus make it easier to use dyncall on baremetal
cslag
parents: 141
diff changeset
127
a8052efbde18 - loosened OS detection macros a bit to not bail out and thus make it easier to use dyncall on baremetal
cslag
parents: 141
diff changeset
128 /* Unable to determine OS, which is probably ok (e.g. baremetal stuff, etc.). */
a8052efbde18 - loosened OS detection macros a bit to not bail out and thus make it easier to use dyncall on baremetal
cslag
parents: 141
diff changeset
129 #define DC__OS_UNKNOWN
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
130 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
132
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
134 /* -- Compiler specific #defines ------------------------------------ */
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
135
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
136 /* Don't change the order, b/c some compilers use same #defines compatibility */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
137
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
138 /* Intel's C/C++ compiler. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
139 #if defined(__INTEL_COMPILER)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
140 #define DC__C_Intel
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
141
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
142 /* MS C/C++ compiler. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
143 #elif defined(_MSC_VER)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
144 #define DC__C_MSVC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
145
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
146 /* LLVM clang. */
268
03f0b683918a - reintroduced .note.GNU-stack section, as mentioned in prev commit
Tassilo Philipp
parents: 261
diff changeset
147 #elif defined(__clang__) || defined(__llvm__)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
148 #define DC__C_CLANG
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
149
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
150 /* The GNU Compiler Collection - GCC. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
151 #elif defined(__GNUC__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
152 #define DC__C_GNU
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
153
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
154 /* Watcom compiler. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
155 #elif defined(__WATCOMC__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
156 #define DC__C_WATCOM
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
157
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
158 /* Portable C Compiler. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
159 #elif defined(__PCC__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
160 #define DC__C_PCC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
161
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
162 /* Sun Pro C. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
163 #elif defined(__SUNPRO_C)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
164 #define DC__C_SUNPRO
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
165
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
166 /* Undetected C Compiler. */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
167 #else
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
168 #define DC__C_UNKNOWN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
169 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
170
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
171
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
172
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
173 /* -- Architecture -------------------------------------------------- */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
174
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
175 /* Check architecture. */
31
6e7b1b7ad9d3 Fixed failing builds when the compiler is ICC/ICPC
Snaipe <franklinmathieu@gmail.com>
parents: 0
diff changeset
176 #if defined(_M_X64_) || defined(_M_AMD64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)
6e7b1b7ad9d3 Fixed failing builds when the compiler is ICC/ICPC
Snaipe <franklinmathieu@gmail.com>
parents: 0
diff changeset
177 # define DC__Arch_AMD64
6e7b1b7ad9d3 Fixed failing builds when the compiler is ICC/ICPC
Snaipe <franklinmathieu@gmail.com>
parents: 0
diff changeset
178 #elif defined(_M_IX86) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__386__) || defined(__i386)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
179 # define DC__Arch_Intel_x86
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
180 #elif defined(_M_IA64) || defined(__ia64__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
181 # define DC__Arch_Itanium
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
182 #elif defined(_M_PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__ppc__) || defined(__power__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
183 # if defined(__ppc64__) || defined(_ARCH_PPC64) || defined(__power64__) || defined(__powerpc64__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
184 # define DC__Arch_PPC64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
185 # else
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
186 # define DC__Arch_PPC32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
187 # endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
188 #elif defined(__mips64__) || defined(__mips64)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
189 # define DC__Arch_MIPS64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
190 #elif defined(_M_MRX000) || defined(__mips__) || defined(__mips) || defined(_mips)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
191 # define DC__Arch_MIPS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
192 #elif defined(__arm__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
193 # define DC__Arch_ARM
371
451299d50c1a - windows arm64 support (dyncall, dyncallback, cmake support for armasm64), thanks Bernhard Urban-Forster!
Tassilo Philipp
parents: 302
diff changeset
194 #elif defined(_M_ARM64) || defined(__aarch64__) || defined(__arm64) || defined(__arm64__)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
195 # define DC__Arch_ARM64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
196 #elif defined(__sh__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
197 # define DC__Arch_SuperH
180
629cfbba5ba0 - sparc predef cleanup
cslag
parents: 179
diff changeset
198 #elif defined(__sparc) || defined(__sparc__)
629cfbba5ba0 - sparc predef cleanup
cslag
parents: 179
diff changeset
199 # if defined(__sparcv9) || defined(__sparc_v9__) || defined(__sparc64__) || defined(__arch64__)
629cfbba5ba0 - sparc predef cleanup
cslag
parents: 179
diff changeset
200 # define DC__Arch_Sparc64
629cfbba5ba0 - sparc predef cleanup
cslag
parents: 179
diff changeset
201 # else
629cfbba5ba0 - sparc predef cleanup
cslag
parents: 179
diff changeset
202 # define DC__Arch_Sparc
629cfbba5ba0 - sparc predef cleanup
cslag
parents: 179
diff changeset
203 # endif
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
204 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
205
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
206
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
207
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
208 /* -- Rough OS classification --------------------------------------- */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
209
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
210 #if defined(DC__OS_Win32) || defined(DC__OS_Win64)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
211 # define DC_WINDOWS
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
212 #elif defined(DC__OS_Plan9)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
213 # define DC_PLAN9
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
214 #elif defined(DC__OS_NDS) || defined(DC__OS_PSP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
215 # define DC_OTHER
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
216 #else
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
217 # define DC_UNIX
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
218 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
219
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
220
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
221
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
222 /* -- Misc machine-dependent modes, ABIs, etc. ---------------------- */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
223
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
224 #if defined(__arm__) && !defined(__thumb__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
225 # define DC__Arch_ARM_ARM
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
226 #elif defined(__arm__) && defined(__thumb__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
227 # define DC__Arch_ARM_THUMB
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
228 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
229
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
230 #if defined(DC__Arch_ARM_ARM) || defined(DC__Arch_ARM_THUMB)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
231 # if defined(__ARM_EABI__) || defined(DC__OS_NDS)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
232 # if defined (__ARM_PCS_VFP) && (__ARM_PCS_VFP == 1)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
233 # define DC__ABI_ARM_HF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
234 # else
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
235 # define DC__ABI_ARM_EABI
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
236 # endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
237 # elif defined(__APCS_32__)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
238 # define DC__ABI_ARM_OABI
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
239 # endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
240 #endif /* ARM */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
241
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
242 #if defined(DC__Arch_MIPS) || defined(DC__Arch_MIPS64)
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
243 # if defined(_ABIO32) || defined(__mips_o32) || defined(_MIPS_ARCH_MIPS1) || defined(_MIPS_ARCH_MIPS2)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
244 # define DC__ABI_MIPS_O32
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
245 # elif defined(_ABI64) || defined(__mips_n64)
112
0baf4f79a8c5 - added __mips_n64 predef detection to macros.h
cslag
parents: 101
diff changeset
246 # define DC__ABI_MIPS_N64
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
247 # elif defined(_ABIN32)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
248 # define DC__ABI_MIPS_N32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
249 # else
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
250 # define DC__ABI_MIPS_EABI
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
251 # endif
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
252 /* Set extra flag to know if FP hardware ABI, default to yes, if unsure */
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
253 # if (defined(__mips_hard_float) && (__mips_hard_float == 1)) || !defined(__mips_soft_float) || (__mips_soft_float != 1)
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
254 # define DC__ABI_HARDFLOAT /* @@@ make this general for all archs? */
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
255 # else
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
256 # define DC__ABI_SOFTFLOAT
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 281
diff changeset
257 # endif
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
258 #endif /* MIPS */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
259
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
260 #if defined(DC__Arch_PPC64)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
261 # if defined(_CALL_ELF)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
262 # define DC__ABI_PPC64_ELF_V _CALL_ELF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
263 # else
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
264 # define DC__ABI_PPC64_ELF_V 0 /* 0 means not explicitly set, otherwise this is 1 (big endian) and 2 (little endian) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
265 # endif
112
0baf4f79a8c5 - added __mips_n64 predef detection to macros.h
cslag
parents: 101
diff changeset
266 #endif /* PPC64 */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
267
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
268
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
269
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
270 /* -- Endianness detection ------------------------------------------ */
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
271
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
272 #if defined(DC__Arch_Intel_x86) || defined(DC__Arch_AMD64) /* always little */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
273 # define DC__Endian_LITTLE
179
b11b0735b09f - renamings: sparc_v9 -> sparc64
cslag
parents: 174
diff changeset
274 #elif defined(DC__Arch_Sparc) /* always purely big until v9 */
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
275 # define DC__Endian_BIG
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
276 #else /* all others are bi-endian */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
277 /* @@@check flags used on following bi-endianness archs:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
278 DC__Arch_Itanium
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
279 DC__Arch_PPC32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
280 DC__Arch_PPC64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
281 DC__Arch_SuperH
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
282 */
588
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
283 # if (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 1)) || defined(MIPSEB) || defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) || defined(__ARMEB__) || defined(__AARCH64EB__)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
284 # define DC__Endian_BIG
588
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
285 # elif (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 2)) || defined(MIPSEL) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(__ARMEL__) || defined(__AARCH64EL__)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
286 # define DC__Endian_LITTLE
204
a74e2cd93348 - sparc64 endian detection on non-explicit platforms
Tassilo Philipp
parents: 188
diff changeset
287 # elif defined(DC__Arch_Sparc64) && !defined(__BYTE_ORDER__) /* Sparc64 default is big-endian, except if explicitly defined */
a74e2cd93348 - sparc64 endian detection on non-explicit platforms
Tassilo Philipp
parents: 188
diff changeset
288 # define DC__Endian_BIG
588
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
289 # elif defined(BYTE_ORDER) || defined(_BYTE_ORDER) || defined(__BYTE_ORDER__) /* explicitly set byte order, either through compiler or platform specific endian.h */
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
290 # if (defined(BIG_ENDIAN) && (BYTE_ORDER == BIG_ENDIAN)) || (defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN)) || (defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
188
44ae5b653086 - more endian detection in macros
Tassilo Philipp
parents: 180
diff changeset
291 # define DC__Endian_BIG
588
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
292 # elif (defined(LITTLE_ENDIAN) && (BYTE_ORDER == LITTLE_ENDIAN)) || (defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN)) || (defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__))
188
44ae5b653086 - more endian detection in macros
Tassilo Philipp
parents: 180
diff changeset
293 # define DC__Endian_LITTLE
44ae5b653086 - more endian detection in macros
Tassilo Philipp
parents: 180
diff changeset
294 # endif
588
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
295 # elif (defined(_BIG_ENDIAN) && (_BIG_ENDIAN == 1)) || (defined(__BIG_ENDIAN__) && (__BIG_ENDIAN__ == 1)) /* explicitly set as on/off */
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
296 # define DC__Endian_BIG
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
297 # elif (defined(_LITTLE_ENDIAN) && (_LITTLE_ENDIAN == 1)) || (defined(__LITTLE_ENDIAN__) && (__LITTLE_ENDIAN__ == 1)) /* explicitly set as on/off */
dfc2e6ee8782 - more robust endian detection, on some platforms inclusion of endian.h led to assuming wrong endianness (subtle if inclusion was in
Tassilo Philipp
parents: 531
diff changeset
298 # define DC__Endian_LITTLE
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
299 # endif /* no else, leave unset if not sure */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
300 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
301
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
302
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
303
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
304 /* -- Internal macro/tag -------------------------------------------- */
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
305
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
306 #if !defined(DC_API)
188
44ae5b653086 - more endian detection in macros
Tassilo Philipp
parents: 180
diff changeset
307 # define DC_API
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
308 #endif
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
309
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
310
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
311
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
312 /* -- Library feature support macors -------------------------------- */
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
313
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
314 /* macros for specifying lesser used feature support (main features like basic
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
315 call and callback support are required for a platform implementation */
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
316
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
317 /* syscalls */
531
f6430d194be6 cleanups
Tassilo Philipp
parents: 488
diff changeset
318 #if (defined(DC__Arch_Intel_x86) || (defined(DC__Arch_AMD64) && defined(DC_UNIX)) || defined(DC__Arch_PPC32) || defined(DC__Arch_PPC64)) && \
f6430d194be6 cleanups
Tassilo Philipp
parents: 488
diff changeset
319 !defined(DC__OS_MacOSX) && !defined(DC__OS_Plan9) && !defined(DC__OS_NDS) && !defined(DC__OS_PSP) && !defined(DC__OS_Minix) && !defined(DC__OS_SunOS) && !defined(DC__OS_BeOS)
488
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
320 # define DC__Feature_Syscall
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
321 #endif
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
322
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
323 /* aggregate (struct, union) by value */
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
324 #if defined(DC__Arch_AMD64)
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
325 # define DC__Feature_AggrByVal
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
326 #endif
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
327
1455b6beedd9 - added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents: 371
diff changeset
328
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
329 #endif /* DYNCALL_MACROS_H */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
330