summary refs log tree commit diff stats
path: root/lib/wrappers/libffi.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers/libffi.nim')
-rw-r--r--lib/wrappers/libffi.nim149
1 files changed, 0 insertions, 149 deletions
diff --git a/lib/wrappers/libffi.nim b/lib/wrappers/libffi.nim
deleted file mode 100644
index 514ce024f..000000000
--- a/lib/wrappers/libffi.nim
+++ /dev/null
@@ -1,149 +0,0 @@
-# -----------------------------------------------------------------*-C-*-
-#   libffi 3.0.10 - Copyright (c) 2011 Anthony Green
-#                    - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
-#
-#   Permission is hereby granted, free of charge, to any person
-#   obtaining a copy of this software and associated documentation
-#   files (the ``Software''), to deal in the Software without
-#   restriction, including without limitation the rights to use, copy,
-#   modify, merge, publish, distribute, sublicense, and/or sell copies
-#   of the Software, and to permit persons to whom the Software is
-#   furnished to do so, subject to the following conditions:
-#
-#   The above copyright notice and this permission notice shall be
-#   included in all copies or substantial portions of the Software.
-#
-#   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
-#   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-#   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-#   NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-#   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-#   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-#   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-#   DEALINGS IN THE SOFTWARE.
-#
-#   ----------------------------------------------------------------------- 
-
-{.deadCodeElim: on.}
-
-when defined(windows): 
-  const libffidll* = "libffi.dll"
-elif defined(macosx): 
-  const libffidll* = "libffi.dylib"
-else: 
-  const libffidll* = "libffi.so"
-
-type
-  TArg* = int
-  TSArg* = int
-
-when defined(windows) and defined(x86):
-  type
-    TABI* {.size: sizeof(cint).} = enum
-      FIRST_ABI, SYSV, STDCALL
-
-  const DEFAULT_ABI* = SYSV
-elif defined(amd64) and defined(windows):
-  type 
-    TABI* {.size: sizeof(cint).} = enum 
-      FIRST_ABI, WIN64
-  const DEFAULT_ABI* = WIN64
-else:
-  type 
-    TABI* {.size: sizeof(cint).} = enum
-      FIRST_ABI, SYSV, UNIX64
-
-  when defined(i386):
-    const DEFAULT_ABI* = SYSV
-  else: 
-    const DEFAULT_ABI* = UNIX64
-    
-const 
-  tkVOID* = 0
-  tkINT* = 1
-  tkFLOAT* = 2
-  tkDOUBLE* = 3
-  tkLONGDOUBLE* = 4
-  tkUINT8* = 5
-  tkSINT8* = 6
-  tkUINT16* = 7
-  tkSINT16* = 8
-  tkUINT32* = 9
-  tkSINT32* = 10
-  tkUINT64* = 11
-  tkSINT64* = 12
-  tkSTRUCT* = 13
-  tkPOINTER* = 14
-
-  tkLAST = tkPOINTER
-  tkSMALL_STRUCT_1B* = (tkLAST + 1)
-  tkSMALL_STRUCT_2B* = (tkLAST + 2)
-  tkSMALL_STRUCT_4B* = (tkLAST + 3)
-
-type
-  TType* = object
-    size*: int
-    alignment*: uint16
-    typ*: uint16
-    elements*: ptr ptr TType
-
-var
-  type_void* {.importc: "ffi_type_void", dynlib: libffidll.}: TType
-  type_uint8* {.importc: "ffi_type_uint8", dynlib: libffidll.}: TType
-  type_sint8* {.importc: "ffi_type_sint8", dynlib: libffidll.}: TType
-  type_uint16* {.importc: "ffi_type_uint16", dynlib: libffidll.}: TType
-  type_sint16* {.importc: "ffi_type_sint16", dynlib: libffidll.}: TType
-  type_uint32* {.importc: "ffi_type_uint32", dynlib: libffidll.}: TType
-  type_sint32* {.importc: "ffi_type_sint32", dynlib: libffidll.}: TType
-  type_uint64* {.importc: "ffi_type_uint64", dynlib: libffidll.}: TType
-  type_sint64* {.importc: "ffi_type_sint64", dynlib: libffidll.}: TType
-  type_float* {.importc: "ffi_type_float", dynlib: libffidll.}: TType
-  type_double* {.importc: "ffi_type_double", dynlib: libffidll.}: TType
-  type_pointer* {.importc: "ffi_type_pointer", dynlib: libffidll.}: TType
-  type_longdouble* {.importc: "ffi_type_longdouble", dynlib: libffidll.}: TType
-
-type 
-  Tstatus* {.size: sizeof(cint).} = enum 
-    OK, BAD_TYPEDEF, BAD_ABI
-  TTypeKind* = cuint
-  TCif* {.pure, final.} = object 
-    abi*: TABI
-    nargs*: cuint
-    arg_types*: ptr ptr TType
-    rtype*: ptr TType
-    bytes*: cuint
-    flags*: cuint
-
-type
-  TRaw* = object 
-    sint*: TSArg
-
-proc raw_call*(cif: var Tcif; fn: proc () {.cdecl.}; rvalue: pointer; 
-               avalue: ptr TRaw) {.cdecl, importc: "ffi_raw_call", 
-                                   dynlib: libffidll.}
-proc ptrarray_to_raw*(cif: var Tcif; args: ptr pointer; raw: ptr TRaw) {.cdecl, 
-    importc: "ffi_ptrarray_to_raw", dynlib: libffidll.}
-proc raw_to_ptrarray*(cif: var Tcif; raw: ptr TRaw; args: ptr pointer) {.cdecl, 
-    importc: "ffi_raw_to_ptrarray", dynlib: libffidll.}
-proc raw_size*(cif: var Tcif): int {.cdecl, importc: "ffi_raw_size", 
-                                     dynlib: libffidll.}
-
-proc prep_cif*(cif: var Tcif; abi: TABI; nargs: cuint; rtype: ptr TType; 
-               atypes: ptr ptr TType): TStatus {.cdecl, importc: "ffi_prep_cif", 
-    dynlib: libffidll.}
-proc call*(cif: var Tcif; fn: proc () {.cdecl.}; rvalue: pointer; 
-           avalue: ptr pointer) {.cdecl, importc: "ffi_call", dynlib: libffidll.}
-
-# the same with an easier interface:
-type
-  TParamList* = array[0..100, ptr TType]
-  TArgList* = array[0..100, pointer]
-
-proc prep_cif*(cif: var Tcif; abi: TABI; nargs: cuint; rtype: ptr TType; 
-               atypes: TParamList): TStatus {.cdecl, importc: "ffi_prep_cif",
-    dynlib: libffidll.}
-proc call*(cif: var Tcif; fn, rvalue: pointer;
-           avalue: TArgList) {.cdecl, importc: "ffi_call", dynlib: libffidll.}
-
-# Useful for eliminating compiler warnings 
-##define FFI_FN(f) ((void (*)(void))f)