# File lib/unix/sys/cpu.rb, line 170
    def self.machine
      if respond_to?(:sysctl, true)
        buf  = 0.chr * 32
        mib  = FFI::MemoryPointer.new(:int, 2)
        size = FFI::MemoryPointer.new(:long, 1)

        mib.write_array_of_int([CTL_HW, HW_MACHINE])
        size.write_int(buf.size)

        if sysctl(mib, 2, buf, size, nil, 0) < 0
          raise Error, "sysctl function failed"
        end

        buf.strip
      else
        buf = 0.chr * 257

        if sysinfo(SI_MACHINE, buf, buf.size) < 0
          raise Error, "sysinfo function failed"
        end

        buf.strip
      end
    end