Mercurial > pub > dyncall > dyncall
annotate dyncall/dyncall_macros.h @ 542:a73a5cd50c19
- fix passing aggregate-by-val on x64/sysv: subaggr classification for
aggr *arrays* was wrong (was problematic when there ware exactly 2 8bytes to
be classified, potentially be passed via registers)
author | Tassilo Philipp |
---|---|
date | Mon, 02 May 2022 15:32:41 +0200 |
parents | f6430d194be6 |
children | dfc2e6ee8782 |
rev | line source |
---|---|
0 | 1 /* |
2 | |
3 Package: dyncall | |
4 Library: dyncall | |
5 File: dyncall/dyncall_macros.h | |
6 Description: Platform detection macros | |
7 License: | |
8 | |
281 | 9 Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>, |
0 | 10 Tassilo Philipp <tphilipp@potion-studios.com> |
11 | |
12 Permission to use, copy, modify, and distribute this software for any | |
13 purpose with or without fee is hereby granted, provided that the above | |
14 copyright notice and this permission notice appear in all copies. | |
15 | |
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
23 | |
24 */ | |
25 | |
26 | |
27 | |
28 /* | |
29 | |
30 dyncall macros | |
31 | |
32 Platform detection, specific defines and configuration. | |
33 The purpose of this file is to provide coherent platform and compiler | |
34 specific defines. So instead of defines like WIN32, _OpenBSD_ or | |
35 __GNUC__, one should use DC__OS_Win32, DC__OS_OpenBSD or DC__C_GNU, | |
36 respectively. | |
37 | |
38 REVISION | |
39 2007/12/11 initial | |
40 | |
41 */ | |
42 | |
43 | |
44 #ifndef DYNCALL_MACROS_H | |
45 #define DYNCALL_MACROS_H | |
46 | |
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 | 50 |
51 /* MS Windows XP x64/Vista64 or later. */ | |
52 #if defined(WIN64) || defined(_WIN64) || defined(__WIN64__) | |
53 #define DC__OS_Win64 | |
54 | |
55 /* MS Windows NT/95/98/ME/2000/XP/Vista32. */ | |
56 #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) || defined(__WINDOWS__) || defined(_WINDOWS) | |
57 #define DC__OS_Win32 | |
58 | |
59 /* All the OS' based on Darwin OS (MacOS X, OpenDarwin). Note that '__APPLE__' may be defined for classic MacOS, too. */ | |
60 /* __MACOSX__ is not defined in gcc assembler mode (switch: -S) */ | |
61 /* @@@ TODO: Check for Classic OS */ | |
62 | |
63 #elif defined(__APPLE__) || defined(__Darwin__) | |
64 # define DC__OS_Darwin | |
65 # if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) | |
66 # define DC__OS_IPhone | |
67 # else /* defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) */ | |
68 # define DC__OS_MacOSX | |
69 # endif | |
70 | |
71 /* The most popular open source Unix-like OS - Linux. */ | |
72 #elif defined(__linux__) || defined(__linux) || defined(__gnu_linux__) | |
73 #define DC__OS_Linux | |
74 | |
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 | 77 #define DC__OS_FreeBSD |
78 | |
79 /* The most secure open source Unix-like OS - OpenBSD. */ | |
80 #elif defined(__OpenBSD__) | |
81 #define DC__OS_OpenBSD | |
82 | |
83 /* The most portable open source Unix-like OS - NetBSD. */ | |
84 #elif defined(__NetBSD__) | |
85 #define DC__OS_NetBSD | |
86 | |
87 /* The FreeBSD fork having heavy clusterization in mind - DragonFlyBSD. */ | |
88 #elif defined(__DragonFly__) | |
89 #define DC__OS_DragonFlyBSD | |
90 | |
91 /* Sun's Unix-like OS - SunOS / Solaris. */ | |
92 #elif defined(__sun__) || defined(__sun) || defined(sun) | |
93 #define DC__OS_SunOS | |
94 | |
95 /* The "Linux-like environment for Windows" - Cygwin. */ | |
96 #elif defined(__CYGWIN__) | |
97 #define DC__OS_Cygwin | |
98 | |
99 /* The "Minimalist GNU for Windows" - MinGW. */ | |
100 #elif defined(__MINGW__)/*@@@*/ | |
101 #define DC__OS_MinGW | |
102 | |
103 /* The Nintendo DS (homebrew) using devkitpro. */ | |
104 #elif defined(__nds__) | |
105 #define DC__OS_NDS | |
106 | |
107 /* The PlayStation Portable (homebrew) SDK. */ | |
108 #elif defined(__psp__) || defined(PSP) | |
109 #define DC__OS_PSP | |
110 | |
111 /* Haiku (BeOS alike). */ | |
112 #elif defined(__HAIKU__) | |
113 #define DC__OS_BeOS | |
114 | |
115 /* The Unix successor - Plan9 from Bell Labs */ | |
116 #elif defined(Plan9) || defined(__Plan9__) | |
117 #define DC__OS_Plan9 | |
118 | |
119 /* Digital's Unix-like OS - VMS */ | |
120 #elif defined(__vms) | |
121 #define DC__OS_VMS | |
122 | |
123 #elif defined(__minix) | |
124 #define DC__OS_Minix | |
125 | |
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 | 130 #endif |
131 | |
132 | |
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 | 137 |
138 /* Intel's C/C++ compiler. */ | |
139 #if defined(__INTEL_COMPILER) | |
140 #define DC__C_Intel | |
141 | |
142 /* MS C/C++ compiler. */ | |
143 #elif defined(_MSC_VER) | |
144 #define DC__C_MSVC | |
145 | |
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 | 148 #define DC__C_CLANG |
149 | |
150 /* The GNU Compiler Collection - GCC. */ | |
151 #elif defined(__GNUC__) | |
152 #define DC__C_GNU | |
153 | |
154 /* Watcom compiler. */ | |
155 #elif defined(__WATCOMC__) | |
156 #define DC__C_WATCOM | |
157 | |
158 /* Portable C Compiler. */ | |
159 #elif defined(__PCC__) | |
160 #define DC__C_PCC | |
161 | |
162 /* Sun Pro C. */ | |
163 #elif defined(__SUNPRO_C) | |
164 #define DC__C_SUNPRO | |
165 | |
166 /* Undetected C Compiler. */ | |
167 #else | |
168 #define DC__C_UNKNOWN | |
169 #endif | |
170 | |
171 | |
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 | 174 |
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 | 179 # define DC__Arch_Intel_x86 |
180 #elif defined(_M_IA64) || defined(__ia64__) | |
181 # define DC__Arch_Itanium | |
182 #elif defined(_M_PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__ppc__) || defined(__power__) | |
183 # if defined(__ppc64__) || defined(_ARCH_PPC64) || defined(__power64__) || defined(__powerpc64__) | |
184 # define DC__Arch_PPC64 | |
185 # else | |
186 # define DC__Arch_PPC32 | |
187 # endif | |
188 #elif defined(__mips64__) || defined(__mips64) | |
189 # define DC__Arch_MIPS64 | |
190 #elif defined(_M_MRX000) || defined(__mips__) || defined(__mips) || defined(_mips) | |
191 # define DC__Arch_MIPS | |
192 #elif defined(__arm__) | |
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 | 195 # define DC__Arch_ARM64 |
196 #elif defined(__sh__) | |
197 # define DC__Arch_SuperH | |
180 | 198 #elif defined(__sparc) || defined(__sparc__) |
199 # if defined(__sparcv9) || defined(__sparc_v9__) || defined(__sparc64__) || defined(__arch64__) | |
200 # define DC__Arch_Sparc64 | |
201 # else | |
202 # define DC__Arch_Sparc | |
203 # endif | |
0 | 204 #endif |
205 | |
206 | |
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 | 209 |
210 #if defined(DC__OS_Win32) || defined(DC__OS_Win64) | |
211 # define DC_WINDOWS | |
212 #elif defined(DC__OS_Plan9) | |
213 # define DC_PLAN9 | |
214 #elif defined(DC__OS_NDS) || defined(DC__OS_PSP) | |
215 # define DC_OTHER | |
216 #else | |
217 # define DC_UNIX | |
218 #endif | |
219 | |
220 | |
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 | 223 |
224 #if defined(__arm__) && !defined(__thumb__) | |
225 # define DC__Arch_ARM_ARM | |
226 #elif defined(__arm__) && defined(__thumb__) | |
227 # define DC__Arch_ARM_THUMB | |
228 #endif | |
229 | |
230 #if defined(DC__Arch_ARM_ARM) || defined(DC__Arch_ARM_THUMB) | |
231 # if defined(__ARM_EABI__) || defined(DC__OS_NDS) | |
232 # if defined (__ARM_PCS_VFP) && (__ARM_PCS_VFP == 1) | |
233 # define DC__ABI_ARM_HF | |
234 # else | |
235 # define DC__ABI_ARM_EABI | |
236 # endif | |
237 # elif defined(__APCS_32__) | |
238 # define DC__ABI_ARM_OABI | |
239 # endif | |
240 #endif /* ARM */ | |
241 | |
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 | 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 | 246 # define DC__ABI_MIPS_N64 |
0 | 247 # elif defined(_ABIN32) |
248 # define DC__ABI_MIPS_N32 | |
249 # else | |
250 # define DC__ABI_MIPS_EABI | |
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 | 258 #endif /* MIPS */ |
259 | |
260 #if defined(DC__Arch_PPC64) | |
261 # if defined(_CALL_ELF) | |
262 # define DC__ABI_PPC64_ELF_V _CALL_ELF | |
263 # else | |
264 # define DC__ABI_PPC64_ELF_V 0 /* 0 means not explicitly set, otherwise this is 1 (big endian) and 2 (little endian) */ | |
265 # endif | |
112 | 266 #endif /* PPC64 */ |
0 | 267 |
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 | 272 #if defined(DC__Arch_Intel_x86) || defined(DC__Arch_AMD64) /* always little */ |
273 # define DC__Endian_LITTLE | |
179 | 274 #elif defined(DC__Arch_Sparc) /* always purely big until v9 */ |
0 | 275 # define DC__Endian_BIG |
276 #else /* all others are bi-endian */ | |
277 /* @@@check flags used on following bi-endianness archs: | |
278 DC__Arch_Itanium | |
279 DC__Arch_PPC32 | |
280 DC__Arch_PPC64 | |
281 DC__Arch_SuperH | |
282 */ | |
302
d55f9d508074
- mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents:
281
diff
changeset
|
283 # if (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 1)) || defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || defined(MIPSEB) || defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) || defined(__ARMEB__) || defined(__AARCH64EB__) |
0 | 284 # define DC__Endian_BIG |
302
d55f9d508074
- mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents:
281
diff
changeset
|
285 # elif (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 2)) || defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || defined(MIPSEL) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(__ARMEL__) || defined(__AARCH64EL__) |
0 | 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 |
188 | 289 # elif defined(__BYTE_ORDER__) /* explicitly set */ |
290 # if defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) | |
291 # define DC__Endian_BIG | |
292 # elif defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) | |
293 # define DC__Endian_LITTLE | |
294 # endif | |
0 | 295 # endif /* no else, leave unset if not sure */ |
296 #endif | |
297 | |
298 | |
488
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
299 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
300 /* -- Internal macro/tag -------------------------------------------- */ |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
301 |
0 | 302 #if !defined(DC_API) |
188 | 303 # define DC_API |
0 | 304 #endif |
305 | |
488
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
306 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
307 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
308 /* -- Library feature support macors -------------------------------- */ |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
309 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
310 /* 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
|
311 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
|
312 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
313 /* syscalls */ |
531 | 314 #if (defined(DC__Arch_Intel_x86) || (defined(DC__Arch_AMD64) && defined(DC_UNIX)) || defined(DC__Arch_PPC32) || defined(DC__Arch_PPC64)) && \ |
315 !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
|
316 # define DC__Feature_Syscall |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
317 #endif |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
318 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
319 /* 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
|
320 #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
|
321 # define DC__Feature_AggrByVal |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
322 #endif |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
323 |
1455b6beedd9
- added feature-testing macros for syscall and aggregate (struct, union) by value support
Tassilo Philipp
parents:
371
diff
changeset
|
324 |
0 | 325 #endif /* DYNCALL_MACROS_H */ |
326 |