Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Macros | Functions | Variables
handle.c File Reference
`#include <ruby.h>`
`#include "dl.h"`
Include dependency graph for handle.c:

Go to the source code of this file.

## Macros
#define | RTLD_NEXT NULL
#define | RTLD_DEFAULT NULL
#define | CHECK_DLERROR

## Functions
static void | dlhandle_free (void *ptr)
static size_t | dlhandle_memsize (const void *ptr)
VALUE | rb_dlhandle_close (VALUE self)
VALUE | rb_dlhandle_s_allocate (VALUE klass)
static VALUE | predefined_dlhandle (void *handle)
VALUE | rb_dlhandle_initialize (int argc, VALUE argv[], VALUE self)
VALUE | rb_dlhandle_enable_close (VALUE self)
VALUE | rb_dlhandle_disable_close (VALUE self)
static VALUE | rb_dlhandle_close_enabled_p (VALUE self)
VALUE | rb_dlhandle_to_i (VALUE self)
static VALUE | dlhandle_sym (void *handle, const char *symbol)
VALUE | rb_dlhandle_sym (VALUE self, VALUE sym)
VALUE | rb_dlhandle_s_sym (VALUE self, VALUE sym)
void | Init_dlhandle (void)

## Variables
VALUE | rb_cDLHandle
static const rb_data_type_t | dlhandle_data_type

## Macro Definition Documentation

#define CHECK_DLERROR

Referenced by dlhandle_sym().

#define RTLD_DEFAULT NULL

Definition at line 280 of file handle.c.

Referenced by Init_dlhandle().

#define RTLD_NEXT NULL

Definition at line 277 of file handle.c.

Referenced by Init_dlhandle(), and rb_dlhandle_s_sym().

## Function Documentation

static void dlhandle_free | ( | void * | ptr | ) |
| static

Definition at line 35 of file handle.c.

References dl_handle::enable_close, dl_handle::open, dl_handle::ptr, and ptr.

static size_t dlhandle_memsize | ( | const void * | ptr | ) |
| static

Definition at line 44 of file handle.c.

static VALUE dlhandle_sym | ( | void * | handle,
|  | const char * | symbol
| ) |  |
| static

Definition at line 299 of file handle.c.

References CHECK_DLERROR, err, func, i, int, len, memcpy(), PTR2NUM, rb_eDLError, rb_raise(), rb_secure(), strcpy(), strlen(), void, xfree, xmalloc, and xrealloc.

Referenced by rb_dlhandle_s_sym(), and rb_dlhandle_sym().

void Init_dlhandle | ( | void |  | ) |

Definition at line 364 of file handle.c.

References predefined_dlhandle(), rb_cDLHandle, rb_cObject, rb_define_alloc_func(), rb_define_class_under(), rb_define_const(), rb_define_method(), rb_define_singleton_method(), rb_dlhandle_close(), rb_dlhandle_close_enabled_p(), rb_dlhandle_disable_close(), rb_dlhandle_enable_close(), rb_dlhandle_initialize(), rb_dlhandle_s_allocate(), rb_dlhandle_s_sym(), rb_dlhandle_sym(), rb_dlhandle_to_i(), rb_mDL, RTLD_DEFAULT, and RTLD_NEXT.

Referenced by Init_dl().

static VALUE predefined_dlhandle | ( | void * | handle | ) |
| static

Definition at line 100 of file handle.c.

References DATA_PTR(), obj, OBJ_FREEZE, dl_handle::open, dl_handle::ptr, rb_cDLHandle, and rb_dlhandle_s_allocate().

Referenced by Init_dlhandle().

VALUE rb_dlhandle_close | ( | VALUE | self | ) |

Definition at line 61 of file handle.c.

References dlhandle_data_type, INT2NUM, dl_handle::open, dl_handle::ptr, rb_eDLError, rb_raise(), ret, TypedData_Get_Struct, and UNREACHABLE.

Referenced by Init_dlhandle(), and rb_dlhandle_initialize().

static VALUE rb_dlhandle_close_enabled_p | ( | VALUE | self | ) |
| static

Definition at line 229 of file handle.c.

References dlhandle_data_type, dl_handle::enable_close, Qfalse, Qtrue, and TypedData_Get_Struct.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_disable_close | ( | VALUE | self | ) |

Definition at line 213 of file handle.c.

References dlhandle_data_type, dl_handle::enable_close, Qnil, and TypedData_Get_Struct.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_enable_close | ( | VALUE | self | ) |

Definition at line 198 of file handle.c.

References dlhandle_data_type, dl_handle::enable_close, Qnil, and TypedData_Get_Struct.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_initialize | ( | int | argc,
|  | VALUE | argv[],
|  | VALUE | self
| ) |  |

Definition at line 119 of file handle.c.

References dlhandle_data_type, dl_handle::enable_close, err, flag, NIL_P(), NULL, NUM2INT, dl_handle::open, dl_handle::ptr, ptr, Qnil, rb_block_given_p(), rb_bug(), rb_dlhandle_close(), rb_eDLError, rb_ensure(), rb_raise(), rb_scan_args(), rb_secure(), rb_yield(), STRCASECMP, StringValuePtr, and TypedData_Get_Struct.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_s_allocate | ( | VALUE | klass | ) |

Definition at line 86 of file handle.c.

References dlhandle_data_type, dl_handle::enable_close, obj, dl_handle::open, dl_handle::ptr, rb_cDLHandle, and TypedData_Make_Struct.

Referenced by Init_dlhandle(), and predefined_dlhandle().

VALUE rb_dlhandle_s_sym | ( | VALUE | self,
|  | VALUE | sym
| ) |  |

Definition at line 293 of file handle.c.

References dlhandle_sym(), RTLD_NEXT, and StringValueCStr.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_sym | ( | VALUE | self,
|  | VALUE | sym
| ) |  |

Definition at line 264 of file handle.c.

References dlhandle_data_type, dlhandle_sym(), dl_handle::open, dl_handle::ptr, rb_eDLError, rb_raise(), StringValueCStr, and TypedData_Get_Struct.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_to_i | ( | VALUE | self | ) |

Definition at line 245 of file handle.c.

References dlhandle_data_type, PTR2NUM, and TypedData_Get_Struct.

Referenced by Init_dlhandle().

## Variable Documentation

const rb_data_type_t dlhandle_data_type
| static

Initial value:
= {
"dl/handle",
{0, dlhandle_free, dlhandle_memsize,},
}
dlhandle_memsize
static size_t dlhandle_memsize(const void *ptr)
Definition: handle.c:44
dlhandle_free
static void dlhandle_free(void *ptr)
Definition: handle.c:35

Definition at line 49 of file handle.c.

Referenced by rb_dlhandle_close(), rb_dlhandle_close_enabled_p(), rb_dlhandle_disable_close(), rb_dlhandle_enable_close(), rb_dlhandle_initialize(), rb_dlhandle_s_allocate(), rb_dlhandle_sym(), and rb_dlhandle_to_i().

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().