/* Heap management routines for GNU Emacs on the Microsoft Windows API.
- Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2001-2014 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#include <config.h>
#include <stdio.h>
+#include "w32common.h"
#include "w32heap.h"
#include "lisp.h" /* for VALMASK */
#define RVA_TO_PTR(rva) ((unsigned char *)((DWORD_PTR)(rva) + (DWORD_PTR)GetModuleHandle (NULL)))
-/* This gives us the page size and the size of the allocation unit on NT. */
-SYSTEM_INFO sysinfo_cache;
-
-/* This gives us version, build, and platform identification. */
-extern unsigned long syspage_mask;
-OSVERSIONINFO osinfo_cache;
-
-/* The major and minor versions of NT. */
-int w32_major_version;
-int w32_minor_version;
-int w32_build_number;
-
-/* Distinguish between Windows NT and Windows 95. */
-int os_subtype;
-
/* Emulate getpagesize. */
int
getpagesize (void)
while (!ptr && (base < end))
{
#ifdef _WIN64
- reserved_heap_size = min(end - base, 0x4000000000i64); /* Limit to 256Gb */
+ reserved_heap_size = min(end - base, 0x4000000000ull); /* Limit to 256Gb */
#else
reserved_heap_size = end - base;
#endif
allocate_heap (void)
{
#ifdef _WIN64
- size_t size = 0x4000000000i64; /* start by asking for 32GB */
+ size_t size = 0x4000000000ull; /* start by asking for 32GB */
#else
- size_t size = 0x80000000; /* start by asking for 2GB */
+ /* We used to start with 2GB here, but on Windows 7 that would leave
+ too little room in the address space for threads started by
+ Windows on our behalf, e.g. when we pop up the file selection
+ dialog. */
+ size_t size = 0x68000000; /* start by asking for 1.7GB */
#endif
void *ptr = NULL;