Module: FFI::Platform

Defined in:
lib/ffi/platform.rb,
ext/ffi_c/Platform.c

Constant Summary collapse

OS =
case Config::CONFIG['host_os'].downcase
when /linux/
  "linux"
when /darwin/
  "darwin"
when /freebsd/
  "freebsd"
when /openbsd/
  "openbsd"
when /sunos|solaris/
  "solaris"
when /win|mingw/
  "windows"
else
  Config::CONFIG['host_os'].downcase
end
ARCH =
case CPU.downcase
when /amd64|x86_64/
  "x86_64"
when /i?86|x86|i86pc/
  "i386"
when /ppc|powerpc/
  "powerpc"
else
  Config::CONFIG['host_cpu']
end
LIBC =
if IS_WINDOWS
  "msvcrt"
elsif IS_LINUX
  "libc.so.6"
else
  "c"
end
LIBPREFIX =
IS_WINDOWS ? '' : 'lib'
LIBSUFFIX =
case OS
when /darwin/
  'dylib'
when /linux|bsd|solaris/
  'so'
when /windows/
  'dll'
else
  # Punt and just assume a sane unix (i.e. anything but AIX)
  'so'
end
BYTE_ORDER =
INT2FIX(BYTE_ORDER)
LITTLE_ENDIAN =
INT2FIX(LITTLE_ENDIAN)
BIG_ENDIAN =
INT2FIX(BIG_ENDIAN)
CPU =
rb_str_new2(CPU)

Class Method Summary collapse

Class Method Details

.bsd?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'lib/ffi/platform.rb', line 98

def self.bsd?
  IS_BSD
end

.mac?Boolean

Returns:

  • (Boolean)


106
107
108
# File 'lib/ffi/platform.rb', line 106

def self.mac?
  IS_MAC
end

.unix?Boolean

Returns:

  • (Boolean)


110
111
112
# File 'lib/ffi/platform.rb', line 110

def self.unix?
  !IS_WINDOWS
end

.windows?Boolean

Returns:

  • (Boolean)


102
103
104
# File 'lib/ffi/platform.rb', line 102

def self.windows?
  IS_WINDOWS
end