File: C:/Ruby27-x64/share/ri/2.7.0/system/Fiddle/cdesc-Fiddle.ri
U:RDoc::NormalModule[iI"Fiddle:ET@0o:RDoc::Markup::Document:@parts[o;;[ :
@fileI"ext/fiddle/closure.c;T:0@omit_headings_from_table_of_contents_below0o;;[o:RDoc::Markup::Paragraph;[I"A libffi wrapper for Ruby.;To:RDoc::Markup::BlankLine S:RDoc::Markup::Heading:
leveli: textI"Description;T@o;;[I"LFiddle is an extension to translate a foreign function interface (FFI) ;TI"with ruby.;T@o;;[I"KIt wraps {libffi}[http://sourceware.org/libffi/], a popular C library ;TI"Iwhich provides a portable interface that allows code written in one ;TI"7language to call code written in another language.;T@S;
;i;I"Example;T@o;;[I">Here we will use Fiddle::Function to wrap {floor(3) from ;TI",libm}[http://linux.die.net/man/3/floor];T@o:RDoc::Markup::Verbatim;[I"require 'fiddle'
;TI"
;TI",libm = Fiddle.dlopen('/lib/libm.so.6')
;TI"
;TI"#floor = Fiddle::Function.new(
;TI" libm['floor'],
;TI" [Fiddle::TYPE_DOUBLE],
;TI" Fiddle::TYPE_DOUBLE
;TI")
;TI"
;TI"%puts floor.call(3.14159) #=> 3.0;T:@format0; I"ext/fiddle/fiddle.c;T;
0o;;[ ; I"ext/fiddle/lib/fiddle.rb;T;
0o;;[ ; I"%ext/fiddle/lib/fiddle/closure.rb;T;
0o;;[ ; I"%ext/fiddle/lib/fiddle/cparser.rb;T;
0o;;[ ; I"&ext/fiddle/lib/fiddle/function.rb;T;
0o;;[ ; I"$ext/fiddle/lib/fiddle/import.rb;T;
0o;;[ ; I""ext/fiddle/lib/fiddle/pack.rb;T;
0o;;[ ; I"$ext/fiddle/lib/fiddle/struct.rb;T;
0o;;[ ; I"#ext/fiddle/lib/fiddle/types.rb;T;
0o;;[ ; I"#ext/fiddle/lib/fiddle/value.rb;T;
0; 0;
0[ [0U:RDoc::Constant[i I"TYPE_VOID;TI"Fiddle::TYPE_VOID;T:public0o;;[o;;[I"TYPE_VOID;T@o;;[I"C type - void;T; @1;
0@1@cRDoc::NormalModule0U;[i I"TYPE_VOIDP;TI"Fiddle::TYPE_VOIDP;T;0o;;[o;;[I"TYPE_VOIDP;T@o;;[I"C type - void*;T; @1;
0@1@@[0U;[i I"TYPE_CHAR;TI"Fiddle::TYPE_CHAR;T;0o;;[o;;[I"TYPE_CHAR;T@o;;[I"C type - char;T; @1;
0@1@@[0U;[i I"TYPE_SHORT;TI"Fiddle::TYPE_SHORT;T;0o;;[o;;[I"TYPE_SHORT;T@o;;[I"C type - short;T; @1;
0@1@@[0U;[i I"
TYPE_INT;TI"Fiddle::TYPE_INT;T;0o;;[o;;[I"
TYPE_INT;T@o;;[I"C type - int;T; @1;
0@1@@[0U;[i I"TYPE_LONG;TI"Fiddle::TYPE_LONG;T;0o;;[o;;[I"TYPE_LONG;T@o;;[I"C type - long;T; @1;
0@1@@[0U;[i I"TYPE_LONG_LONG;TI"Fiddle::TYPE_LONG_LONG;T;0o;;[o;;[I"TYPE_LONG_LONG;T@o;;[I"C type - long long;T; @1;
0@1@@[0U;[i I"TYPE_FLOAT;TI"Fiddle::TYPE_FLOAT;T;0o;;[o;;[I"TYPE_FLOAT;T@o;;[I"C type - float;T; @1;
0@1@@[0U;[i I"TYPE_DOUBLE;TI"Fiddle::TYPE_DOUBLE;T;0o;;[o;;[I"TYPE_DOUBLE;T@o;;[I"C type - double;T; @1;
0@1@@[0U;[i I"TYPE_SIZE_T;TI"Fiddle::TYPE_SIZE_T;T;0o;;[o;;[I"TYPE_SIZE_T;T@o;;[I"C type - size_t;T; @1;
0@1@@[0U;[i I"TYPE_SSIZE_T;TI"Fiddle::TYPE_SSIZE_T;T;0o;;[o;;[I"TYPE_SSIZE_T;T@o;;[I"C type - ssize_t;T; @1;
0@1@@[0U;[i I"TYPE_PTRDIFF_T;TI"Fiddle::TYPE_PTRDIFF_T;T;0o;;[o;;[I"TYPE_PTRDIFF_T;T@o;;[I"C type - ptrdiff_t;T; @1;
0@1@@[0U;[i I"TYPE_INTPTR_T;TI"Fiddle::TYPE_INTPTR_T;T;0o;;[o;;[I"TYPE_INTPTR_T;T@o;;[I"C type - intptr_t;T; @1;
0@1@@[0U;[i I"TYPE_UINTPTR_T;TI"Fiddle::TYPE_UINTPTR_T;T;0o;;[o;;[I"TYPE_UINTPTR_T;T@o;;[I"C type - uintptr_t;T; @1;
0@1@@[0U;[i I"ALIGN_VOIDP;TI"Fiddle::ALIGN_VOIDP;T;0o;;[o;;[I"ALIGN_VOIDP;T@o;;[I""The alignment size of a void*;T; @1;
0@1@@[0U;[i I"ALIGN_CHAR;TI"Fiddle::ALIGN_CHAR;T;0o;;[o;;[I"ALIGN_CHAR;T@o;;[I"!The alignment size of a char;T; @1;
0@1@@[0U;[i I"ALIGN_SHORT;TI"Fiddle::ALIGN_SHORT;T;0o;;[o;;[I"ALIGN_SHORT;T@o;;[I""The alignment size of a short;T; @1;
0@1@@[0U;[i I"ALIGN_INT;TI"Fiddle::ALIGN_INT;T;0o;;[o;;[I"ALIGN_INT;T@o;;[I"!The alignment size of an int;T; @1;
0@1@@[0U;[i I"ALIGN_LONG;TI"Fiddle::ALIGN_LONG;T;0o;;[o;;[I"ALIGN_LONG;T@o;;[I"!The alignment size of a long;T; @1;
0@1@@[0U;[i I"ALIGN_LONG_LONG;TI"Fiddle::ALIGN_LONG_LONG;T;0o;;[o;;[I"ALIGN_LONG_LONG;T@o;;[I"&The alignment size of a long long;T; @1;
0@1@@[0U;[i I"ALIGN_FLOAT;TI"Fiddle::ALIGN_FLOAT;T;0o;;[o;;[I"ALIGN_FLOAT;T@o;;[I""The alignment size of a float;T; @1;
0@1@@[0U;[i I"ALIGN_DOUBLE;TI"Fiddle::ALIGN_DOUBLE;T;0o;;[o;;[I"ALIGN_DOUBLE;T@o;;[I"#The alignment size of a double;T; @1;
0@1@@[0U;[i I"ALIGN_SIZE_T;TI"Fiddle::ALIGN_SIZE_T;T;0o;;[o;;[I"ALIGN_SIZE_T;T@o;;[I"#The alignment size of a size_t;T; @1;
0@1@@[0U;[i I"ALIGN_SSIZE_T;TI"Fiddle::ALIGN_SSIZE_T;T;0o;;[o;;[I"ALIGN_SSIZE_T;T@o;;[I"$The alignment size of a ssize_t;T; @1;
0@1@@[0U;[i I"ALIGN_PTRDIFF_T;TI"Fiddle::ALIGN_PTRDIFF_T;T;0o;;[o;;[I"ALIGN_PTRDIFF_T;T@o;;[I"&The alignment size of a ptrdiff_t;T; @1;
0@1@@[0U;[i I"ALIGN_INTPTR_T;TI"Fiddle::ALIGN_INTPTR_T;T;0o;;[o;;[I"ALIGN_INTPTR_T;T@o;;[I"%The alignment size of a intptr_t;T; @1;
0@1@@[0U;[i I"ALIGN_UINTPTR_T;TI"Fiddle::ALIGN_UINTPTR_T;T;0o;;[o;;[I"ALIGN_UINTPTR_T;T@o;;[I"&The alignment size of a uintptr_t;T; @1;
0@1@@[0U;[i I"WINDOWS;TI"Fiddle::WINDOWS;T;0o;;[o;;[I":Returns a boolean regarding whether the host is WIN32;T; @1;
0@1@@[0U;[i I"SIZEOF_VOIDP;TI"Fiddle::SIZEOF_VOIDP;T;0o;;[o;;[I"SIZEOF_VOIDP;T@o;;[I"size of a void*;T; @1;
0@1@@[0U;[i I"SIZEOF_CHAR;TI"Fiddle::SIZEOF_CHAR;T;0o;;[o;;[I"SIZEOF_CHAR;T@o;;[I"size of a char;T; @1;
0@1@@[0U;[i I"SIZEOF_SHORT;TI"Fiddle::SIZEOF_SHORT;T;0o;;[o;;[I"SIZEOF_SHORT;T@o;;[I"size of a short;T; @1;
0@1@@[0U;[i I"SIZEOF_INT;TI"Fiddle::SIZEOF_INT;T;0o;;[o;;[I"SIZEOF_INT;T@o;;[I"size of an int;T; @1;
0@1@@[0U;[i I"SIZEOF_LONG;TI"Fiddle::SIZEOF_LONG;T;0o;;[o;;[I"SIZEOF_LONG;T@o;;[I"size of a long;T; @1;
0@1@@[0U;[i I"SIZEOF_LONG_LONG;TI"Fiddle::SIZEOF_LONG_LONG;T;0o;;[o;;[I"SIZEOF_LONG_LONG;T@o;;[I"size of a long long;T; @1;
0@1@@[0U;[i I"SIZEOF_FLOAT;TI"Fiddle::SIZEOF_FLOAT;T;0o;;[o;;[I"SIZEOF_FLOAT;T@o;;[I"size of a float;T; @1;
0@1@@[0U;[i I"SIZEOF_DOUBLE;TI"Fiddle::SIZEOF_DOUBLE;T;0o;;[o;;[I"SIZEOF_DOUBLE;T@o;;[I"size of a double;T; @1;
0@1@@[0U;[i I"SIZEOF_SIZE_T;TI"Fiddle::SIZEOF_SIZE_T;T;0o;;[o;;[I"SIZEOF_SIZE_T;T@o;;[I"size of a size_t;T; @1;
0@1@@[0U;[i I"SIZEOF_SSIZE_T;TI"Fiddle::SIZEOF_SSIZE_T;T;0o;;[o;;[I"SIZEOF_SSIZE_T;T@o;;[I"size of a ssize_t;T; @1;
0@1@@[0U;[i I"SIZEOF_PTRDIFF_T;TI"Fiddle::SIZEOF_PTRDIFF_T;T;0o;;[o;;[I"SIZEOF_PTRDIFF_T;T@o;;[I"size of a ptrdiff_t;T; @1;
0@1@@[0U;[i I"SIZEOF_INTPTR_T;TI"Fiddle::SIZEOF_INTPTR_T;T;0o;;[o;;[I"SIZEOF_INTPTR_T;T@o;;[I"size of a intptr_t;T; @1;
0@1@@[0U;[i I"SIZEOF_UINTPTR_T;TI"Fiddle::SIZEOF_UINTPTR_T;T;0o;;[o;;[I"SIZEOF_UINTPTR_T;T@o;;[I"size of a uintptr_t;T; @1;
0@1@@[0U;[i I"RUBY_FREE;TI"Fiddle::RUBY_FREE;T;0o;;[o;;[I"RUBY_FREE;T@o;;[I")Address of the ruby_xfree() function;T; @1;
0@1@@[0U;[i I"BUILD_RUBY_PLATFORM;TI" Fiddle::BUILD_RUBY_PLATFORM;T;0o;;[
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; @1;
0@1@@[0[ [[I"
class;T[[;[[I"dlopen;TI"+../ruby-2.7.7/ext/fiddle/lib/fiddle.rb;T[I"
dlunwrap;TI"&../ruby-2.7.7/ext/fiddle/fiddle.c;T[I"dlwrap;T@[[I" free;T@[[I"last_error;T@X[I"last_error=;T@X[I"malloc;T@[[I"realloc;T@[[I"win32_last_error;T@X[I"win32_last_error=;T@X[:protected[ [:private[ [I"
instance;T[[;[ [;[ [;[[@W@X[ [U:RDoc::Context::Section[i 0o;;[ ; 0;
0[I"ext/fiddle/closure.c;TI"ext/fiddle/fiddle.c;TI"ext/fiddle/lib/fiddle.rb;TI"%ext/fiddle/lib/fiddle/closure.rb;TI"%ext/fiddle/lib/fiddle/cparser.rb;TI"&ext/fiddle/lib/fiddle/function.rb;TI"$ext/fiddle/lib/fiddle/import.rb;TI""ext/fiddle/lib/fiddle/pack.rb;TI"$ext/fiddle/lib/fiddle/struct.rb;TI"#ext/fiddle/lib/fiddle/types.rb;TI"#ext/fiddle/lib/fiddle/value.rb;T@LcRDoc::TopLevel