X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6b61353c0a0320ee15bb6488149735381fed62ec..a8a3728b90d75d89368be8e35d5c26468e071d5c:/src/mem-limits.h diff --git a/src/mem-limits.h b/src/mem-limits.h index 578cf59f12..bf57b555c6 100644 --- a/src/mem-limits.h +++ b/src/mem-limits.h @@ -1,12 +1,13 @@ /* Includes for memory limit warnings. - Copyright (C) 1990, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1990, 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004, + 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +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. +the Free Software Foundation, either version 3 of the License, 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 @@ -14,9 +15,7 @@ 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, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +along with GNU Emacs. If not, see . */ #ifdef MSDOS #include @@ -46,10 +45,6 @@ extern int etext, __data_start; weak_extern (__data_start) # endif #endif -#ifdef __bsdi__ -#define BSD4_2 -#endif - #ifdef CYGWIN #define BSD4_2 #endif @@ -81,7 +76,9 @@ typedef unsigned long SIZE; #define NULL ((POINTER) 0) extern POINTER start_of_data (); -#ifdef DATA_SEG_BITS +#if defined USE_LSB_TAG +#define EXCEEDS_LISP_PTR(ptr) 0 +#elif defined DATA_SEG_BITS #define EXCEEDS_LISP_PTR(ptr) \ (((EMACS_UINT) (ptr) & ~DATA_SEG_BITS) >> VALBITS) #else @@ -109,91 +106,5 @@ extern char etext; #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 long lim_data; - -#ifdef NO_LIM_DATA -static void -get_lim_data () -{ - lim_data = -1; -} -#else /* not NO_LIM_DATA */ - -#ifdef USG - -static void -get_lim_data () -{ - extern long ulimit (); - - lim_data = -1; - - /* Use the ulimit call, if we seem to have it. */ -#if !defined (ULIMIT_BREAK_VALUE) || defined (GNU_LINUX) - lim_data = ulimit (3, 0); -#endif - - /* If that didn't work, just use the macro's value. */ -#ifdef ULIMIT_BREAK_VALUE - if (lim_data == -1) - lim_data = ULIMIT_BREAK_VALUE; -#endif - - lim_data -= (long) data_space_start; -} - -#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 -void -get_lim_data () -{ - _go32_dpmi_meminfo info; - - _go32_dpmi_get_free_memory_information (&info); - lim_data = info.available_memory; -} -#else /* not MSDOS */ -static void -get_lim_data () -{ - lim_data = vlimit (LIM_DATA, -1); -} -#endif /* not MSDOS */ - -#else /* BSD4_2 */ - -static void -get_lim_data () -{ - struct rlimit XXrlimit; - - getrlimit (RLIMIT_DATA, &XXrlimit); -#ifdef RLIM_INFINITY - lim_data = XXrlimit.rlim_cur & RLIM_INFINITY; /* soft limit */ -#else - lim_data = XXrlimit.rlim_cur; /* soft limit */ -#endif -} -#endif /* BSD4_2 */ -#endif /* not WINDOWSNT */ -#endif /* not USG */ -#endif /* not NO_LIM_DATA */ - /* arch-tag: fe39244e-e54f-4208-b7aa-02556f7841c5 (do not change this comment) */