SYSTEM_INFO sysinfo_cache;
/* This gives us version, build, and platform identification. */
+extern unsigned long syspage_mask;
OSVERSIONINFO osinfo_cache;
-unsigned long syspage_mask = 0;
-
/* The major and minor versions of NT. */
int w32_major_version;
int w32_minor_version;
/* Distinguish between Windows NT and Windows 95. */
int os_subtype;
-/* Cache information describing the NT system for later use. */
-void
-cache_system_info (void)
-{
- union
- {
- struct info
- {
- char major;
- char minor;
- short platform;
- } info;
- DWORD data;
- } version;
-
- /* Cache the version of the operating system. */
- version.data = GetVersion ();
- w32_major_version = version.info.major;
- w32_minor_version = version.info.minor;
-
- if (version.info.platform & 0x8000)
- os_subtype = OS_9X;
- else
- os_subtype = OS_NT;
-
- /* Cache page size, allocation unit, processor type, etc. */
- GetSystemInfo (&sysinfo_cache);
- syspage_mask = sysinfo_cache.dwPageSize - 1;
-
- /* Cache os info. */
- osinfo_cache.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
- GetVersionEx (&osinfo_cache);
-
- w32_build_number = osinfo_cache.dwBuildNumber;
- if (os_subtype == OS_9X)
- w32_build_number &= 0xffff;
-}
-
/* Emulate getpagesize. */
int
getpagesize (void)