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