Warning, file /include/ffitarget.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #ifndef LIBFFI_TARGET_H
0031 #define LIBFFI_TARGET_H
0032
0033 #ifndef LIBFFI_H
0034 #error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
0035 #endif
0036
0037
0038
0039
0040 #define X86_ANY
0041
0042 #if defined (X86_64) && defined (__i386__)
0043 #undef X86_64
0044 #warning ******************************************************
0045 #warning ********** X86 IS DEFINED ****************************
0046 #warning ******************************************************
0047 #define X86
0048 #endif
0049
0050 #ifdef X86_WIN64
0051 #define FFI_SIZEOF_ARG 8
0052 #define USE_BUILTIN_FFS 0
0053 #endif
0054
0055 #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
0056 #ifndef _MSC_VER
0057 #define FFI_TARGET_HAS_COMPLEX_TYPE
0058 #endif
0059
0060
0061
0062 #ifndef LIBFFI_ASM
0063 #ifdef X86_WIN64
0064 #ifdef _MSC_VER
0065 typedef unsigned __int64 ffi_arg;
0066 typedef __int64 ffi_sarg;
0067 #else
0068 typedef unsigned long long ffi_arg;
0069 typedef long long ffi_sarg;
0070 #endif
0071 #else
0072 #if defined __x86_64__ && defined __ILP32__
0073 #define FFI_SIZEOF_ARG 8
0074 #define FFI_SIZEOF_JAVA_RAW 4
0075 typedef unsigned long long ffi_arg;
0076 typedef long long ffi_sarg;
0077 #else
0078 typedef unsigned long ffi_arg;
0079 typedef signed long ffi_sarg;
0080 #endif
0081 #endif
0082
0083 typedef enum ffi_abi {
0084 #if defined(X86_WIN64)
0085 FFI_FIRST_ABI = 0,
0086 FFI_WIN64,
0087 FFI_GNUW64,
0088 FFI_LAST_ABI,
0089 #ifdef __GNUC__
0090 FFI_DEFAULT_ABI = FFI_GNUW64
0091 #else
0092 FFI_DEFAULT_ABI = FFI_WIN64
0093 #endif
0094
0095 #elif defined(X86_64) || (defined (__x86_64__) && defined (X86_DARWIN))
0096 FFI_FIRST_ABI = 1,
0097 FFI_UNIX64,
0098 FFI_WIN64,
0099 FFI_EFI64 = FFI_WIN64,
0100 FFI_GNUW64,
0101 FFI_LAST_ABI,
0102 FFI_DEFAULT_ABI = FFI_UNIX64
0103
0104 #elif defined(X86_WIN32)
0105 FFI_FIRST_ABI = 0,
0106 FFI_SYSV = 1,
0107 FFI_STDCALL = 2,
0108 FFI_THISCALL = 3,
0109 FFI_FASTCALL = 4,
0110 FFI_MS_CDECL = 5,
0111 FFI_PASCAL = 6,
0112 FFI_REGISTER = 7,
0113 FFI_LAST_ABI,
0114 FFI_DEFAULT_ABI = FFI_MS_CDECL
0115 #else
0116 FFI_FIRST_ABI = 0,
0117 FFI_SYSV = 1,
0118 FFI_THISCALL = 3,
0119 FFI_FASTCALL = 4,
0120 FFI_STDCALL = 5,
0121 FFI_PASCAL = 6,
0122 FFI_REGISTER = 7,
0123 FFI_MS_CDECL = 8,
0124 FFI_LAST_ABI,
0125 FFI_DEFAULT_ABI = FFI_SYSV
0126 #endif
0127 } ffi_abi;
0128 #endif
0129
0130
0131
0132 #define FFI_CLOSURES 1
0133 #define FFI_GO_CLOSURES 1
0134
0135 #define FFI_TYPE_SMALL_STRUCT_1B (FFI_TYPE_LAST + 1)
0136 #define FFI_TYPE_SMALL_STRUCT_2B (FFI_TYPE_LAST + 2)
0137 #define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3)
0138 #define FFI_TYPE_MS_STRUCT (FFI_TYPE_LAST + 4)
0139
0140 #if defined (X86_64) || defined(X86_WIN64) \
0141 || (defined (__x86_64__) && defined (X86_DARWIN))
0142
0143
0144 # define FFI_TRAMPOLINE_SIZE 32
0145 # define FFI_NATIVE_RAW_API 0
0146 #else
0147
0148
0149 # define FFI_TRAMPOLINE_SIZE 16
0150 # define FFI_NATIVE_RAW_API 1
0151 #endif
0152
0153 #if !defined(GENERATE_LIBFFI_MAP) && defined(__CET__)
0154 # include <cet.h>
0155 # if (__CET__ & 1) != 0
0156 # define ENDBR_PRESENT
0157 # endif
0158 # define _CET_NOTRACK notrack
0159 #else
0160 # define _CET_ENDBR
0161 # define _CET_NOTRACK
0162 #endif
0163
0164 #endif