31#include <sys/sysinfo.h>
47#if (OOLITE_WINDOWS || OOLITE_LINUX)
48NSString* OOCPUDescription(
void);
49void OOCPUID(
int CPUInfo[4],
int InfoType);
53 unsigned long long ooPhysicalMemory;
54 unsigned long long ooAvailableMemory;
56OOMemoryStatus OOSystemMemoryStatus(
void);
61typedef BOOL (WINAPI *IW64PFP)(HANDLE, BOOL *);
62BOOL is64BitSystem(
void);
63NSString* operatingSystemFullVersion(
void);
72#if !defined(OOLITE_BIG_ENDIAN) && !defined(OOLITE_LITTLE_ENDIAN)
75#define OOLITE_BIG_ENDIAN 1
79#define OOLITE_LITTLE_ENDIAN 1
83#if !defined(OOLITE_BIG_ENDIAN) && !defined(OOLITE_LITTLE_ENDIAN)
84#if defined(__i386__) || defined(__amd64__) || defined(__x86_64__)
85#define OOLITE_LITTLE_ENDIAN 1
88#if defined(__sgi__) || defined(__mips__)
89#define OOLITE_BIG_ENDIAN 1
98#ifndef OOLITE_BIG_ENDIAN
99#define OOLITE_BIG_ENDIAN 0
102#ifndef OOLITE_LITTLE_ENDIAN
103#define OOLITE_LITTLE_ENDIAN 0
107#if !OOLITE_BIG_ENDIAN && !OOLITE_LITTLE_ENDIAN
108#error Neither OOLITE_BIG_ENDIAN nor OOLITE_LITTLE_ENDIAN is defined as nonzero!
110#undef OOLITE_BIG_ENDIAN
111#undef OOLITE_LITTLE_ENDIAN
114#define OOLITE_BIG_ENDIAN "BUG"
115#define OOLITE_LITTLE_ENDIAN "BUG"
127#ifndef OOLITE_NATIVE_64_BIT
131#define OOLITE_NATIVE_64_BIT 1
133#define OOLITE_NATIVE_64_BIT 1
135#define OOLITE_NATIVE_64_BIT 1
139#ifndef OOLITE_NATIVE_64_BIT
140#define OOLITE_NATIVE_64_BIT 0
NSUInteger OOCPUCount(void)