girffi

girffi — TODO

Types and Values

Description

TODO

Functions

GIFFIClosureCallback ()

void
(*GIFFIClosureCallback) (ffi_cif *Param1,
                         void *Param2,
                         void **Param3,
                         void *Param4);

TODO

Parameters

Param1

TODO

 

Param2

TODO

 

Param3

TODO

 

Param4

TODO

 

gi_type_tag_get_ffi_type ()

ffi_type *
gi_type_tag_get_ffi_type (GITypeTag type_tag,
                          gboolean is_pointer);

TODO

Parameters

type_tag

A GITypeTag

 

is_pointer

Whether or not this is a pointer type

 

Returns

A ffi_type corresponding to the platform default C ABI for tag and is_pointer .


g_type_info_get_ffi_type ()

ffi_type *
g_type_info_get_ffi_type (GITypeInfo *info);

TODO

Parameters

info

A GITypeInfo

 

Returns

A ffi_type corresponding to the platform default C ABI for info .


gi_type_info_extract_ffi_return_value ()

void
gi_type_info_extract_ffi_return_value (GITypeInfo *return_info,
                                       GIFFIReturnValue *ffi_value,
                                       GIArgument *arg);

Extract the correct bits from an ffi_arg return value into GIArgument: https://bugzilla.gnome.org/show_bug.cgi?id=665152

Also see ffi_call(3)

  • the storage requirements for return values are "special".

Parameters

return_info

TODO

 

ffi_value

TODO

 

arg

TODO.

[out caller-allocates]

g_function_info_prep_invoker ()

gboolean
g_function_info_prep_invoker (GIFunctionInfo *info,
                              GIFunctionInvoker *invoker,
                              GError **error);

Initialize the caller-allocated invoker structure with a cache of information needed to invoke the C function corresponding to info with the platform's default ABI.

A primary intent of this function is that a dynamic structure allocated by a language binding could contain a GIFunctionInvoker structure inside the binding's function mapping.

Parameters

info

A GIFunctionInfo

 

invoker

Output invoker structure

 

error

A GError

 

Returns

TRUE on success, FALSE otherwise with error set.


g_function_invoker_new_for_address ()

gboolean
g_function_invoker_new_for_address (gpointer addr,
                                    GICallableInfo *info,
                                    GIFunctionInvoker *invoker,
                                    GError **error);

Initialize the caller-allocated invoker structure with a cache of information needed to invoke the C function corresponding to info with the platform's default ABI.

A primary intent of this function is that a dynamic structure allocated by a language binding could contain a GIFunctionInvoker structure inside the binding's function mapping.

Parameters

addr

The address

 

info

A GICallableInfo

 

invoker

Output invoker structure

 

error

A GError

 

Returns

TRUE on success, FALSE otherwise with error set.


g_function_invoker_destroy ()

void
g_function_invoker_destroy (GIFunctionInvoker *invoker);

Release all resources allocated for the internals of invoker ; callers are responsible for freeing any resources allocated for the structure itself however.

Parameters

invoker

A GIFunctionInvoker

 

g_callable_info_prepare_closure ()

ffi_closure *
g_callable_info_prepare_closure (GICallableInfo *callable_info,
                                 ffi_cif *cif,
                                 GIFFIClosureCallback callback,
                                 gpointer user_data);

Prepares a callback for ffi invocation.

Parameters

callable_info

a callable info from a typelib

 

cif

a ffi_cif structure

 

callback

the ffi callback

 

user_data

data to be passed into the callback

 

Returns

the ffi_closure or NULL on error. The return value should be freed by calling g_callable_info_free_closure().


g_callable_info_free_closure ()

void
g_callable_info_free_closure (GICallableInfo *callable_info,
                              ffi_closure *closure);

Frees a ffi_closure returned from g_callable_info_prepare_closure()

Parameters

callable_info

a callable info from a typelib

 

closure

ffi closure

 

Types and Values

struct GIFunctionInvoker

struct GIFunctionInvoker {
  ffi_cif cif;
  gpointer native_address;
};

TODO

Members

ffi_cif cif;

the cif

 

gpointer native_address;

the native address

 

GIFFIReturnValue

typedef GIArgument GIFFIReturnValue;

TODO