X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/f920c4419c728960494470e146c5a53bf40d7c0c..24b97d4bf8cb03379c1b7e9ffe21a5ce3e657ba1:/src/mem-limits.h diff --git a/src/mem-limits.h b/src/mem-limits.h index 65384ba3c9..dae4cf7fd4 100644 --- a/src/mem-limits.h +++ b/src/mem-limits.h @@ -1,5 +1,5 @@ /* Includes for memory limit warnings. - Copyright (C) 1990, 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1990, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -15,7 +15,8 @@ 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. */ +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ #ifdef MSDOS #include @@ -29,9 +30,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #define BSD4_2 /* Tell code below to use getrlimit. */ -#else +/* Old Linux startup code won't define __data_start. */ +extern int etext, __data_start; weak_extern (__data_start) +#define start_of_data() (&__data_start ?: &etext) + +#else /* not _LIBC */ -#if defined (__osf__) && (defined (__mips) || defined (mips)) +#if defined (__osf__) && (defined (__mips) || defined (mips) || defined(__alpha)) #include #include #endif @@ -43,7 +48,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef BSD4_2 #ifndef USG #ifndef MSDOS +#ifndef WINDOWSNT #include +#endif /* not WINDOWSNT */ #endif /* not MSDOS */ #endif /* not USG */ #else /* if BSD4_2 */ @@ -51,17 +58,11 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #endif /* BSD4_2 */ -#endif /* _LIBC */ - #ifdef emacs /* The important properties of this type are that 1) it's a pointer, and 2) arithmetic on it should work as if the size of the object pointed to has a size of 1. */ -#ifdef __STDC__ -typedef void *POINTER; -#else -typedef char *POINTER; -#endif +typedef POINTER_TYPE *POINTER; typedef unsigned long SIZE; @@ -73,30 +74,39 @@ typedef unsigned long SIZE; extern POINTER start_of_data (); #ifdef DATA_SEG_BITS #define EXCEEDS_LISP_PTR(ptr) \ - (((unsigned int) (ptr) & ~DATA_SEG_BITS) >> VALBITS) + (((EMACS_UINT) (ptr) & ~DATA_SEG_BITS) >> VALBITS) #else -#define EXCEEDS_LISP_PTR(ptr) ((unsigned int) (ptr) >> VALBITS) +#define EXCEEDS_LISP_PTR(ptr) ((EMACS_UINT) (ptr) >> VALBITS) #endif -#ifdef BSD +#ifdef BSD_SYSTEM #ifndef DATA_SEG_BITS extern char etext; #define start_of_data() &etext #endif #endif -#else /* Not emacs */ +#else /* not emacs */ extern char etext; #define start_of_data() &etext -#endif /* Not emacs */ +#endif /* not emacs */ + +#endif /* not _LIBC */ - /* start of data space; can be changed by calling malloc_init */ static POINTER data_space_start; /* Number of bytes of writable memory we can expect to be able to get */ -static unsigned int lim_data; +static unsigned long lim_data; + +#ifdef NO_LIM_DATA +static void +get_lim_data () +{ + lim_data = -1; +} +#else /* not NO_LIM_DATA */ #ifdef USG @@ -122,6 +132,16 @@ get_lim_data () } #else /* not USG */ +#ifdef WINDOWSNT + +static void +get_lim_data () +{ + extern unsigned long reserved_heap_size; + lim_data = reserved_heap_size; +} + +#else #if !defined (BSD4_2) && !defined (__osf__) #ifdef MSDOS @@ -156,4 +176,6 @@ get_lim_data () #endif } #endif /* BSD4_2 */ +#endif /* not WINDOWSNT */ #endif /* not USG */ +#endif /* not NO_LIM_DATA */