Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
opt
/
alt
/
ruby21
/
share
/
ri
/
2.1.0
/
system
/
DL
/
//opt/alt/ruby21/share/ri/2.1.0/system/DL/cdesc-DL.ri
U:RDoc::NormalModule[iI"DL:ET@0o:RDoc::Markup::Document:@parts[o;;[ : @fileI"ext/dl/cfunc.c;T:0@omit_headings_from_table_of_contents_below0o;;[o:RDoc::Markup::Paragraph;[I"AA bridge to the dlopen() or dynamic library linker function.;To:RDoc::Markup::BlankLine S:RDoc::Markup::Heading: leveli: textI"Example;T@o:RDoc::Markup::Verbatim;[*I"bash $> cat > sum.c <<EOF ;TI"'double sum(double *arry, int len) ;TI"{ ;TI" double ret = 0; ;TI" int i; ;TI"' for(i = 0; i < len; i++){ ;TI"* ret = ret + arry[i]; ;TI" } ;TI" return ret; ;TI"} ;TI" ;TI"double split(double num) ;TI"{ ;TI" double ret = 0; ;TI" ret = num / 2; ;TI" return ret; ;TI"} ;TI" EOF ;TI",bash $> gcc -o libsum.so -shared sum.c ;TI" bash $> cat > sum.rb <<EOF ;TI"require 'dl' ;TI"require 'dl/import' ;TI" ;TI"module LibSum ;TI"! extend DL::Importer ;TI"" dlload './libsum.so' ;TI"/ extern 'double sum(double*, int)' ;TI"+ extern 'double split(double)' ;TI" end ;TI" ;TI"a = [2.0, 3.0, 4.0] ;TI" ;TI"-sum = LibSum.sum(a.pack("d*"), a.count) ;TI"p LibSum.split(sum) ;TI" EOF ;TI"bash $> ruby sum.rb ;TI" 4.5 ;T:@format0o;;[I" WIN! :-);T; I"ext/dl/dl.c;T; 0o;;[ ; I"ext/dl/lib/dl.rb;T; 0o;;[ ; I"ext/dl/lib/dl/callback.rb;T; 0o;;[ ; I"ext/dl/lib/dl/cparser.rb;T; 0o;;[ ; I"ext/dl/lib/dl/func.rb;T; 0o;;[ ; I"ext/dl/lib/dl/import.rb;T; 0o;;[ ; I"ext/dl/lib/dl/pack.rb;T; 0o;;[ ; I"ext/dl/lib/dl/stack.rb;T; 0o;;[ ; I"ext/dl/lib/dl/struct.rb;T; 0o;;[ ; I"ext/dl/lib/dl/types.rb;T; 0o;;[ ; I"ext/dl/lib/dl/value.rb;T; 0; 0; 0[ [6U:RDoc::Constant[i I" NULL;TI" DL::NULL;T00o;;[o;;[I" NULL ;T;0o;;[I"A NULL pointer;T; I"ext/dl/cptr.c;T; 0@l@cRDoc::NormalModule0U;[i I"MAX_CALLBACK;TI"DL::MAX_CALLBACK;T00o;;[o;;[I"MAX_CALLBACK;T@o;;[I" Maximum number of callbacks;T; @?; 0@?@@m0U;[i I"DLSTACK_SIZE;TI"DL::DLSTACK_SIZE;T00o;;[o;;[I"DLSTACK_SIZE;T@o;;[I"Dynamic linker stack size;T; @?; 0@?@@m0U;[i I"RTLD_GLOBAL;TI"DL::RTLD_GLOBAL;T00o;;[ o;;[I"RTLD_GLOBAL;T@o;;[I"rtld DL::Handle flag.;T@o;;[I"KThe symbols defined by this library will be made available for symbol ;TI"1resolution of subsequently loaded libraries.;T; @?; 0@?@@m0U;[i I"RTLD_LAZY;TI"DL::RTLD_LAZY;T00o;;[ o;;[I"RTLD_LAZY;T@o;;[I"rtld DL::Handle flag.;T@o;;[ I"MPerform lazy binding. Only resolve symbols as the code that references ;TI"Mthem is executed. If the symbol is never referenced, then it is never ;TI"Iresolved. (Lazy binding is only performed for function references; ;TI"Kreferences to variables are always immediately bound when the library ;TI"is loaded.);T; @?; 0@?@@m0U;[i I" RTLD_NOW;TI"DL::RTLD_NOW;T00o;;[ o;;[I" RTLD_NOW;T@o;;[I"rtld DL::Handle flag.;T@o;;[ I"KIf this value is specified or the environment variable LD_BIND_NOW is ;TI"Hset to a nonempty string, all undefined symbols in the library are ;TI"Kresolved before dlopen() returns. If this cannot be done an error is ;TI"returned.;T; @?; 0@?@@m0U;[i I"TYPE_VOID;TI"DL::TYPE_VOID;T00o;;[o;;[I"TYPE_VOID;T@o;;[I"DL::CFunc type - void;T; @?; 0@?@@m0U;[i I"TYPE_VOIDP;TI"DL::TYPE_VOIDP;T00o;;[o;;[I"TYPE_VOIDP;T@o;;[I"DL::CFunc type - void*;T; @?; 0@?@@m0U;[i I"TYPE_CHAR;TI"DL::TYPE_CHAR;T00o;;[o;;[I"TYPE_CHAR;T@o;;[I"DL::CFunc type - char;T; @?; 0@?@@m0U;[i I"TYPE_SHORT;TI"DL::TYPE_SHORT;T00o;;[o;;[I"TYPE_SHORT;T@o;;[I"DL::CFunc type - short;T; @?; 0@?@@m0U;[i I" TYPE_INT;TI"DL::TYPE_INT;T00o;;[o;;[I" TYPE_INT;T@o;;[I"DL::CFunc type - int;T; @?; 0@?@@m0U;[i I"TYPE_LONG;TI"DL::TYPE_LONG;T00o;;[o;;[I"TYPE_LONG;T@o;;[I"DL::CFunc type - long;T; @?; 0@?@@m0U;[i I"TYPE_LONG_LONG;TI"DL::TYPE_LONG_LONG;T00o;;[o;;[I"TYPE_LONG_LONG;T@o;;[I"DL::CFunc type - long long;T; @?; 0@?@@m0U;[i I"TYPE_FLOAT;TI"DL::TYPE_FLOAT;T00o;;[o;;[I"TYPE_FLOAT;T@o;;[I"DL::CFunc type - float;T; @?; 0@?@@m0U;[i I"TYPE_DOUBLE;TI"DL::TYPE_DOUBLE;T00o;;[o;;[I"TYPE_DOUBLE;T@o;;[I"DL::CFunc type - double;T; @?; 0@?@@m0U;[i I"TYPE_SIZE_T;TI"DL::TYPE_SIZE_T;T00o;;[o;;[I"TYPE_SIZE_T;T@o;;[I"DL::CFunc type - size_t;T; @?; 0@?@@m0U;[i I"TYPE_SSIZE_T;TI"DL::TYPE_SSIZE_T;T00o;;[o;;[I"TYPE_SSIZE_T;T@o;;[I"DL::CFunc type - ssize_t;T; @?; 0@?@@m0U;[i I"TYPE_PTRDIFF_T;TI"DL::TYPE_PTRDIFF_T;T00o;;[o;;[I"TYPE_PTRDIFF_T;T@o;;[I"DL::CFunc type - ptrdiff_t;T; @?; 0@?@@m0U;[i I"TYPE_INTPTR_T;TI"DL::TYPE_INTPTR_T;T00o;;[o;;[I"TYPE_INTPTR_T;T@o;;[I"DL::CFunc type - intptr_t;T; @?; 0@?@@m0U;[i I"TYPE_UINTPTR_T;TI"DL::TYPE_UINTPTR_T;T00o;;[o;;[I"TYPE_UINTPTR_T;T@o;;[I"DL::CFunc type - uintptr_t;T; @?; 0@?@@m0U;[i I"ALIGN_VOIDP;TI"DL::ALIGN_VOIDP;T00o;;[o;;[I"ALIGN_VOIDP;T@o;;[I""The alignment size of a void*;T; @?; 0@?@@m0U;[i I"ALIGN_CHAR;TI"DL::ALIGN_CHAR;T00o;;[o;;[I"ALIGN_CHAR;T@o;;[I"!The alignment size of a char;T; @?; 0@?@@m0U;[i I"ALIGN_SHORT;TI"DL::ALIGN_SHORT;T00o;;[o;;[I"ALIGN_SHORT;T@o;;[I""The alignment size of a short;T; @?; 0@?@@m0U;[i I"ALIGN_INT;TI"DL::ALIGN_INT;T00o;;[o;;[I"ALIGN_INT;T@o;;[I"!The alignment size of an int;T; @?; 0@?@@m0U;[i I"ALIGN_LONG;TI"DL::ALIGN_LONG;T00o;;[o;;[I"ALIGN_LONG;T@o;;[I"!The alignment size of a long;T; @?; 0@?@@m0U;[i I"ALIGN_LONG_LONG;TI"DL::ALIGN_LONG_LONG;T00o;;[o;;[I"ALIGN_LONG_LONG;T@o;;[I"&The alignment size of a long long;T; @?; 0@?@@m0U;[i I"ALIGN_FLOAT;TI"DL::ALIGN_FLOAT;T00o;;[o;;[I"ALIGN_FLOAT;T@o;;[I""The alignment size of a float;T; @?; 0@?@@m0U;[i I"ALIGN_DOUBLE;TI"DL::ALIGN_DOUBLE;T00o;;[o;;[I"ALIGN_DOUBLE;T@o;;[I"#The alignment size of a double;T; @?; 0@?@@m0U;[i I"ALIGN_SIZE_T;TI"DL::ALIGN_SIZE_T;T00o;;[o;;[I"ALIGN_SIZE_T;T@o;;[I"#The alignment size of a size_t;T; @?; 0@?@@m0U;[i I"ALIGN_SSIZE_T;TI"DL::ALIGN_SSIZE_T;T00o;;[o;;[I"ALIGN_SSIZE_T;T@o;;[I"$The alignment size of a ssize_t;T; @?; 0@?@@m0U;[i I"ALIGN_PTRDIFF_T;TI"DL::ALIGN_PTRDIFF_T;T00o;;[o;;[I"ALIGN_PTRDIFF_T;T@o;;[I"&The alignment size of a ptrdiff_t;T; @?; 0@?@@m0U;[i I"ALIGN_INTPTR_T;TI"DL::ALIGN_INTPTR_T;T00o;;[o;;[I"ALIGN_INTPTR_T;T@o;;[I"%The alignment size of a intptr_t;T; @?; 0@?@@m0U;[i I"ALIGN_UINTPTR_T;TI"DL::ALIGN_UINTPTR_T;T00o;;[o;;[I"ALIGN_UINTPTR_T;T@o;;[I"&The alignment size of a uintptr_t;T; @?; 0@?@@m0U;[i I"SIZEOF_VOIDP;TI"DL::SIZEOF_VOIDP;T00o;;[o;;[I"SIZEOF_VOIDP;T@o;;[I"size of a void*;T; @?; 0@?@@m0U;[i I"SIZEOF_CHAR;TI"DL::SIZEOF_CHAR;T00o;;[o;;[I"SIZEOF_CHAR;T@o;;[I"size of a char;T; @?; 0@?@@m0U;[i I"SIZEOF_SHORT;TI"DL::SIZEOF_SHORT;T00o;;[o;;[I"SIZEOF_SHORT;T@o;;[I"size of a short;T; @?; 0@?@@m0U;[i I"SIZEOF_INT;TI"DL::SIZEOF_INT;T00o;;[o;;[I"SIZEOF_INT;T@o;;[I"size of an int;T; @?; 0@?@@m0U;[i I"SIZEOF_LONG;TI"DL::SIZEOF_LONG;T00o;;[o;;[I"SIZEOF_LONG;T@o;;[I"size of a long;T; @?; 0@?@@m0U;[i I"SIZEOF_LONG_LONG;TI"DL::SIZEOF_LONG_LONG;T00o;;[o;;[I"SIZEOF_LONG_LONG;T@o;;[I"size of a long long;T; @?; 0@?@@m0U;[i I"SIZEOF_FLOAT;TI"DL::SIZEOF_FLOAT;T00o;;[o;;[I"SIZEOF_FLOAT;T@o;;[I"size of a float;T; @?; 0@?@@m0U;[i I"SIZEOF_DOUBLE;TI"DL::SIZEOF_DOUBLE;T00o;;[o;;[I"SIZEOF_DOUBLE;T@o;;[I"size of a double;T; @?; 0@?@@m0U;[i I"SIZEOF_SIZE_T;TI"DL::SIZEOF_SIZE_T;T00o;;[o;;[I"SIZEOF_SIZE_T;T@o;;[I"size of a size_t;T; @?; 0@?@@m0U;[i I"SIZEOF_SSIZE_T;TI"DL::SIZEOF_SSIZE_T;T00o;;[o;;[I"SIZEOF_SSIZE_T;T@o;;[I"size of a ssize_t;T; @?; 0@?@@m0U;[i I"SIZEOF_PTRDIFF_T;TI"DL::SIZEOF_PTRDIFF_T;T00o;;[o;;[I"SIZEOF_PTRDIFF_T;T@o;;[I"size of a ptrdiff_t;T; @?; 0@?@@m0U;[i I"SIZEOF_INTPTR_T;TI"DL::SIZEOF_INTPTR_T;T00o;;[o;;[I"SIZEOF_INTPTR_T;T@o;;[I"size of a intptr_t;T; @?; 0@?@@m0U;[i I"SIZEOF_UINTPTR_T;TI"DL::SIZEOF_UINTPTR_T;T00o;;[o;;[I"SIZEOF_UINTPTR_T;T@o;;[I"size of a uintptr_t;T; @?; 0@?@@m0U;[i I"RUBY_FREE;TI"DL::RUBY_FREE;T00o;;[o;;[I"RUBY_FREE;T@o;;[I")Address of the ruby_xfree() function;T; @?; 0@?@@m0U;[i I"BUILD_RUBY_PLATFORM;TI"DL::BUILD_RUBY_PLATFORM;T00o;;[ o;;[I"BUILD_RUBY_PLATFORM;T@o;;[I"7Platform built against (i.e. "x86_64-linux", etc.);T@o;;[I"See also RUBY_PLATFORM;T; @?; 0@?@@m0U;[i I"BUILD_RUBY_VERSION;TI"DL::BUILD_RUBY_VERSION;T00o;;[ o;;[I"BUILD_RUBY_VERSION;T@o;;[I"'Ruby Version built. (i.e. "1.9.3");T@o;;[I"See also RUBY_VERSION;T; @?; 0@?@@m0[ [[I" class;T[[:public[[I"dlopen;TI"ext/dl/dl.c;T[I" dlunwrap;T@�[I"dlwrap;T@�[I"fiddle?;FI"ext/dl/lib/dl.rb;T[I" free;T@�[I"malloc;T@�[I"realloc;T@�[:protected[ [:private[ [I" instance;T[[;[ [I"remove_callback;FI"ext/dl/lib/dl/callback.rb;T[I"remove_callback_internal;F@�[I"remove_cdecl_callback;F@�[I"remove_stdcall_callback;F@�[I"set_callback;F@�[I"set_callback_internal;F@�[I"set_cdecl_callback;F@�[I"set_stdcall_callback;F@�[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ; 0; 0[@@l@?@B@E@H@K@N@Q@T@W@Z@]I"lib/securerandom.rb;T@]cRDoc::TopLevel