Ruby  1.9.3p448(2013-06-27revision41675)
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 278 of file handle.c.

Referenced by Init_dlhandle().

#define RTLD_NEXT   NULL

Definition at line 275 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, and dl_handle::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 297 of file handle.c.

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

Referenced by rb_dlhandle_s_sym(), and rb_dlhandle_sym().

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

Definition at line 98 of file handle.c.

References DATA_PTR, 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)
static VALUE rb_dlhandle_close_enabled_p ( VALUE  self)
static

Definition at line 227 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 211 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 196 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 
)
VALUE rb_dlhandle_s_allocate ( VALUE  klass)
VALUE rb_dlhandle_s_sym ( VALUE  self,
VALUE  sym 
)

Definition at line 291 of file handle.c.

References dlhandle_sym(), RTLD_NEXT, and StringValueCStr.

Referenced by Init_dlhandle().

VALUE rb_dlhandle_sym ( VALUE  self,
VALUE  sym 
)
VALUE rb_dlhandle_to_i ( VALUE  self)

Definition at line 243 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",
}
static void dlhandle_free(void *ptr)
Definition: handle.c:35
static size_t dlhandle_memsize(const void *ptr)
Definition: handle.c:44

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