Fix last patch
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
This is /home/green/libffi/doc/libffi.info, produced by makeinfo
|
||||
version 4.13 from /home/green/libffi/doc/libffi.texi.
|
||||
This is ../libffi/doc/libffi.info, produced by makeinfo version 4.13
|
||||
from ../libffi/doc/libffi.texi.
|
||||
|
||||
This manual is for Libffi, a portable foreign-function interface
|
||||
library.
|
||||
|
||||
Copyright (C) 2008, 2010 Red Hat, Inc.
|
||||
Copyright (C) 2008, 2010, 2011 Red Hat, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU General Public License as
|
||||
@@ -27,7 +27,7 @@ libffi
|
||||
This manual is for Libffi, a portable foreign-function interface
|
||||
library.
|
||||
|
||||
Copyright (C) 2008, 2010 Red Hat, Inc.
|
||||
Copyright (C) 2008, 2010, 2011 Red Hat, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU General Public License as
|
||||
@@ -115,8 +115,6 @@ To prepare a call interface object, use the function `ffi_prep_cif'.
|
||||
want. *note Multiple ABIs:: for more information.
|
||||
|
||||
NARGS is the number of arguments that this function accepts.
|
||||
`libffi' does not yet handle varargs functions; see *note Missing
|
||||
Features:: for more information.
|
||||
|
||||
RTYPE is a pointer to an `ffi_type' structure that describes the
|
||||
return type of the function. *Note Types::.
|
||||
@@ -129,6 +127,30 @@ To prepare a call interface object, use the function `ffi_prep_cif'.
|
||||
properly; `FFI_BAD_TYPEDEF' if one of the `ffi_type' objects is
|
||||
incorrect; or `FFI_BAD_ABI' if the ABI parameter is invalid.
|
||||
|
||||
If the function being called is variadic (varargs) then
|
||||
`ffi_prep_cif_var' must be used instead of `ffi_prep_cif'.
|
||||
|
||||
-- Function: ffi_status ffi_prep_cif_var (ffi_cif *CIF, ffi_abi
|
||||
varabi, unsigned int NFIXEDARGS, unsigned int varntotalargs,
|
||||
ffi_type *RTYPE, ffi_type **ARGTYPES)
|
||||
This initializes CIF according to the given parameters for a call
|
||||
to a variadic function. In general it's operation is the same as
|
||||
for `ffi_prep_cif' except that:
|
||||
|
||||
NFIXEDARGS is the number of fixed arguments, prior to any variadic
|
||||
arguments. It must be greater than zero.
|
||||
|
||||
NTOTALARGS the total number of arguments, including variadic and
|
||||
fixed arguments.
|
||||
|
||||
Note that, different cif's must be prepped for calls to the same
|
||||
function when different numbers of arguments are passed.
|
||||
|
||||
Also note that a call to `ffi_prep_cif_var' with
|
||||
NFIXEDARGS=NOTOTALARGS is NOT equivalent to a call to
|
||||
`ffi_prep_cif'.
|
||||
|
||||
|
||||
To call a function using an initialized `ffi_cif', use the
|
||||
`ffi_call' function:
|
||||
|
||||
@@ -511,9 +533,7 @@ File: libffi.info, Node: Missing Features, Next: Index, Prev: Using libffi,
|
||||
`libffi' is missing a few features. We welcome patches to add support
|
||||
for these.
|
||||
|
||||
* There is no support for calling varargs functions. This may work
|
||||
on some platforms, depending on how the ABI is defined, but it is
|
||||
not reliable.
|
||||
* Variadic closures.
|
||||
|
||||
* There is no support for bit fields in structures.
|
||||
|
||||
@@ -521,6 +541,9 @@ for these.
|
||||
|
||||
* The "raw" API is undocumented.
|
||||
|
||||
Note that variadic support is very new and tested on a relatively
|
||||
small number of platforms.
|
||||
|
||||
|
||||
File: libffi.info, Node: Index, Prev: Missing Features, Up: Top
|
||||
|
||||
@@ -538,11 +561,12 @@ Index
|
||||
* closure API: The Closure API. (line 13)
|
||||
* closures: The Closure API. (line 13)
|
||||
* FFI: Introduction. (line 31)
|
||||
* ffi_call: The Basics. (line 41)
|
||||
* ffi_call: The Basics. (line 63)
|
||||
* ffi_closure_alloc: The Closure API. (line 19)
|
||||
* ffi_closure_free: The Closure API. (line 26)
|
||||
* FFI_CLOSURES: The Closure API. (line 13)
|
||||
* ffi_prep_cif: The Basics. (line 16)
|
||||
* ffi_prep_cif_var: The Basics. (line 39)
|
||||
* ffi_prep_closure_loc: The Closure API. (line 34)
|
||||
* ffi_status <1>: The Closure API. (line 37)
|
||||
* ffi_status: The Basics. (line 18)
|
||||
@@ -570,24 +594,24 @@ Index
|
||||
* ffi_type_void: Primitive Types. (line 10)
|
||||
* Foreign Function Interface: Introduction. (line 31)
|
||||
* void <1>: The Closure API. (line 20)
|
||||
* void: The Basics. (line 43)
|
||||
* void: The Basics. (line 65)
|
||||
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top724
|
||||
Node: Introduction1466
|
||||
Node: Using libffi3102
|
||||
Node: The Basics3588
|
||||
Node: Simple Example6374
|
||||
Node: Types7401
|
||||
Node: Primitive Types7684
|
||||
Node: Structures9504
|
||||
Node: Type Example10364
|
||||
Node: Multiple ABIs11587
|
||||
Node: The Closure API11958
|
||||
Node: Closure Example14902
|
||||
Node: Missing Features16461
|
||||
Node: Index16954
|
||||
Node: Top712
|
||||
Node: Introduction1460
|
||||
Node: Using libffi3096
|
||||
Node: The Basics3582
|
||||
Node: Simple Example7224
|
||||
Node: Types8251
|
||||
Node: Primitive Types8534
|
||||
Node: Structures10354
|
||||
Node: Type Example11214
|
||||
Node: Multiple ABIs12437
|
||||
Node: The Closure API12808
|
||||
Node: Closure Example15752
|
||||
Node: Missing Features17311
|
||||
Node: Index17764
|
||||
|
||||
End Tag Table
|
||||
|
||||
@@ -152,9 +152,7 @@ If the function being called is variadic (varargs) then
|
||||
@code{ffi_prep_cif_var} must be used instead of @code{ffi_prep_cif}.
|
||||
|
||||
@findex ffi_prep_cif_var
|
||||
@defun ffi_status ffi_prep_cif_var (ffi_cif *@var{cif}, ffi_abi
|
||||
var{abi}, unsigned int @var{nfixedargs}, unsigned int
|
||||
var{ntotalargs}, ffi_type *@var{rtype}, ffi_type **@var{argtypes})
|
||||
@defun ffi_status ffi_prep_cif_var (ffi_cif *@var{cif}, ffi_abi var{abi}, unsigned int @var{nfixedargs}, unsigned int var{ntotalargs}, ffi_type *@var{rtype}, ffi_type **@var{argtypes})
|
||||
This initializes @var{cif} according to the given parameters for
|
||||
a call to a variadic function. In general it's operation is the
|
||||
same as for @code{ffi_prep_cif} except that:
|
||||
|
||||
@@ -507,7 +507,7 @@ Index: libffi/doc/libffi.texi
|
||||
|
||||
@var{rtype} is a pointer to an @code{ffi_type} structure that
|
||||
describes the return type of the function. @xref{Types}.
|
||||
@@ -150,6 +148,32 @@ objects is incorrect; or @code{FFI_BAD_A
|
||||
@@ -150,6 +148,30 @@ objects is incorrect; or @code{FFI_BAD_A
|
||||
is invalid.
|
||||
@end defun
|
||||
|
||||
@@ -515,9 +515,7 @@ Index: libffi/doc/libffi.texi
|
||||
+@code{ffi_prep_cif_var} must be used instead of @code{ffi_prep_cif}.
|
||||
+
|
||||
+@findex ffi_prep_cif_var
|
||||
+@defun ffi_status ffi_prep_cif_var (ffi_cif *@var{cif}, ffi_abi
|
||||
+var{abi}, unsigned int @var{nfixedargs}, unsigned int
|
||||
+var{ntotalargs}, ffi_type *@var{rtype}, ffi_type **@var{argtypes})
|
||||
+@defun ffi_status ffi_prep_cif_var (ffi_cif *@var{cif}, ffi_abi var{abi}, unsigned int @var{nfixedargs}, unsigned int var{ntotalargs}, ffi_type *@var{rtype}, ffi_type **@var{argtypes})
|
||||
+This initializes @var{cif} according to the given parameters for
|
||||
+a call to a variadic function. In general it's operation is the
|
||||
+same as for @code{ffi_prep_cif} except that:
|
||||
@@ -540,7 +538,7 @@ Index: libffi/doc/libffi.texi
|
||||
|
||||
To call a function using an initialized @code{ffi_cif}, use the
|
||||
@code{ffi_call} function:
|
||||
@@ -572,9 +596,7 @@ support for these.
|
||||
@@ -572,9 +594,7 @@ support for these.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
@@ -551,7 +549,7 @@ Index: libffi/doc/libffi.texi
|
||||
|
||||
@item
|
||||
There is no support for bit fields in structures.
|
||||
@@ -591,6 +613,8 @@ The ``raw'' API is undocumented.
|
||||
@@ -591,6 +611,8 @@ The ``raw'' API is undocumented.
|
||||
@c anything else?
|
||||
@end itemize
|
||||
|
||||
|
||||
Reference in New Issue
Block a user