/* Functions for memory limit warnings.
- Copyright (C) 1990, 1992, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1992, 2001-2013 Free Software Foundation, Inc.
This file is part of GNU Emacs.
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
-#include <setjmp.h>
+#include <unistd.h> /* for 'environ', on AIX */
#include "lisp.h"
#include "mem-limits.h"
enum warnlevel { not_warned, warned_75, warned_85, warned_95 };
static enum warnlevel warnlevel;
-typedef POINTER_TYPE *POINTER;
+typedef void *POINTER;
/* Function to call to issue a warning;
0 means don't issue them. */
static POINTER data_space_start;
/* Number of bytes of writable memory we can expect to be able to get. */
-static unsigned long lim_data;
+static size_t lim_data;
\f
#if defined (HAVE_GETRLIMIT) && defined (RLIMIT_AS)
#else /* not USG */
#ifdef WINDOWSNT
+#include "w32heap.h"
+
static void
get_lim_data (void)
{
- extern unsigned long reserved_heap_size;
+ extern size_t reserved_heap_size;
lim_data = reserved_heap_size;
}
check_memory_limits (void)
{
#ifdef REL_ALLOC
- extern POINTER (*real_morecore) (SIZE);
+ extern POINTER (*real_morecore) (ptrdiff_t);
#endif
- extern POINTER (*__morecore) (SIZE);
+ extern POINTER (*__morecore) (ptrdiff_t);
register POINTER cp;
- unsigned long five_percent;
- unsigned long data_size;
+ size_t five_percent;
+ size_t data_size;
enum warnlevel new_warnlevel;
if (lim_data == 0)
(*warn_function) ("Warning: memory in use exceeds lisp pointer size");
}
\f
-#if !defined(CANNOT_DUMP) || !defined(SYSTEM_MALLOC)
+#if !defined (CANNOT_DUMP) || !defined (SYSTEM_MALLOC)
/* Some systems that cannot dump also cannot implement these. */
/*
* is known to live at or near the start of the system crt0.c, and
* we don't sweat the handful of bytes that might lose.
*/
- extern char **environ;
return ((POINTER) &environ);
#else
extern int data_start;
/* Force data limit to be recalculated on each run. */
lim_data = 0;
}
-