diff options
author | Anthony Green <green@moxielogic.com> | 2011-11-12 17:18:51 -0500 |
---|---|---|
committer | Anthony Green <green@moxielogic.com> | 2011-11-12 17:18:51 -0500 |
commit | ff9454da44859716a5bd4eaa344499288c79694f (patch) | |
tree | d5ad99ea8bc87ff986f91db1401383d89aa49cc8 /include | |
parent | ea14ae85e8f54ff046b7fb8a9cfe349475272044 (diff) | |
download | libffi-ff9454da44859716a5bd4eaa344499288c79694f.tar.gz |
Add David Gilbert's variadic function call support
Diffstat (limited to 'include')
-rw-r--r-- | include/ffi.h.in | 16 | ||||
-rw-r--r-- | include/ffi_common.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/ffi.h.in b/include/ffi.h.in index f5a29b0..84017f1 100644 --- a/include/ffi.h.in +++ b/include/ffi.h.in @@ -207,6 +207,15 @@ typedef struct { #endif } ffi_cif; +/* Used internally, but overridden by some architectures */ +ffi_status ffi_prep_cif_core(ffi_cif *cif, + ffi_abi abi, + unsigned int isvariadic, + unsigned int nfixedargs, + unsigned int ntotalargs, + ffi_type *rtype, + ffi_type **atypes); + /* ---- Definitions for the raw API -------------------------------------- */ #ifndef FFI_SIZEOF_ARG @@ -384,6 +393,13 @@ ffi_status ffi_prep_cif(ffi_cif *cif, ffi_type *rtype, ffi_type **atypes); +ffi_status ffi_prep_cif_var(ffi_cif *cif, + ffi_abi abi, + unsigned int nfixedargs, + unsigned int ntotalargs, + ffi_type *rtype, + ffi_type **atypes); + void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, diff --git a/include/ffi_common.h b/include/ffi_common.h index d953762..919eec2 100644 --- a/include/ffi_common.h +++ b/include/ffi_common.h @@ -75,6 +75,8 @@ void ffi_type_test(ffi_type *a, char *file, int line); /* Perform machine dependent cif processing */ ffi_status ffi_prep_cif_machdep(ffi_cif *cif); +ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, + unsigned int nfixedargs, unsigned int ntotalargs); /* Extended cif, used in callback from assembly routine */ typedef struct |