X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fntheap.c;h=9372dd12fec20ba9538e17090cc6172baabf22c4;hp=5202196af4fb7c2ef044bf653cbb207e4dc0a210;hb=a7bf8d60d66c38f62928b171842d1b45d4539077;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921 diff --git a/src/ntheap.c b/src/ntheap.c index 5202196..9372dd1 100644 --- a/src/ntheap.c +++ b/src/ntheap.c @@ -38,38 +38,10 @@ unsigned long syspage_mask = 0; 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; @@ -108,7 +80,7 @@ get_data_end (void) return data_region_end; } -static char * +static unsigned char * allocate_heap (void) { /* The base address for our GNU malloc heap is chosen in conjunction @@ -148,7 +120,8 @@ allocate_heap (void) 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 @@ -171,7 +144,7 @@ allocate_heap (void) PAGE_NOACCESS); #endif - return ptr; + return (unsigned char*) ptr; } @@ -189,20 +162,6 @@ sbrk (unsigned long increment) if (!data_region_base) return NULL; -#ifndef USE_MINIMAL_TAGBITS - /* Ensure that the addresses don't use the upper tag bits since - the Lisp type goes there. */ -#ifdef USE_UNION_TYPE - if (((unsigned long) data_region_base & ~((1U << VALBITS) - 1)) != 0) -#else - if (((unsigned long) data_region_base & ~VALMASK) != 0) -#endif - { - printf ("Error: The heap was allocated in upper memory.\n"); - exit (1); - } -#endif - data_region_end = data_region_base; real_data_region_end = data_region_end; data_region_size = get_reserved_heap_size (); @@ -261,14 +220,14 @@ sbrk (unsigned long increment) return result; } -#ifndef CANNOT_DUMP +#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