This commit is contained in:
Anthony Green
2010-11-21 10:50:56 -05:00
parent 84e8de6e9f
commit 2db72615b5
384 changed files with 22979 additions and 168722 deletions

View File

@@ -1,10 +1,10 @@
This is ../libffi/doc/libffi.info, produced by makeinfo version 4.13
from ../libffi/doc/libffi.texi.
This is doc/libffi.info, produced by makeinfo version 4.12 from
./doc/libffi.texi.
This manual is for Libffi, a portable foreign-function interface
library.
Copyright (C) 2008, 2010 Red Hat, Inc.
Copyright (C) 2008 Red Hat, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License as
@@ -13,7 +13,7 @@ library.
included in the section entitled "GNU General Public License".
INFO-DIR-SECTION Development
INFO-DIR-SECTION
START-INFO-DIR-ENTRY
* libffi: (libffi). Portable foreign-function interface library.
END-INFO-DIR-ENTRY
@@ -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 Red Hat, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License as
@@ -89,7 +89,6 @@ File: libffi.info, Node: Using libffi, Next: Missing Features, Prev: Introduc
* Types:: libffi type descriptions.
* Multiple ABIs:: Different passing styles on one platform.
* The Closure API:: Writing a generic function.
* Closure Example:: A closure example.

File: libffi.info, Node: The Basics, Next: Simple Example, Up: Using libffi
@@ -369,7 +368,7 @@ instance, the x86 platform has both `stdcall' and `fastcall' functions.
necessarily platform-specific.

File: libffi.info, Node: The Closure API, Next: Closure Example, Prev: Multiple ABIs, Up: Using libffi
File: libffi.info, Node: The Closure API, Prev: Multiple ABIs, Up: Using libffi
2.5 The Closure API
===================
@@ -444,62 +443,6 @@ closure function:
is deprecated, as it cannot handle the need for separate writable and
executable addresses.

File: libffi.info, Node: Closure Example, Prev: The Closure API, Up: Using libffi
2.6 Closure Example
===================
A trivial example that creates a new `puts' by binding `fputs' with
`stdin'.
#include <stdio.h>
#include <ffi.h>
/* Acts like puts with the file given at time of enclosure. */
void puts_binding(ffi_cif *cif, unsigned int *ret, void* args[],
FILE *stream)
{
*ret = fputs(*(char **)args[0], stream);
}
int main()
{
ffi_cif cif;
ffi_type *args[1];
ffi_closure *closure;
int (*bound_puts)(char *);
int rc;
/* Allocate closure and bound_puts */
closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts);
if (closure)
{
/* Initialize the argument info vectors */
args[0] = &ffi_type_pointer;
/* Initialize the cif */
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
&ffi_type_uint, args) == FFI_OK)
{
/* Initialize the closure, setting stream to stdout */
if (ffi_prep_closure_loc(closure, &cif, puts_binding,
stdout, bound_puts) == FFI_OK)
{
rc = bound_puts("Hello World!");
/* rc now holds the result of the call to fputs */
}
}
}
/* Deallocate both closure, and bound_puts */
ffi_closure_free(closure);
return 0;
}

File: libffi.info, Node: Missing Features, Next: Index, Prev: Using libffi, Up: Top
@@ -537,7 +480,7 @@ Index
* closures: The Closure API. (line 13)
* FFI: Introduction. (line 31)
* ffi_call: The Basics. (line 41)
* ffi_closure_alloc: The Closure API. (line 19)
* ffi_closure_alloca: 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)
@@ -573,19 +516,18 @@ Index

Tag Table:
Node: Top706
Node: Introduction1448
Node: Using libffi3084
Node: The Basics3570
Node: Simple Example6177
Node: Types7204
Node: Primitive Types7487
Node: Structures9307
Node: Type Example10167
Node: Multiple ABIs11390
Node: The Closure API11761
Node: Closure Example14705
Node: Missing Features16264
Node: Index16757
Node: Top670
Node: Introduction1406
Node: Using libffi3042
Node: The Basics3477
Node: Simple Example6084
Node: Types7111
Node: Primitive Types7394
Node: Structures9214
Node: Type Example10074
Node: Multiple ABIs11297
Node: The Closure API11668
Node: Missing Features14588
Node: Index15081

End Tag Table