summaryrefslogtreecommitdiff
path: root/src/w32heap.h
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-11-01 10:27:02 +0000
committerRichard M. Stallman <rms@gnu.org>1994-11-01 10:27:02 +0000
commitb806b54d0af3bf1b2bb68eb4806ed3545ac19c3f (patch)
treebeb54470412d29369c4af72d104fff21e9fb9b07 /src/w32heap.h
parentb2bb196bf2a68779e6a49092ea4a1cf9e9e3adc3 (diff)
downloademacs-b806b54d0af3bf1b2bb68eb4806ed3545ac19c3f.tar.gz
Initial revision
Diffstat (limited to 'src/w32heap.h')
-rw-r--r--src/w32heap.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/w32heap.h b/src/w32heap.h
new file mode 100644
index 00000000000..9cf2882bfe3
--- /dev/null
+++ b/src/w32heap.h
@@ -0,0 +1,72 @@
+/* Heap management routines (including unexec) for GNU Emacs on Windows NT.
+ Copyright (C) 1994 Free Software Foundation, Inc.
+
+ This file is part of GNU Emacs.
+
+ GNU Emacs is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any later
+ version.
+
+ GNU Emacs is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along
+ with GNU Emacs; see the file COPYING. If not, write to the Free Software
+ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ Geoff Voelker (voelker@cs.washington.edu) 7-29-94
+*/
+
+#ifndef NTHEAP_H_
+#define NTHEAP_H_
+
+#include <windows.h>
+
+/*
+ * Heap related stuff.
+ */
+#define get_data_region_base() (char *) 0x00030000
+#define get_reserved_heap_size() (0x00d00000 - 0x00030000)
+#define get_committed_heap_size() (get_data_end () - get_data_start ())
+#define get_heap_start() get_data_start ()
+#define get_heap_end() get_data_end ()
+#define get_page_size() sysinfo_cache.dwPageSize
+#define get_allocation_unit() sysinfo_cache.dwAllocationGranularity
+#define get_processor_type() sysinfo_cache.dwProcessorType
+#define get_nt_major_version() nt_major_version
+#define get_nt_minor_version() nt_minor_version
+
+extern unsigned char *get_data_start();
+extern unsigned char *get_data_end();
+extern unsigned long data_region_size;
+extern SYSTEM_INFO sysinfo_cache;
+extern BOOL need_to_recreate_heap;
+extern int nt_major_version;
+extern int nt_minor_version;
+
+/* Emulation of Unix sbrk(). */
+extern void *sbrk (unsigned long size);
+
+/* Recreate the heap created during dumping. */
+extern void recreate_heap (char *executable_path);
+
+/* Round the heap to this size. */
+extern void round_heap (unsigned long size);
+
+/* Load in the dumped .bss section. */
+extern void read_in_bss (char *name);
+
+/* Map in the dumped heap. */
+extern void map_in_heap (char *name);
+
+/* Cache system info, e.g., the NT page size. */
+extern void cache_system_info (void);
+
+/* Round ADDRESS up to be aligned with ALIGN. */
+extern unsigned char *round_to_next (unsigned char *address,
+ unsigned long align);
+
+#endif /* NTHEAP_H_ */