23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
-
-
-
-
-
-
-
-
+
+
+
+
+
|
# endif
#endif
#ifdef __CYGWIN__
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __clang__
#pragma clang diagnostic ignored "-Wignored-attributes"
#endif
DLLIMPORT extern __stdcall unsigned char GetVersionExW(void *);
DLLIMPORT extern __stdcall void *GetModuleHandleW(const void *);
DLLIMPORT extern __stdcall void FreeLibrary(void *);
DLLIMPORT extern __stdcall void *GetProcAddress(void *, const char *);
DLLIMPORT extern __stdcall void GetSystemInfo(void *);
DLLIMPORT extern unsigned char GetVersionExW(void *);
DLLIMPORT extern void *GetModuleHandleW(const void *);
DLLIMPORT extern void FreeLibrary(void *);
DLLIMPORT extern void *GetProcAddress(void *, const char *);
DLLIMPORT extern void GetSystemInfo(void *);
#ifdef __cplusplus
}
#endif
#define NUMPROCESSORS 15
static const char *const processors[NUMPROCESSORS] = {
"i686", "mips", "alpha", "ppc", "shx", "arm", "ia64", "alpha64", "msil",
|
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
|
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
|
-
-
+
+
|
#endif
unameOK = 0;
#ifdef __CYGWIN__
unameOK = 1;
if (!osInfoInitialized) {
void *handle = GetModuleHandleW(L"NTDLL");
int(__stdcall *getversion)(void *) =
(int(__stdcall *)(void *))GetProcAddress(handle, "RtlGetVersion");
int(*getversion)(void *) =
(int(*)(void *))GetProcAddress(handle, "RtlGetVersion");
osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
if (!getversion || getversion(&osInfo)) {
GetVersionExW(&osInfo);
}
osInfoInitialized = 1;
}
|