Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Functions | Variables
dl.h File Reference
`#include <ruby.h>`
Include dependency graph for dl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures
struct | dl_handle
struct | cfunc_data
struct | ptr_data

## Macros
#define | FUNC_CDECL(x) x
#define | MAX_CALLBACK 5
#define | DLSTACK_TYPE SIGNED_VALUE
#define | DLSTACK_SIZE (20)
#define | DLSTACK_PROTO
#define | DLSTACK_ARGS(stack)
#define | DLSTACK_PROTO0_ void
#define | DLSTACK_PROTO1_ DLSTACK_TYPE
#define | DLSTACK_PROTO2_ DLSTACK_PROTO1_, DLSTACK_TYPE
#define | DLSTACK_PROTO3_ DLSTACK_PROTO2_, DLSTACK_TYPE
#define | DLSTACK_PROTO4_ DLSTACK_PROTO3_, DLSTACK_TYPE
#define | DLSTACK_PROTO5_ DLSTACK_PROTO4_, DLSTACK_TYPE
#define | DLSTACK_PROTO6_ DLSTACK_PROTO5_, DLSTACK_TYPE
#define | DLSTACK_PROTO7_ DLSTACK_PROTO6_, DLSTACK_TYPE
#define | DLSTACK_PROTO8_ DLSTACK_PROTO7_, DLSTACK_TYPE
#define | DLSTACK_PROTO9_ DLSTACK_PROTO8_, DLSTACK_TYPE
#define | DLSTACK_PROTO10_ DLSTACK_PROTO9_, DLSTACK_TYPE
#define | DLSTACK_PROTO11_ DLSTACK_PROTO10_, DLSTACK_TYPE
#define | DLSTACK_PROTO12_ DLSTACK_PROTO11_, DLSTACK_TYPE
#define | DLSTACK_PROTO13_ DLSTACK_PROTO12_, DLSTACK_TYPE
#define | DLSTACK_PROTO14_ DLSTACK_PROTO13_, DLSTACK_TYPE
#define | DLSTACK_PROTO15_ DLSTACK_PROTO14_, DLSTACK_TYPE
#define | DLSTACK_PROTO16_ DLSTACK_PROTO15_, DLSTACK_TYPE
#define | DLSTACK_PROTO17_ DLSTACK_PROTO16_, DLSTACK_TYPE
#define | DLSTACK_PROTO18_ DLSTACK_PROTO17_, DLSTACK_TYPE
#define | DLSTACK_PROTO19_ DLSTACK_PROTO18_, DLSTACK_TYPE
#define | DLSTACK_PROTO20_ DLSTACK_PROTO19_, DLSTACK_TYPE
#define | DLSTACK_PROTO0 void
#define | DLSTACK_PROTO1 DLSTACK_PROTO1_, ...
#define | DLSTACK_PROTO2 DLSTACK_PROTO2_, ...
#define | DLSTACK_PROTO3 DLSTACK_PROTO3_, ...
#define | DLSTACK_PROTO4 DLSTACK_PROTO4_, ...
#define | DLSTACK_PROTO5 DLSTACK_PROTO5_, ...
#define | DLSTACK_PROTO6 DLSTACK_PROTO6_, ...
#define | DLSTACK_PROTO7 DLSTACK_PROTO7_, ...
#define | DLSTACK_PROTO8 DLSTACK_PROTO8_, ...
#define | DLSTACK_PROTO9 DLSTACK_PROTO9_, ...
#define | DLSTACK_PROTO10 DLSTACK_PROTO10_, ...
#define | DLSTACK_PROTO11 DLSTACK_PROTO11_, ...
#define | DLSTACK_PROTO12 DLSTACK_PROTO12_, ...
#define | DLSTACK_PROTO13 DLSTACK_PROTO13_, ...
#define | DLSTACK_PROTO14 DLSTACK_PROTO14_, ...
#define | DLSTACK_PROTO15 DLSTACK_PROTO15_, ...
#define | DLSTACK_PROTO16 DLSTACK_PROTO16_, ...
#define | DLSTACK_PROTO17 DLSTACK_PROTO17_, ...
#define | DLSTACK_PROTO18 DLSTACK_PROTO18_, ...
#define | DLSTACK_PROTO19 DLSTACK_PROTO19_, ...
#define | DLSTACK_PROTO20 DLSTACK_PROTO20_, ...
#define | DLSTACK_ARGS0(stack)
#define | DLSTACK_ARGS1(stack) (stack)[0]
#define | DLSTACK_ARGS2(stack) DLSTACK_ARGS1(stack), (stack)[1]
#define | DLSTACK_ARGS3(stack) DLSTACK_ARGS2(stack), (stack)[2]
#define | DLSTACK_ARGS4(stack) DLSTACK_ARGS3(stack), (stack)[3]
#define | DLSTACK_ARGS5(stack) DLSTACK_ARGS4(stack), (stack)[4]
#define | DLSTACK_ARGS6(stack) DLSTACK_ARGS5(stack), (stack)[5]
#define | DLSTACK_ARGS7(stack) DLSTACK_ARGS6(stack), (stack)[6]
#define | DLSTACK_ARGS8(stack) DLSTACK_ARGS7(stack), (stack)[7]
#define | DLSTACK_ARGS9(stack) DLSTACK_ARGS8(stack), (stack)[8]
#define | DLSTACK_ARGS10(stack) DLSTACK_ARGS9(stack), (stack)[9]
#define | DLSTACK_ARGS11(stack) DLSTACK_ARGS10(stack), (stack)[10]
#define | DLSTACK_ARGS12(stack) DLSTACK_ARGS11(stack), (stack)[11]
#define | DLSTACK_ARGS13(stack) DLSTACK_ARGS12(stack), (stack)[12]
#define | DLSTACK_ARGS14(stack) DLSTACK_ARGS13(stack), (stack)[13]
#define | DLSTACK_ARGS15(stack) DLSTACK_ARGS14(stack), (stack)[14]
#define | DLSTACK_ARGS16(stack) DLSTACK_ARGS15(stack), (stack)[15]
#define | DLSTACK_ARGS17(stack) DLSTACK_ARGS16(stack), (stack)[16]
#define | DLSTACK_ARGS18(stack) DLSTACK_ARGS17(stack), (stack)[17]
#define | DLSTACK_ARGS19(stack) DLSTACK_ARGS18(stack), (stack)[18]
#define | DLSTACK_ARGS20(stack) DLSTACK_ARGS19(stack), (stack)[19]
#define | ALIGN_OF(type) offsetof(struct {char align_c; type align_x;}, align_x)
#define | ALIGN_VOIDP ALIGN_OF(void*)
#define | ALIGN_SHORT ALIGN_OF(short)
#define | ALIGN_CHAR ALIGN_OF(char)
#define | ALIGN_INT ALIGN_OF(int)
#define | ALIGN_LONG ALIGN_OF(long)
#define | ALIGN_FLOAT ALIGN_OF(float)
#define | ALIGN_DOUBLE ALIGN_OF(double)
#define | DLALIGN(ptr, offset, align) ((offset) += ((align) - ((uintptr_t)((char *)(ptr) + (offset))) % (align)) % (align))
#define | DLTYPE_VOID 0
#define | DLTYPE_VOIDP 1
#define | DLTYPE_CHAR 2
#define | DLTYPE_SHORT 3
#define | DLTYPE_INT 4
#define | DLTYPE_LONG 5
#define | DLTYPE_FLOAT 7
#define | DLTYPE_DOUBLE 8
#define | MAX_DLTYPE 9
#define | PTR2NUM(x) (ULONG2NUM((unsigned long)(x)))
#define | NUM2PTR(x) ((void*)(NUM2ULONG(x)))
#define | BOOL2INT(x) (((x) == Qtrue)?1:0)
#define | INT2BOOL(x) ((x)?Qtrue:Qfalse)
#define | CFUNC_CDECL (rbdl_id_cdecl)
#define | CFUNC_STDCALL (rbdl_id_stdcall)
#define | RDL_HANDLE(obj) ((struct dl_handle *)(DATA_PTR(obj)))
#define | RCFUNC_DATA(obj) ((struct cfunc_data *)(DATA_PTR(obj)))
#define | RPTR_DATA(obj) ((struct ptr_data *)(DATA_PTR(obj)))

## Typedefs
typedef void(* | freefunc_t )(void *)

## Functions
VALUE | rb_dlcfunc_new (void(*func)(), int dltype, const char *name, ID calltype)
int | rb_dlcfunc_kind_p (VALUE func)
VALUE | rb_dlptr_new (void *ptr, long size, freefunc_t func)
VALUE | rb_dlptr_new2 (VALUE klass, void *ptr, long size, freefunc_t func)
VALUE | rb_dlptr_malloc (long size, freefunc_t func)

## Variables
VALUE | rb_mDL
VALUE | rb_cDLHandle
VALUE | rb_cDLSymbol
VALUE | rb_eDLError
VALUE | rb_eDLTypeError
ID | rbdl_id_cdecl
ID | rbdl_id_stdcall

## Macro Definition Documentation

#define ALIGN_CHAR ALIGN_OF(char)

Definition at line 141 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_DOUBLE ALIGN_OF(double)

Definition at line 148 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_FLOAT ALIGN_OF(float)

Definition at line 147 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_INT ALIGN_OF(int)

Definition at line 142 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_LONG ALIGN_OF(long)

Definition at line 143 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_OF | ( |  | type | ) | offsetof(struct {char align_c; type align_x;}, align_x)

Definition at line 137 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_SHORT ALIGN_OF(short)

Definition at line 140 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define ALIGN_VOIDP ALIGN_OF(void*)

Definition at line 139 of file dl.h.

Referenced by Init_dl(), and Init_fiddle().

#define BOOL2INT | ( |  | x | ) | (((x) == Qtrue)?1:0)

Definition at line 176 of file dl.h.

#define CFUNC_CDECL (rbdl_id_cdecl)

Definition at line 197 of file dl.h.

Referenced by rb_dlcfunc_call(), rb_dlcfunc_initialize(), rb_dlcfunc_s_allocate(), and rb_dlptr_free_get().

#define CFUNC_STDCALL (rbdl_id_stdcall)

Definition at line 198 of file dl.h.

Referenced by rb_dlcfunc_call().

#define DLALIGN | ( |  | ptr,
|  |  | offset,
|  |  | align
| ) |  | ((offset) += ((align) - ((uintptr_t)((char *)(ptr) + (offset))) % (align)) % (align))

Definition at line 150 of file dl.h.

#define DLSTACK_ARGS | ( |  | stack | ) |

Value:
(stack)[0],(stack)[1],(stack)[2],(stack)[3],(stack)[4],\
(stack)[5],(stack)[6],(stack)[7],(stack)[8],(stack)[9],\
(stack)[10],(stack)[11],(stack)[12],(stack)[13],(stack)[14],\
(stack)[15],(stack)[16],(stack)[17],(stack)[18],(stack)[19]

Definition at line 42 of file dl.h.

#define DLSTACK_ARGS0 | ( |  | stack | ) |

Definition at line 109 of file dl.h.

#define DLSTACK_ARGS1 | ( |  | stack | ) | (stack)[0]

Definition at line 110 of file dl.h.

#define DLSTACK_ARGS10 | ( |  | stack | ) | DLSTACK_ARGS9(stack), (stack)[9]

Definition at line 119 of file dl.h.

#define DLSTACK_ARGS11 | ( |  | stack | ) | DLSTACK_ARGS10(stack), (stack)[10]

Definition at line 120 of file dl.h.

#define DLSTACK_ARGS12 | ( |  | stack | ) | DLSTACK_ARGS11(stack), (stack)[11]

Definition at line 121 of file dl.h.

#define DLSTACK_ARGS13 | ( |  | stack | ) | DLSTACK_ARGS12(stack), (stack)[12]

Definition at line 122 of file dl.h.

#define DLSTACK_ARGS14 | ( |  | stack | ) | DLSTACK_ARGS13(stack), (stack)[13]

Definition at line 123 of file dl.h.

#define DLSTACK_ARGS15 | ( |  | stack | ) | DLSTACK_ARGS14(stack), (stack)[14]

Definition at line 124 of file dl.h.

#define DLSTACK_ARGS16 | ( |  | stack | ) | DLSTACK_ARGS15(stack), (stack)[15]

Definition at line 125 of file dl.h.

#define DLSTACK_ARGS17 | ( |  | stack | ) | DLSTACK_ARGS16(stack), (stack)[16]

Definition at line 126 of file dl.h.

#define DLSTACK_ARGS18 | ( |  | stack | ) | DLSTACK_ARGS17(stack), (stack)[17]

Definition at line 127 of file dl.h.

#define DLSTACK_ARGS19 | ( |  | stack | ) | DLSTACK_ARGS18(stack), (stack)[18]

Definition at line 128 of file dl.h.

#define DLSTACK_ARGS2 | ( |  | stack | ) | DLSTACK_ARGS1(stack), (stack)[1]

Definition at line 111 of file dl.h.

#define DLSTACK_ARGS20 | ( |  | stack | ) | DLSTACK_ARGS19(stack), (stack)[19]

Definition at line 129 of file dl.h.

#define DLSTACK_ARGS3 | ( |  | stack | ) | DLSTACK_ARGS2(stack), (stack)[2]

Definition at line 112 of file dl.h.

#define DLSTACK_ARGS4 | ( |  | stack | ) | DLSTACK_ARGS3(stack), (stack)[3]

Definition at line 113 of file dl.h.

#define DLSTACK_ARGS5 | ( |  | stack | ) | DLSTACK_ARGS4(stack), (stack)[4]

Definition at line 114 of file dl.h.

#define DLSTACK_ARGS6 | ( |  | stack | ) | DLSTACK_ARGS5(stack), (stack)[5]

Definition at line 115 of file dl.h.

#define DLSTACK_ARGS7 | ( |  | stack | ) | DLSTACK_ARGS6(stack), (stack)[6]

Definition at line 116 of file dl.h.

#define DLSTACK_ARGS8 | ( |  | stack | ) | DLSTACK_ARGS7(stack), (stack)[7]

Definition at line 117 of file dl.h.

#define DLSTACK_ARGS9 | ( |  | stack | ) | DLSTACK_ARGS8(stack), (stack)[8]

Definition at line 118 of file dl.h.

#define DLSTACK_PROTO

Value:
DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,\
DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,\
DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,\
DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE,DLSTACK_TYPE
DLSTACK_TYPE
#define DLSTACK_TYPE
Definition: dl.h:35

Definition at line 37 of file dl.h.

#define DLSTACK_PROTO0 void

Definition at line 85 of file dl.h.

#define DLSTACK_PROTO0_ void

Definition at line 48 of file dl.h.

#define DLSTACK_PROTO1 DLSTACK_PROTO1_, ...

Definition at line 86 of file dl.h.

#define DLSTACK_PROTO10 DLSTACK_PROTO10_, ...

Definition at line 96 of file dl.h.

#define DLSTACK_PROTO10_ DLSTACK_PROTO9_, DLSTACK_TYPE

Definition at line 59 of file dl.h.

#define DLSTACK_PROTO11 DLSTACK_PROTO11_, ...

Definition at line 97 of file dl.h.

#define DLSTACK_PROTO11_ DLSTACK_PROTO10_, DLSTACK_TYPE

Definition at line 60 of file dl.h.

#define DLSTACK_PROTO12 DLSTACK_PROTO12_, ...

Definition at line 98 of file dl.h.

#define DLSTACK_PROTO12_ DLSTACK_PROTO11_, DLSTACK_TYPE

Definition at line 61 of file dl.h.

#define DLSTACK_PROTO13 DLSTACK_PROTO13_, ...

Definition at line 99 of file dl.h.

#define DLSTACK_PROTO13_ DLSTACK_PROTO12_, DLSTACK_TYPE

Definition at line 62 of file dl.h.

#define DLSTACK_PROTO14 DLSTACK_PROTO14_, ...

Definition at line 101 of file dl.h.

#define DLSTACK_PROTO14 DLSTACK_PROTO14_, ...

Definition at line 101 of file dl.h.

#define DLSTACK_PROTO14_ DLSTACK_PROTO13_, DLSTACK_TYPE

Definition at line 64 of file dl.h.

#define DLSTACK_PROTO14_ DLSTACK_PROTO13_, DLSTACK_TYPE

Definition at line 64 of file dl.h.

#define DLSTACK_PROTO15 DLSTACK_PROTO15_, ...

Definition at line 102 of file dl.h.

#define DLSTACK_PROTO15_ DLSTACK_PROTO14_, DLSTACK_TYPE

Definition at line 65 of file dl.h.

#define DLSTACK_PROTO16 DLSTACK_PROTO16_, ...

Definition at line 103 of file dl.h.

#define DLSTACK_PROTO16_ DLSTACK_PROTO15_, DLSTACK_TYPE

Definition at line 66 of file dl.h.

#define DLSTACK_PROTO17 DLSTACK_PROTO17_, ...

Definition at line 104 of file dl.h.

#define DLSTACK_PROTO17_ DLSTACK_PROTO16_, DLSTACK_TYPE

Definition at line 67 of file dl.h.

#define DLSTACK_PROTO18 DLSTACK_PROTO18_, ...

Definition at line 105 of file dl.h.

#define DLSTACK_PROTO18_ DLSTACK_PROTO17_, DLSTACK_TYPE

Definition at line 68 of file dl.h.

#define DLSTACK_PROTO19 DLSTACK_PROTO19_, ...

Definition at line 106 of file dl.h.

#define DLSTACK_PROTO19_ DLSTACK_PROTO18_, DLSTACK_TYPE

Definition at line 69 of file dl.h.

#define DLSTACK_PROTO1_ DLSTACK_TYPE

Definition at line 49 of file dl.h.

#define DLSTACK_PROTO2 DLSTACK_PROTO2_, ...

Definition at line 87 of file dl.h.

#define DLSTACK_PROTO20 DLSTACK_PROTO20_, ...

Definition at line 107 of file dl.h.

#define DLSTACK_PROTO20_ DLSTACK_PROTO19_, DLSTACK_TYPE

Definition at line 70 of file dl.h.

#define DLSTACK_PROTO2_ DLSTACK_PROTO1_, DLSTACK_TYPE

Definition at line 50 of file dl.h.

#define DLSTACK_PROTO3 DLSTACK_PROTO3_, ...

Definition at line 88 of file dl.h.

#define DLSTACK_PROTO3_ DLSTACK_PROTO2_, DLSTACK_TYPE

Definition at line 51 of file dl.h.

#define DLSTACK_PROTO4 DLSTACK_PROTO4_, ...

Definition at line 90 of file dl.h.

#define DLSTACK_PROTO4 DLSTACK_PROTO4_, ...

Definition at line 90 of file dl.h.

#define DLSTACK_PROTO4_ DLSTACK_PROTO3_, DLSTACK_TYPE

Definition at line 53 of file dl.h.

#define DLSTACK_PROTO4_ DLSTACK_PROTO3_, DLSTACK_TYPE

Definition at line 53 of file dl.h.

#define DLSTACK_PROTO5 DLSTACK_PROTO5_, ...

Definition at line 91 of file dl.h.

#define DLSTACK_PROTO5_ DLSTACK_PROTO4_, DLSTACK_TYPE

Definition at line 54 of file dl.h.

#define DLSTACK_PROTO6 DLSTACK_PROTO6_, ...

Definition at line 92 of file dl.h.

#define DLSTACK_PROTO6_ DLSTACK_PROTO5_, DLSTACK_TYPE

Definition at line 55 of file dl.h.

#define DLSTACK_PROTO7 DLSTACK_PROTO7_, ...

Definition at line 93 of file dl.h.

#define DLSTACK_PROTO7_ DLSTACK_PROTO6_, DLSTACK_TYPE

Definition at line 56 of file dl.h.

#define DLSTACK_PROTO8 DLSTACK_PROTO8_, ...

Definition at line 94 of file dl.h.

#define DLSTACK_PROTO8_ DLSTACK_PROTO7_, DLSTACK_TYPE

Definition at line 57 of file dl.h.

#define DLSTACK_PROTO9 DLSTACK_PROTO9_, ...

Definition at line 95 of file dl.h.

#define DLSTACK_PROTO9_ DLSTACK_PROTO8_, DLSTACK_TYPE

Definition at line 58 of file dl.h.

#define DLSTACK_SIZE (20)

Definition at line 36 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLSTACK_TYPE SIGNED_VALUE

Definition at line 35 of file dl.h.

Referenced by rb_dlcfunc_call().

#define DLTYPE_CHAR 2

Definition at line 156 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLTYPE_DOUBLE 8

Definition at line 164 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLTYPE_FLOAT 7

Definition at line 163 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLTYPE_INT 4

Definition at line 158 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLTYPE_LONG 5

Definition at line 159 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLTYPE_SHORT 3

Definition at line 157 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define DLTYPE_VOID 0

Definition at line 154 of file dl.h.

Referenced by Init_dl(), rb_dlcfunc_call(), rb_dlcfunc_initialize(), and rb_dlptr_free_get().

#define DLTYPE_VOIDP 1

Definition at line 155 of file dl.h.

Referenced by Init_dl(), and rb_dlcfunc_call().

#define FUNC_CDECL | ( |  | x | ) | x

Definition at line 7 of file dl.h.

#define INT2BOOL | ( |  | x | ) | ((x)?Qtrue:Qfalse)

Definition at line 177 of file dl.h.

#define MAX_CALLBACK 5

Definition at line 34 of file dl.h.

Referenced by Init_dl().

#define MAX_DLTYPE 9

Definition at line 165 of file dl.h.

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

Definition at line 169 of file dl.h.

Referenced by callback(), function_call(), get_freefunc(), rb_dl_free(), rb_dl_ptr2value(), rb_dl_realloc(), rb_dlcfunc_initialize(), rb_dlcfunc_set_ptr(), rb_dlptr_aset(), rb_dlptr_initialize(), rb_dlptr_s_to_ptr(), rb_fiddle_free(), rb_fiddle_ptr2value(), rb_fiddle_ptr_aset(), rb_fiddle_ptr_initialize(), rb_fiddle_ptr_s_to_ptr(), rb_fiddle_realloc(), and value_to_generic().

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

Definition at line 168 of file dl.h.

Referenced by callback(), dlhandle_sym(), fiddle_handle_sym(), generic_to_value(), Init_dl(), Init_fiddle(), rb_dl_malloc(), rb_dl_realloc(), rb_dl_value2ptr(), rb_dlcfunc_ptr(), rb_dlcfunc_to_i(), rb_dlhandle_to_i(), rb_dlptr_to_i(), rb_fiddle_handle_to_i(), rb_fiddle_malloc(), rb_fiddle_ptr_free_get(), rb_fiddle_ptr_to_i(), rb_fiddle_realloc(), rb_fiddle_value2ptr(), and to_i().

#define RCFUNC_DATA | ( |  | obj | ) | ((struct cfunc_data *)(DATA_PTR(obj)))

Definition at line 208 of file dl.h.

Referenced by get_freefunc().

#define RDL_HANDLE | ( |  | obj | ) | ((struct dl_handle *)(DATA_PTR(obj)))

Definition at line 207 of file dl.h.

#define RPTR_DATA | ( |  | obj | ) | ((struct ptr_data *)(DATA_PTR(obj)))

Definition at line 209 of file dl.h.

Referenced by rb_dlptr_minus(), rb_dlptr_plus(), rb_dlptr_s_malloc(), rb_dlptr_s_to_ptr(), rb_dlptr_size_get(), and rb_dlptr_size_set().

## Typedef Documentation

typedef void(* freefunc_t)(void *)

Definition at line 179 of file dl.h.

## Function Documentation

int rb_dlcfunc_kind_p | ( | VALUE | func | ) |

Definition at line 140 of file cfunc.c.

References rb_typeddata_is_kind_of().

Referenced by get_freefunc().

VALUE rb_dlcfunc_new | ( | void(*)() | func,
|  | int | dltype,
|  | const char * | name,
|  | ID | calltype
| ) |  |

Definition at line 84 of file cfunc.c.

References cfunc_data::calltype, data, func, cfunc_data::name, NULL, cfunc_data::ptr, Qnil, rb_cDLCFunc, rb_secure(), strdup, type, cfunc_data::type, TypedData_Make_Struct, and val.

Referenced by rb_dlptr_free_get().

VALUE rb_dlptr_malloc | ( | long | size,
|  | freefunc_t | func
| ) |  |

Definition at line 89 of file cptr.c.

References memset(), ptr, rb_dlptr_new(), rb_secure(), and ruby_xmalloc().

Referenced by rb_dlptr_s_malloc().

VALUE rb_dlptr_new | ( | void * | ptr,
|  | long | size,
|  | freefunc_t | func
| ) |  |

Definition at line 83 of file cptr.c.

References rb_cDLCPtr, and rb_dlptr_new2().

Referenced by Init_dlptr(), rb_dlptr_malloc(), rb_dlptr_minus(), rb_dlptr_plus(), rb_dlptr_ptr(), rb_dlptr_ref(), and rb_dlptr_s_to_ptr().

VALUE rb_dlptr_new2 | ( | VALUE | klass,
|  | void * | ptr,
|  | long | size,
|  | freefunc_t | func
| ) |  |

Definition at line 67 of file cptr.c.

References data, ptr_data::free, func, OBJ_TAINT, ptr_data::ptr, ptr, rb_secure(), size, ptr_data::size, TypedData_Make_Struct, and val.

Referenced by rb_dlptr_new().

## Variable Documentation

VALUE rb_cDLHandle

Definition at line 8 of file handle.c.

Referenced by Init_dlhandle(), predefined_dlhandle(), rb_dl_dlopen(), and rb_dlhandle_s_allocate().

VALUE rb_cDLSymbol

VALUE rb_eDLError

Definition at line 14 of file dl.c.

Referenced by dlhandle_sym(), Init_dl(), rb_dlcfunc_call(), rb_dlhandle_close(), rb_dlhandle_initialize(), rb_dlhandle_sym(), rb_dlptr_aref(), rb_dlptr_aset(), and rb_dlptr_s_to_ptr().

VALUE rb_eDLTypeError

Definition at line 15 of file dl.c.

Referenced by Init_dl(), and rb_dlcfunc_call().

VALUE rb_mDL

Definition at line 13 of file dl.c.

Referenced by Init_dl(), Init_dlcfunc(), Init_dlhandle(), and Init_dlptr().

ID rbdl_id_cdecl

Definition at line 17 of file dl.c.

Referenced by Init_dl().

ID rbdl_id_stdcall

Definition at line 18 of file dl.c.

Referenced by Init_dl().