int edata;
int etext;
-/* The major and minor versions of NT. */
-int nt_major_version;
-int nt_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 ();
- nt_major_version = version.info.major;
- nt_minor_version = version.info.minor;
-
- if (version.info.platform & 0x8000)
- os_subtype = OS_WIN95;
- else
- os_subtype = OS_NT;
-
/* Cache page size, allocation unit, processor type, etc. */
GetSystemInfo (&sysinfo_cache);
syspage_mask = sysinfo_cache.dwPageSize - 1;
return data_region_end;
}
-static char *
+static unsigned char *
allocate_heap (void)
{
/* The base address for our GNU malloc heap is chosen in conjunction
still a pretty decent arena to play in! */
unsigned long base = 0x01B00000; /* 27MB */
- unsigned long end = 1 << VALBITS; /* 256MB */
+ /* Temporary hack for the non-starting problem - use 28 (256Mb) rather than VALBITS (1Gb) */
+ unsigned long end = 1 << 28; /* 256MB */
void *ptr = NULL;
#define NTHEAP_PROBE_BASE 1
PAGE_NOACCESS);
#endif
- return ptr;
+ return (unsigned char*) ptr;
}
return result;
}
-#if !defined (CANNOT_DUMP) && !defined(HEAP_IN_DATA)
+#if !defined (CANNOT_DUMP) && !defined(HEAP_IN_DATA) && !defined(PDUMP)
/* Recreate the heap from the data that was dumped to the executable.
EXECUTABLE_PATH tells us where to find the executable. */
void
recreate_heap (char *executable_path)
{
- unsigned char *tmp;
+ void *tmp;
/* First reserve the upper part of our heap. (We reserve first
because there have been problems in the past where doing the