Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

conversions.h
Go to the documentation of this file.
1 #ifndef FIDDLE_CONVERSIONS_H
2 #define FIDDLE_CONVERSIONS_H
3
4 #include <fiddle.h>
5
6 typedef union
7 {
8 ffi_arg fffi_arg; /* rvalue smaller than unsigned long */
9 ffi_sarg fffi_sarg; /* rvalue smaller than signed long */
10 unsigned char uchar; /* ffi_type_uchar */
11 signed char schar; /* ffi_type_schar */
12 unsigned short ushort; /* ffi_type_sshort */
13 signed short sshort; /* ffi_type_ushort */
14 unsigned int uint; /* ffi_type_uint */
15 signed int sint; /* ffi_type_sint */
16 unsigned long ulong; /* ffi_type_ulong */
17 signed long slong; /* ffi_type_slong */
18 float ffloat; /* ffi_type_float */
19 double ddouble; /* ffi_type_double */
20 #if HAVE_LONG_LONG
21 unsigned LONG_LONG ulong_long; /* ffi_type_ulong_long */
22 signed LONG_LONG slong_long; /* ffi_type_ulong_long */
23 #endif
24 void * pointer; /* ffi_type_pointer */
25 } fiddle_generic;
26
27 ffi_type * int_to_ffi_type(int type);
28 void value_to_generic(int type, VALUE src, fiddle_generic * dst);
29 VALUE generic_to_value(VALUE rettype, fiddle_generic retval);
30
31 #define VALUE2GENERIC(_type, _src, _dst) value_to_generic((_type), (_src), (_dst))
32 #define INT2FFI_TYPE(_type) int_to_ffi_type(_type)
33 #define GENERIC2VALUE(_type, _retval) generic_to_value((_type), (_retval))
34
35 #if SIZEOF_VOIDP == SIZEOF_LONG
36 # define PTR2NUM(x) (ULONG2NUM((unsigned long)(x)))
37 # define NUM2PTR(x) ((void*)(NUM2ULONG(x)))
38 #else
39 /* # error --->> Ruby/DL2 requires sizeof(void*) == sizeof(long) to be compiled. <<--- */
40 # define PTR2NUM(x) (ULL2NUM((unsigned long long)(x)))
41 # define NUM2PTR(x) ((void*)(NUM2ULL(x)))
42 #endif
43
44 #endif
fiddle_generic::ffloat
float ffloat
Definition: conversions.h:18
int_to_ffi_type
ffi_type * int_to_ffi_type(int type)
Definition: conversions.c:4
fiddle.h
fiddle_generic::schar
signed char schar
Definition: conversions.h:11
value_to_generic
void value_to_generic(int type, VALUE src, fiddle_generic *dst)
Definition: conversions.c:43
fiddle_generic::ulong
unsigned long ulong
Definition: conversions.h:16
fiddle_generic::ddouble
double ddouble
Definition: conversions.h:19
generic_to_value
VALUE generic_to_value(VALUE rettype, fiddle_generic retval)
Definition: conversions.c:95
fiddle_generic::sshort
signed short sshort
Definition: conversions.h:13
fiddle_generic::ushort
unsigned short ushort
Definition: conversions.h:12
fiddle_generic::slong
signed long slong
Definition: conversions.h:17
fiddle_generic::uint
unsigned int uint
Definition: conversions.h:14
fiddle_generic::uchar
unsigned char uchar
Definition: conversions.h:10
fiddle_generic::fffi_arg
ffi_arg fffi_arg
Definition: conversions.h:8
fiddle_generic::pointer
void * pointer
Definition: conversions.h:24
retval
VALUE retval
Definition: tcltklib.c:7830
type
int type
Definition: tcltklib.c:111
fiddle_generic
Definition: conversions.h:6
src
VALUE src
Definition: tcltklib.c:7953
fiddle_generic::fffi_sarg
ffi_sarg fffi_sarg
Definition: conversions.h:9
fiddle_generic::sint
signed int sint
Definition: conversions.h:15
VALUE
unsigned long VALUE
Definition: ripper.y:104
dst
char * dst
Definition: tcltklib.c:9868