ext/fiddle/conversions.h File Reference

#include <fiddle.h>

Go to the source code of this file.

Data Structures

union  fiddle_generic

Defines

#define VALUE2GENERIC(_type, _src, _dst)   value_to_generic((_type), (_src), (_dst))
#define INT2FFI_TYPE(_type)   int_to_ffi_type(_type)
#define GENERIC2VALUE(_type, _retval)   generic_to_value((_type), (_retval))
#define PTR2NUM(x)   (ULONG2NUM((unsigned long)(x)))
#define NUM2PTR(x)   ((void*)(NUM2ULONG(x)))

Functions

ffi_type * int_to_ffi_type (int type)
void value_to_generic (int type, VALUE src, fiddle_generic *dst)
VALUE generic_to_value (VALUE rettype, fiddle_generic retval)


Define Documentation

#define GENERIC2VALUE ( _type,
_retval   )     generic_to_value((_type), (_retval))

Definition at line 33 of file conversions.h.

Referenced by function_call().

#define INT2FFI_TYPE ( _type   )     int_to_ffi_type(_type)

Definition at line 32 of file conversions.h.

Referenced by initialize().

#define NUM2PTR (  )     ((void*)(NUM2ULONG(x)))

Definition at line 37 of file conversions.h.

#define PTR2NUM (  )     (ULONG2NUM((unsigned long)(x)))

Definition at line 36 of file conversions.h.

#define VALUE2GENERIC ( _type,
_src,
_dst   )     value_to_generic((_type), (_src), (_dst))

Definition at line 31 of file conversions.h.

Referenced by function_call().


Function Documentation

VALUE generic_to_value ( VALUE  rettype,
fiddle_generic  retval 
)

Definition at line 95 of file conversions.c.

References fiddle_generic::ddouble, fiddle_generic::fffi_arg, fiddle_generic::fffi_sarg, fiddle_generic::ffloat, INT2NUM, LONG2NUM, mFiddle, NUM2INT, fiddle_generic::pointer, PTR2NUM, Qnil, rb_const_get(), rb_eRuntimeError, rb_float_new, rb_funcall(), rb_intern, rb_raise(), fiddle_generic::slong, type, TYPE_CHAR, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT, TYPE_LONG, TYPE_SHORT, TYPE_VOID, TYPE_VOIDP, UINT2NUM, fiddle_generic::ulong, ULONG2NUM, UNREACHABLE, and VALUE.

ffi_type* int_to_ffi_type ( int  type  ) 

Definition at line 4 of file conversions.c.

References rb_eRuntimeError, rb_ffi_type_of, rb_raise(), TYPE_CHAR, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT, TYPE_LONG, TYPE_SHORT, TYPE_VOID, and TYPE_VOIDP.

void value_to_generic ( int  type,
VALUE  src,
fiddle_generic dst 
)

Definition at line 43 of file conversions.c.

References fiddle_generic::ddouble, fiddle_generic::ffloat, NUM2DBL, NUM2INT, NUM2LONG, NUM2PTR, NUM2UINT, NUM2ULONG, fiddle_generic::pointer, rb_eRuntimeError, rb_Integer(), rb_raise(), fiddle_generic::schar, fiddle_generic::sint, fiddle_generic::slong, fiddle_generic::sshort, TYPE_CHAR, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT, TYPE_LONG, TYPE_SHORT, TYPE_VOID, TYPE_VOIDP, fiddle_generic::uchar, fiddle_generic::uint, and fiddle_generic::ulong.


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7