Ruby  2.5.0dev(2017-10-22revision60238)
Data Structures | Macros | Functions | Variables
function.c File Reference
#include <fiddle.h>
#include <ruby/thread.h>

Go to the source code of this file.

Data Structures

struct  nogvl_ffi_call_args
 

Macros

#define RB_OBJ_CLASSNAME(obj)   rb_obj_class(obj)
 
#define RB_OBJ_STRING(obj)   (obj)
 
#define MAX_ARGS   (SIZE_MAX / (sizeof(void *) + sizeof(fiddle_generic)) - 1)
 
#define Check_Max_Args(name, len)   Check_Max_Args_(name, len, "")
 
#define Check_Max_Args_Long(name, len)   Check_Max_Args_(name, len, "l")
 
#define Check_Max_Args_(name, len, fmt)
 

Functions

VALUE rb_fiddle_new_function (VALUE address, VALUE arg_types, VALUE ret_type)
 
void Init_fiddle_function (void)
 

Variables

VALUE cFiddleFunction
 
const rb_data_type_t function_data_type
 

Macro Definition Documentation

◆ Check_Max_Args

#define Check_Max_Args (   name,
  len 
)    Check_Max_Args_(name, len, "")

Definition at line 17 of file function.c.

◆ Check_Max_Args_

#define Check_Max_Args_ (   name,
  len,
  fmt 
)
Value:
if ((size_t)(len) < MAX_ARGS) { \
/* OK */ \
} \
else { \
rb_raise(rb_eTypeError, \
name" is so large that it can cause integer overflow (%"fmt"d)", \
(len)); \
}
#define MAX_ARGS
Definition: function.c:15
VALUE rb_eTypeError
Definition: error.c:801
register unsigned int len
Definition: zonetab.h:51
const char * name
Definition: nkf.c:208

Definition at line 21 of file function.c.

◆ Check_Max_Args_Long

#define Check_Max_Args_Long (   name,
  len 
)    Check_Max_Args_(name, len, "l")

Definition at line 19 of file function.c.

◆ MAX_ARGS

#define MAX_ARGS   (SIZE_MAX / (sizeof(void *) + sizeof(fiddle_generic)) - 1)

Definition at line 15 of file function.c.

◆ RB_OBJ_CLASSNAME

#define RB_OBJ_CLASSNAME (   obj)    rb_obj_class(obj)

Definition at line 5 of file function.c.

◆ RB_OBJ_STRING

#define RB_OBJ_STRING (   obj)    (obj)

Definition at line 6 of file function.c.

Function Documentation

◆ Init_fiddle_function()

void Init_fiddle_function ( void  )

◆ rb_fiddle_new_function()

VALUE rb_fiddle_new_function ( VALUE  address,
VALUE  arg_types,
VALUE  ret_type 
)

Definition at line 67 of file function.c.

References argv, cFiddleFunction, and rb_class_new_instance().

Variable Documentation

◆ cFiddleFunction

VALUE cFiddleFunction

Definition at line 13 of file function.c.

Referenced by Init_fiddle_function(), and rb_fiddle_new_function().

◆ function_data_type

const rb_data_type_t function_data_type
Initial value:
= {
"fiddle/function",
{0, deallocate, function_memsize,},
}

Definition at line 53 of file function.c.