ext/fiddle/handle.c File Reference

#include <ruby.h>
#include <fiddle.h>

Go to the source code of this file.

Data Structures

struct  dl_handle

Defines

#define RTLD_NEXT   NULL
#define RTLD_DEFAULT   NULL
#define CHECK_DLERROR

Functions

static void fiddle_handle_free (void *ptr)
static size_t fiddle_handle_memsize (const void *ptr)
static VALUE rb_fiddle_handle_close (VALUE self)
static VALUE rb_fiddle_handle_s_allocate (VALUE klass)
static VALUE predefined_fiddle_handle (void *handle)
static VALUE rb_fiddle_handle_initialize (int argc, VALUE argv[], VALUE self)
static VALUE rb_fiddle_handle_enable_close (VALUE self)
static VALUE rb_fiddle_handle_disable_close (VALUE self)
static VALUE rb_fiddle_handle_close_enabled_p (VALUE self)
static VALUE rb_fiddle_handle_to_i (VALUE self)
static VALUE fiddle_handle_sym (void *handle, const char *symbol)
static VALUE rb_fiddle_handle_sym (VALUE self, VALUE sym)
static VALUE rb_fiddle_handle_s_sym (VALUE self, VALUE sym)
void Init_fiddle_handle (void)

Variables

VALUE rb_cHandle
static const rb_data_type_t fiddle_handle_data_type


Define Documentation

#define CHECK_DLERROR

#define RTLD_DEFAULT   NULL

Definition at line 292 of file handle.c.

#define RTLD_NEXT   NULL

Definition at line 289 of file handle.c.


Function Documentation

static void fiddle_handle_free ( void *  ptr  )  [static]

Definition at line 37 of file handle.c.

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

static size_t fiddle_handle_memsize ( const void *  ptr  )  [static]

Definition at line 47 of file handle.c.

static VALUE fiddle_handle_sym ( void *  handle,
const char *  symbol 
) [static]

Definition at line 312 of file handle.c.

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

Referenced by rb_fiddle_handle_s_sym(), and rb_fiddle_handle_sym().

void Init_fiddle_handle ( void   ) 

Definition at line 377 of file handle.c.

References INT2NUM, mFiddle, predefined_fiddle_handle(), rb_cHandle, rb_cObject, rb_define_alloc_func(), rb_define_class_under(), rb_define_const(), rb_define_method(), rb_define_singleton_method(), rb_fiddle_handle_close(), rb_fiddle_handle_close_enabled_p(), rb_fiddle_handle_disable_close(), rb_fiddle_handle_enable_close(), rb_fiddle_handle_initialize(), rb_fiddle_handle_s_allocate(), rb_fiddle_handle_s_sym(), rb_fiddle_handle_sym(), rb_fiddle_handle_to_i(), RTLD_DEFAULT, and RTLD_NEXT.

Referenced by Init_fiddle().

static VALUE predefined_fiddle_handle ( void *  handle  )  [static]

Definition at line 104 of file handle.c.

References DATA_PTR, OBJ_FREEZE, dl_handle::open, dl_handle::ptr, rb_cHandle, rb_fiddle_handle_s_allocate(), and VALUE.

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_close ( VALUE  self  )  [static]

Definition at line 65 of file handle.c.

References fiddle_handle_data_type, INT2NUM, dl_handle::open, dl_handle::ptr, rb_eFiddleError, rb_raise(), TypedData_Get_Struct, and UNREACHABLE.

Referenced by Init_fiddle_handle(), and rb_fiddle_handle_initialize().

static VALUE rb_fiddle_handle_close_enabled_p ( VALUE  self  )  [static]

Definition at line 242 of file handle.c.

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

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_disable_close ( VALUE  self  )  [static]

Definition at line 225 of file handle.c.

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

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_enable_close ( VALUE  self  )  [static]

Definition at line 210 of file handle.c.

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

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_initialize ( int  argc,
VALUE  argv[],
VALUE  self 
) [static]

Definition at line 131 of file handle.c.

References dl_handle::enable_close, err, fiddle_handle_data_type, NIL_P, NULL, NUM2INT, dl_handle::open, dl_handle::ptr, Qnil, rb_block_given_p(), rb_bug(), rb_eFiddleError, rb_ensure(), rb_fiddle_handle_close(), rb_raise(), rb_scan_args(), rb_secure(), rb_yield(), STRCASECMP, StringValuePtr, TypedData_Get_Struct, and VALUE.

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_s_allocate ( VALUE  klass  )  [static]

Definition at line 90 of file handle.c.

References dl_handle::enable_close, fiddle_handle_data_type, dl_handle::open, dl_handle::ptr, rb_cHandle, TypedData_Make_Struct, and VALUE.

Referenced by Init_fiddle_handle(), and predefined_fiddle_handle().

static VALUE rb_fiddle_handle_s_sym ( VALUE  self,
VALUE  sym 
) [static]

Definition at line 306 of file handle.c.

References fiddle_handle_sym(), RTLD_NEXT, and StringValueCStr.

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_sym ( VALUE  self,
VALUE  sym 
) [static]

Definition at line 276 of file handle.c.

References fiddle_handle_data_type, fiddle_handle_sym(), dl_handle::open, dl_handle::ptr, rb_eFiddleError, rb_raise(), StringValueCStr, and TypedData_Get_Struct.

Referenced by Init_fiddle_handle().

static VALUE rb_fiddle_handle_to_i ( VALUE  self  )  [static]

Definition at line 258 of file handle.c.

References fiddle_handle_data_type, PTR2NUM, and TypedData_Get_Struct.

Referenced by Init_fiddle_handle().


Variable Documentation

const rb_data_type_t fiddle_handle_data_type [static]

Initial value:

 {
    "fiddle/handle",
    {0, fiddle_handle_free, fiddle_handle_memsize,},
}

Definition at line 52 of file handle.c.

Referenced by rb_fiddle_handle_close(), rb_fiddle_handle_close_enabled_p(), rb_fiddle_handle_disable_close(), rb_fiddle_handle_enable_close(), rb_fiddle_handle_initialize(), rb_fiddle_handle_s_allocate(), rb_fiddle_handle_sym(), and rb_fiddle_handle_to_i().

VALUE rb_cHandle

Definition at line 4 of file handle.c.

Referenced by Init_fiddle_handle(), predefined_fiddle_handle(), and rb_fiddle_handle_s_allocate().


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7