Back to index

python3.2  3.2.2
Classes | Typedefs | Functions
cls_dbls_struct.c File Reference
#include "ffitest.h"

Go to the source code of this file.


struct  Dbls


typedef struct Dbls Dbls


void closure_test_fn (Dbls p)
void closure_test_gn (ffi_cif *cif __UNUSED__, void *resp __UNUSED__, void **args, void *userdata __UNUSED__)
int main (int argc __UNUSED__, char **argv __UNUSED__)

Class Documentation

struct Dbls

Definition at line 11 of file cls_dbls_struct.c.

Class Members
double x
double y

Typedef Documentation

typedef struct Dbls Dbls

Function Documentation

Definition at line 17 of file cls_dbls_struct.c.

       printf("%.1f %.1f\n", p.x, p.y);

Here is the caller graph for this function:

void closure_test_gn ( ffi_cif *cif  __UNUSED__,
void *resp  __UNUSED__,
void **  args,
void *userdata  __UNUSED__ 

Definition at line 23 of file cls_dbls_struct.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int main ( int argc  __UNUSED__,
char **argv  __UNUSED__ 

Definition at line 29 of file cls_dbls_struct.c.

       ffi_cif cif;

        void *code;
       ffi_closure*  pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
       ffi_type*            cl_arg_types[1];

       ffi_type      ts1_type;
       ffi_type*     ts1_type_elements[4];

       ts1_type.size = 0;
       ts1_type.alignment = 0;
       ts1_type.type = FFI_TYPE_STRUCT;
       ts1_type.elements = ts1_type_elements;

       ts1_type_elements[0] = &ffi_type_double;
       ts1_type_elements[1] = &ffi_type_double;
       ts1_type_elements[2] = NULL;

       cl_arg_types[0] = &ts1_type;

       Dbls arg = { 1.0, 2.0 };

       /* Initialize the cif */
       CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
                             &ffi_type_void, cl_arg_types) == FFI_OK);

       CHECK(ffi_prep_closure_loc(pcl, &cif, closure_test_gn, NULL, code) == FFI_OK);

       /* { dg-output "1.0 2.0\n" } */

       /* { dg-output "1.0 2.0\n" } */

       return 0;

Here is the call graph for this function: