Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

ruby.h File Reference


Detailed Description

Definition in file ruby.h.

#include "config.h"
#include "defines.h"
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <stdio.h>
#include <alloca.h>
#include <limits.h>
#include "intern.h"
#include "missing.h"

Go to the source code of this file.

Data Structures

struct  RArray
struct  RBasic
struct  RBignum
struct  RClass
struct  RData
struct  RFile
struct  RFloat
struct  RHash
struct  RObject
struct  RRegexp
struct  RString
struct  RStruct

C Data to Fixnum or Bignum Coversion Routines

#define INT2FIX(i)   ((VALUE)(((long)(i))<<1 | FIXNUM_FLAG))
#define LONG2FIX(i)   INT2FIX(i)
#define rb_fix_new(v)   INT2FIX(v)
#define INT2NUM(v)   rb_int2inum(v)
#define LONG2NUM(v)   INT2NUM(v)
#define rb_int_new(v)   rb_int2inum(v)
#define UINT2NUM(v)   rb_uint2inum(v)
#define ULONG2NUM(v)   UINT2NUM(v)
#define rb_uint_new(v)   rb_uint2inum(v)
#define LL2NUM(v)   rb_ll2inum(v)
#define ULL2NUM(v)   rb_ull2inum(v)
#define OFFT2NUM(v)   LL2NUM(v)
#define FIX2LONG(x)   RSHIFT((long)x,1)
#define FIX2ULONG(x)   (((unsigned long)(x))>>1)
#define FIXNUM_P(f)   (((long)(f))&FIXNUM_FLAG)
#define POSFIXABLE(f)   ((f) <= FIXNUM_MAX)
#define NEGFIXABLE(f)   ((f) >= FIXNUM_MIN)
#define FIXABLE(f)   (POSFIXABLE(f) && NEGFIXABLE(f))
VALUE rb_int2inum (long)
VALUE rb_uint2inum (unsigned long)
VALUE rb_ll2inum (LONG_LONG)
VALUE rb_ull2inum (unsigned LONG_LONG)

Symbol / ID Coversion Macros

#define SYMBOL_FLAG   0x0e
#define SYMBOL_P(x)   (((VALUE)(x)&0xff)==SYMBOL_FLAG)
#define ID2SYM(x)   ((VALUE)(((long)(x))<<8|SYMBOL_FLAG))
#define SYM2ID(x)   RSHIFT((long)x,8)

Special Contants

Non-zero and non-fixnum constants.

#define Qfalse   0
#define Qtrue   2
#define Qnil   4
#define Qundef   6

Ruby Built-In Types

#define T_NONE   0x00
#define T_NIL   0x01
#define T_OBJECT   0x02
#define T_CLASS   0x03
#define T_ICLASS   0x04
#define T_MODULE   0x05
#define T_FLOAT   0x06
#define T_STRING   0x07
#define T_REGEXP   0x08
#define T_ARRAY   0x09
#define T_FIXNUM   0x0a
#define T_HASH   0x0b
#define T_STRUCT   0x0c
#define T_BIGNUM   0x0d
#define T_FILE   0x0e
#define T_TRUE   0x20
#define T_FALSE   0x21
#define T_DATA   0x22
#define T_MATCH   0x23
#define T_SYMBOL   0x24
#define T_BLKTAG   0x3b
#define T_UNDEF   0x3c
#define T_VARMAP   0x3d
#define T_SCOPE   0x3e
#define T_NODE   0x3f
#define T_MASK   0x3f

String Conversion Routines

#define StringValue(v)   rb_string_value(&(v))
#define StringValuePtr(v)   rb_string_value_ptr(&(v))
#define StringValueCStr(v)   rb_string_value_cstr(&(v))
#define SafeStringValue(v)
#define Check_SafeStr(v)   rb_check_safe_str((VALUE)(v))
VALUE rb_str_to_str (VALUE)
VALUE rb_string_value (volatile VALUE *)
char * rb_string_value_ptr (volatile VALUE *)
char * rb_string_value_cstr (volatile VALUE *)
void rb_check_safe_obj (VALUE)
void rb_check_safe_str (VALUE)

Fixnum or Bignum to C Data Coversion Routines

#define NUM2LONG(x)   (FIXNUM_P(x)?FIX2LONG(x):rb_num2long((VALUE)x))
#define NUM2ULONG(x)   rb_num2ulong((VALUE)x)
#define NUM2INT(x)   ((int)NUM2LONG(x))
#define NUM2UINT(x)   ((unsigned int)NUM2ULONG(x))
#define FIX2INT(x)   ((int)FIX2LONG(x))
#define FIX2UINT(x)   ((unsigned int)FIX2ULONG(x))
#define NUM2LL(x)   (FIXNUM_P(x)?FIX2LONG(x):rb_num2ll((VALUE)x))
#define NUM2OFFT(x)   ((off_t)NUM2LL(x))
long rb_num2long (VALUE)
unsigned long rb_num2ulong (VALUE)
LONG_LONG rb_num2ll (VALUE)
unsigned LONG_LONG rb_num2ull (VALUE)

Double Conversion Routines

#define NUM2DBL(x)   rb_num2dbl((VALUE)(x))
double rb_num2dbl (VALUE)

Character Conversion Routines

#define NUM2CHR(x)
#define CHR2FIX(x)   INT2FIX((long)((x)&0xff))

Ruby Cast Macros

#define R_CAST(st)   (struct st*)
#define RBASIC(obj)   (R_CAST(RBasic)(obj))
#define ROBJECT(obj)   (R_CAST(RObject)(obj))
#define RCLASS(obj)   (R_CAST(RClass)(obj))
#define RMODULE(obj)   RCLASS(obj)
#define RFLOAT(obj)   (R_CAST(RFloat)(obj))
#define RSTRING(obj)   (R_CAST(RString)(obj))
#define RREGEXP(obj)   (R_CAST(RRegexp)(obj))
#define RARRAY(obj)   (R_CAST(RArray)(obj))
#define RHASH(obj)   (R_CAST(RHash)(obj))
#define RDATA(obj)   (R_CAST(RData)(obj))
#define RSTRUCT(obj)   (R_CAST(RStruct)(obj))
#define RBIGNUM(obj)   (R_CAST(RBignum)(obj))
#define RFILE(obj)   (R_CAST(RFile)(obj))

Freeze Macros

#define OBJ_FROZEN(x)   FL_TEST((x), FL_FREEZE)
#define OBJ_FREEZE(x)   FL_SET((x), FL_FREEZE)

Memory Functions

#define ALLOC_N(type, n)   (type*)xmalloc(sizeof(type)*(n))
#define ALLOC(type)   (type*)xmalloc(sizeof(type))
#define REALLOC_N(var, type, n)   (var)=(type*)xrealloc((char*)(var),sizeof(type)*(n))
#define ALLOCA_N(type, n)   (type*)alloca(sizeof(type)*(n))
#define MEMZERO(p, type, n)   memset((p), 0, sizeof(type)*(n))
#define MEMCPY(p1, p2, type, n)   memcpy((p1), (p2), sizeof(type)*(n))
#define MEMMOVE(p1, p2, type, n)   memmove((p1), (p2), sizeof(type)*(n))
#define MEMCMP(p1, p2, type, n)   memcmp((p1), (p2), sizeof(type)*(n))

Ruby Modules

RUBY_EXTERN VALUE rb_mKernel
RUBY_EXTERN VALUE rb_mComparable
RUBY_EXTERN VALUE rb_mEnumerable
RUBY_EXTERN VALUE rb_mPrecision
RUBY_EXTERN VALUE rb_mErrno
RUBY_EXTERN VALUE rb_mFileTest
RUBY_EXTERN VALUE rb_mGC
RUBY_EXTERN VALUE rb_mMath
RUBY_EXTERN VALUE rb_mProcess

Ruby Classes

RUBY_EXTERN VALUE rb_cObject
RUBY_EXTERN VALUE rb_cArray
RUBY_EXTERN VALUE rb_cBignum
RUBY_EXTERN VALUE rb_cClass
RUBY_EXTERN VALUE rb_cDir
RUBY_EXTERN VALUE rb_cData
RUBY_EXTERN VALUE rb_cFalseClass
RUBY_EXTERN VALUE rb_cFile
RUBY_EXTERN VALUE rb_cFixnum
RUBY_EXTERN VALUE rb_cFloat
RUBY_EXTERN VALUE rb_cHash
RUBY_EXTERN VALUE rb_cInteger
RUBY_EXTERN VALUE rb_cIO
RUBY_EXTERN VALUE rb_cModule
RUBY_EXTERN VALUE rb_cNilClass
RUBY_EXTERN VALUE rb_cNumeric
RUBY_EXTERN VALUE rb_cProc
RUBY_EXTERN VALUE rb_cRange
RUBY_EXTERN VALUE rb_cRegexp
RUBY_EXTERN VALUE rb_cString
RUBY_EXTERN VALUE rb_cSymbol
RUBY_EXTERN VALUE rb_cThread
RUBY_EXTERN VALUE rb_cTime
RUBY_EXTERN VALUE rb_cTrueClass
RUBY_EXTERN VALUE rb_cStruct

Ruby Exceptions

RUBY_EXTERN VALUE rb_eException
RUBY_EXTERN VALUE rb_eStandardError
RUBY_EXTERN VALUE rb_eSystemExit
RUBY_EXTERN VALUE rb_eInterrupt
RUBY_EXTERN VALUE rb_eSignal
RUBY_EXTERN VALUE rb_eFatal
RUBY_EXTERN VALUE rb_eArgError
RUBY_EXTERN VALUE rb_eEOFError
RUBY_EXTERN VALUE rb_eIndexError
RUBY_EXTERN VALUE rb_eRangeError
RUBY_EXTERN VALUE rb_eIOError
RUBY_EXTERN VALUE rb_eRuntimeError
RUBY_EXTERN VALUE rb_eSecurityError
RUBY_EXTERN VALUE rb_eSystemCallError
RUBY_EXTERN VALUE rb_eTypeError
RUBY_EXTERN VALUE rb_eZeroDivError
RUBY_EXTERN VALUE rb_eNotImpError
RUBY_EXTERN VALUE rb_eNoMemError
RUBY_EXTERN VALUE rb_eNoMethodError
RUBY_EXTERN VALUE rb_eFloatDomainError
RUBY_EXTERN VALUE rb_eScriptError
RUBY_EXTERN VALUE rb_eNameError
RUBY_EXTERN VALUE rb_eSyntaxError
RUBY_EXTERN VALUE rb_eLoadError

Other Constants

RUBY_EXTERN VALUE rb_stdin
RUBY_EXTERN VALUE rb_stdout
RUBY_EXTERN VALUE rb_stderr
RUBY_EXTERN VALUE ruby_errinfo

Defines

#define ISASCII(c)   isascii((int)(unsigned char)(c))
#define ISPRINT(c)   (ISASCII(c) && isprint((int)(unsigned char)(c)))
#define ISSPACE(c)   (ISASCII(c) && isspace((int)(unsigned char)(c)))
#define ISUPPER(c)   (ISASCII(c) && isupper((int)(unsigned char)(c)))
#define ISLOWER(c)   (ISASCII(c) && islower((int)(unsigned char)(c)))
#define ISALNUM(c)   (ISASCII(c) && isalnum((int)(unsigned char)(c)))
#define ISALPHA(c)   (ISASCII(c) && isalpha((int)(unsigned char)(c)))
#define ISDIGIT(c)   (ISASCII(c) && isdigit((int)(unsigned char)(c)))
#define ISXDIGIT(c)   (ISASCII(c) && isxdigit((int)(unsigned char)(c)))
#define NORETURN_STYLE_NEW   1
#define LONG_MIN   (-LONG_MAX-1)
#define CHAR_BIT   8
#define LLONG_MAX   9223372036854775807LL
#define LLONG_MIN   (-LLONG_MAX-1)
#define FIXNUM_MAX   (LONG_MAX>>1)
#define FIXNUM_MIN   RSHIFT((long)LONG_MIN,1)
#define FIXNUM_FLAG   0x01
#define IMMEDIATE_MASK   0x03
#define IMMEDIATE_P(x)   ((VALUE)(x) & IMMEDIATE_MASK)
#define RTEST(v)   (((VALUE)(v) & ~Qnil) != 0)
#define NIL_P(v)   ((VALUE)(v) == Qnil)
#define CLASS_OF(v)   rb_class_of((VALUE)(v))
#define BUILTIN_TYPE(x)   (((struct RBasic*)(x))->flags & T_MASK)
#define TYPE(x)   rb_type((VALUE)(x))
#define Check_Type(v, t)   rb_check_type((VALUE)(v),t)
#define rb_safe_level()   (ruby_safe_level)
#define STR2CSTR(x)   rb_str2cstr((VALUE)(x),0)
#define NEWOBJ(obj, type)   type *obj = (type*)rb_newobj()
#define OBJSETUP(obj, c, t)
#define CLONESETUP(clone, obj)
#define DUPSETUP(dup, obj)
#define ELTS_SHARED   FL_USER2
#define DATA_PTR(dta)   (RDATA(dta)->data)
#define Data_Wrap_Struct(klass, mark, free, sval)   rb_data_object_alloc(klass,sval,(RUBY_DATA_FUNC)mark,(RUBY_DATA_FUNC)free)
#define Data_Make_Struct(klass, type, mark, free, sval)
#define Data_Get_Struct(obj, type, sval)
#define FL_SINGLETON   FL_USER0
#define FL_MARK   (1<<6)
#define FL_FINALIZE   (1<<7)
#define FL_TAINT   (1<<8)
#define FL_EXIVAR   (1<<9)
#define FL_FREEZE   (1<<10)
#define FL_USHIFT   11
#define FL_USER0   (1<<(FL_USHIFT+0))
#define FL_USER1   (1<<(FL_USHIFT+1))
#define FL_USER2   (1<<(FL_USHIFT+2))
#define FL_USER3   (1<<(FL_USHIFT+3))
#define FL_USER4   (1<<(FL_USHIFT+4))
#define FL_USER5   (1<<(FL_USHIFT+5))
#define FL_USER6   (1<<(FL_USHIFT+6))
#define FL_USER7   (1<<(FL_USHIFT+7))
#define FL_UMASK   (0xff<<FL_USHIFT)
#define SPECIAL_CONST_P(x)   (IMMEDIATE_P(x) || !RTEST(x))
#define FL_ABLE(x)   (!SPECIAL_CONST_P(x))
#define FL_TEST(x, f)   (FL_ABLE(x)?(RBASIC(x)->flags&(f)):0)
#define FL_SET(x, f)   do {if (FL_ABLE(x)) RBASIC(x)->flags |= (f);} while (0)
#define FL_UNSET(x, f)   do {if (FL_ABLE(x)) RBASIC(x)->flags &= ~(f);} while (0)
#define FL_REVERSE(x, f)   do {if (FL_ABLE(x)) RBASIC(x)->flags ^= (f);} while (0)
#define OBJ_TAINTED(x)   FL_TEST((x), FL_TAINT)
#define OBJ_TAINT(x)   FL_SET((x), FL_TAINT)
#define OBJ_INFECT(x, s)   do {if (FL_ABLE(x) && FL_ABLE(s)) RBASIC(x)->flags |= RBASIC(s)->flags & FL_TAINT;} while (0)
#define RUBY_METHOD_FUNC(func)   ((VALUE (*)(ANYARGS))func)
#define is_ruby_native_thread()   (1)

Typedefs

typedef unsigned long VALUE
typedef unsigned long ID
typedef void(* RUBY_DATA_FUNC )(void *)

Functions

void rb_check_type (VALUE, int)
void rb_secure (int)
void rb_set_safe_level (int)
void rb_secure_update (VALUE)
char * rb_str2cstr (VALUE, long *)
VALUE rb_newobj (void)
VALUE rb_data_object_alloc (VALUE, void *, RUBY_DATA_FUNC, RUBY_DATA_FUNC)
void rb_obj_infect (VALUE, VALUE)
void rb_glob (char *, void(*(const char *, VALUE), VALUE))
void rb_globi (char *, void(*(const char *, VALUE), VALUE))
VALUE rb_define_class (const char *, VALUE)
VALUE rb_define_module (const char *)
VALUE rb_define_class_under (VALUE, const char *, VALUE)
VALUE rb_define_module_under (VALUE, const char *)
void rb_include_module (VALUE, VALUE)
void rb_extend_object (VALUE, VALUE)
void rb_define_variable (const char *, VALUE *)
void rb_define_virtual_variable (const char *, VALUE(*(ANYARGS), void(*)(ANYARGS)))
void rb_define_hooked_variable (const char *, VALUE *, VALUE(*(ANYARGS), void(*)(ANYARGS)))
void rb_define_readonly_variable (const char *, VALUE *)
void rb_define_const (VALUE, const char *, VALUE)
void rb_define_global_const (const char *, VALUE)
void rb_define_method (VALUE, const char *, VALUE(*(ANYARGS), int))
void rb_define_module_function (VALUE, const char *, VALUE(*(ANYARGS), int))
void rb_define_global_function (const char *, VALUE(*(ANYARGS), int))
void rb_undef_method (VALUE, const char *)
void rb_define_alias (VALUE, const char *, const char *)
void rb_define_attr (VALUE, const char *, int, int)
void rb_global_variable (VALUE *)
void rb_gc_register_address (VALUE *)
void rb_gc_unregister_address (VALUE *)
ID rb_intern (const char *)
char * rb_id2name (ID)
ID rb_to_id (VALUE)
char * rb_class2name (VALUE)
char * rb_obj_classname (VALUE)
void rb_p (VALUE)
VALUE rb_eval_string (const char *)
VALUE rb_eval_string_protect (const char *, int *)
VALUE rb_eval_string_wrap (const char *, int *)
VALUE rb_funcall (VALUE, ID, int,...)
VALUE rb_funcall2 (VALUE, ID, int, const VALUE *)
VALUE rb_funcall3 (VALUE, ID, int, const VALUE *)
int rb_scan_args (int, const VALUE *, const char *,...)
VALUE rb_call_super (int, const VALUE *)
VALUE rb_gv_set (const char *, VALUE)
VALUE rb_gv_get (const char *)
VALUE rb_iv_get (VALUE, const char *)
VALUE rb_iv_set (VALUE, const char *, VALUE)
VALUE rb_equal (VALUE, VALUE)
void rb_raise (VALUE, const char *,...)
void rb_fatal (const char *,...)
void rb_bug (const char *,...)
void rb_sys_fail (const char *)
void rb_iter_break (void)
void rb_exit (int)
void rb_notimplement (void)
void rb_warning (const char *,...)
void rb_sys_warning (const char *,...)
void rb_warn (const char *,...)
VALUE rb_each (VALUE)
VALUE rb_yield (VALUE)
VALUE rb_yield_values (int n,...)
VALUE rb_yield_splat (VALUE)
int rb_block_given_p (void)
VALUE rb_iterate (VALUE(*(VALUE), VALUE, VALUE(*)(ANYARGS), VALUE))
VALUE rb_rescue (VALUE(*(ANYARGS), VALUE, VALUE(*)(ANYARGS), VALUE))
VALUE rb_rescue2 (VALUE(*(ANYARGS), VALUE, VALUE(*)(ANYARGS), VALUE,...))
VALUE rb_ensure (VALUE(*(ANYARGS), VALUE, VALUE(*)(ANYARGS), VALUE))
VALUE rb_catch (const char *, VALUE(*(ANYARGS), VALUE))
void rb_throw (const char *, VALUE)
VALUE rb_require (const char *)
void ruby_init (void)
void ruby_options (int, char **)
void ruby_run (void)
VALUE rb_class_of (VALUE obj)
int rb_type (VALUE obj)
int rb_special_const_p (VALUE obj)

Variables

RUBY_EXTERN int ruby_safe_level
RUBY_EXTERN VALUE ruby_verbose
RUBY_EXTERN VALUE ruby_debug


Generated on Wed Jan 18 23:32:11 2006 for Ruby by doxygen 1.3.5