diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-11-01 10:27:02 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-11-01 10:27:02 +0000 |
commit | b806b54d0af3bf1b2bb68eb4806ed3545ac19c3f (patch) | |
tree | beb54470412d29369c4af72d104fff21e9fb9b07 /src/w32heap.h | |
parent | b2bb196bf2a68779e6a49092ea4a1cf9e9e3adc3 (diff) | |
download | emacs-b806b54d0af3bf1b2bb68eb4806ed3545ac19c3f.tar.gz |
Initial revision
Diffstat (limited to 'src/w32heap.h')
-rw-r--r-- | src/w32heap.h | 72 |
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_ */ |