1d4c9320412177895f598a93d73a0e654db27c351Thomas Heller/* -----------------------------------------------------------------*-C-*-
22a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com   ffitarget.h - Copyright (c) 2012  Anthony Green
32a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com                 Copyright (c) 1996-2003  Red Hat, Inc.
4d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   Target configuration macros for S390.
5d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
6d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   Permission is hereby granted, free of charge, to any person obtaining
7d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   a copy of this software and associated documentation files (the
8d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   ``Software''), to deal in the Software without restriction, including
9d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   without limitation the rights to use, copy, modify, merge, publish,
10d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   distribute, sublicense, and/or sell copies of the Software, and to
11d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   permit persons to whom the Software is furnished to do so, subject to
12d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   the following conditions:
13d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
14d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   The above copyright notice and this permission notice shall be included
15d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   in all copies or substantial portions of the Software.
16d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
177864476afa402a0537c33ba9630e77351720baf8Christian Heimes   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
187864476afa402a0537c33ba9630e77351720baf8Christian Heimes   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
197864476afa402a0537c33ba9630e77351720baf8Christian Heimes   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
207864476afa402a0537c33ba9630e77351720baf8Christian Heimes   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
217864476afa402a0537c33ba9630e77351720baf8Christian Heimes   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
227864476afa402a0537c33ba9630e77351720baf8Christian Heimes   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
237864476afa402a0537c33ba9630e77351720baf8Christian Heimes   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
247864476afa402a0537c33ba9630e77351720baf8Christian Heimes   DEALINGS IN THE SOFTWARE.
25d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
26d4c9320412177895f598a93d73a0e654db27c351Thomas Heller   ----------------------------------------------------------------------- */
27d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
28d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#ifndef LIBFFI_TARGET_H
29d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#define LIBFFI_TARGET_H
30d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
312a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com#ifndef LIBFFI_H
322a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com#error "Please do not include ffitarget.h directly into your source.  Use ffi.h instead."
332a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com#endif
342a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com
35d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#if defined (__s390x__)
362a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com#ifndef S390X
37d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#define S390X
38d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#endif
392a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com#endif
40d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
41d4c9320412177895f598a93d73a0e654db27c351Thomas Heller/* ---- System specific configurations ----------------------------------- */
42d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
43d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#ifndef LIBFFI_ASM
44d4c9320412177895f598a93d73a0e654db27c351Thomas Hellertypedef unsigned long          ffi_arg;
45d4c9320412177895f598a93d73a0e654db27c351Thomas Hellertypedef signed long            ffi_sarg;
46d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
47d4c9320412177895f598a93d73a0e654db27c351Thomas Hellertypedef enum ffi_abi {
48d4c9320412177895f598a93d73a0e654db27c351Thomas Heller  FFI_FIRST_ABI = 0,
49d4c9320412177895f598a93d73a0e654db27c351Thomas Heller  FFI_SYSV,
502a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com  FFI_LAST_ABI,
512a918768f1825d4a1f1e5f11674614c74176aa5ddoko@ubuntu.com  FFI_DEFAULT_ABI = FFI_SYSV
52d4c9320412177895f598a93d73a0e654db27c351Thomas Heller} ffi_abi;
53d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#endif
54d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
55d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
56d4c9320412177895f598a93d73a0e654db27c351Thomas Heller/* ---- Definitions for closures ----------------------------------------- */
57d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
58d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#define FFI_CLOSURES 1
59d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#ifdef S390X
60d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#define FFI_TRAMPOLINE_SIZE 32
61d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#else
62d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#define FFI_TRAMPOLINE_SIZE 16
63d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#endif
64d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#define FFI_NATIVE_RAW_API 0
65d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
66d4c9320412177895f598a93d73a0e654db27c351Thomas Heller#endif
67d4c9320412177895f598a93d73a0e654db27c351Thomas Heller
68