summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnthony Green <green@moxielogic.com>2011-11-12 17:18:51 -0500
committerAnthony Green <green@moxielogic.com>2011-11-12 17:18:51 -0500
commitff9454da44859716a5bd4eaa344499288c79694f (patch)
treed5ad99ea8bc87ff986f91db1401383d89aa49cc8 /include
parentea14ae85e8f54ff046b7fb8a9cfe349475272044 (diff)
downloadlibffi-ff9454da44859716a5bd4eaa344499288c79694f.tar.gz
Add David Gilbert's variadic function call support
Diffstat (limited to 'include')
-rw-r--r--include/ffi.h.in16
-rw-r--r--include/ffi_common.h2
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