diff options
Diffstat (limited to 'gnu/lib/libmalloc/vm-limit.c')
-rw-r--r-- | gnu/lib/libmalloc/vm-limit.c | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/gnu/lib/libmalloc/vm-limit.c b/gnu/lib/libmalloc/vm-limit.c deleted file mode 100644 index 06ea071..0000000 --- a/gnu/lib/libmalloc/vm-limit.c +++ /dev/null @@ -1,134 +0,0 @@ -/* Functions for memory limit warnings. - Copyright (C) 1990, 1992 Free Software Foundation, Inc. - - -This file is part of the GNU C Library. - -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -#ifdef emacs -#include "config.h" -#include "lisp.h" -#endif - -#ifndef emacs -#include <stddef.h> -typedef size_t SIZE; -typedef void *POINTER; -#define EXCEEDS_LISP_PTR(x) 0 -#endif - -#include "mem-limits.h" - -/* - Level number of warnings already issued. - 0 -- no warnings issued. - 1 -- 75% warning already issued. - 2 -- 85% warning already issued. - 3 -- 95% warning issued; keep warning frequently. -*/ -static int warnlevel; - -/* Function to call to issue a warning; - 0 means don't issue them. */ -static void (*warn_function) (); - -/* Get more memory space, complaining if we're near the end. */ - -static void -check_memory_limits () -{ - extern POINTER (*__morecore) (); - - register POINTER cp; - int five_percent; - int data_size; - - if (lim_data == 0) - get_lim_data (); - five_percent = lim_data / 20; - - /* Find current end of memory and issue warning if getting near max */ - cp = (char *) (*__morecore) (0); - data_size = (char *) cp - (char *) data_space_start; - - if (warn_function) - switch (warnlevel) - { - case 0: - if (data_size > five_percent * 15) - { - warnlevel++; - (*warn_function) ("Warning: past 75% of memory limit"); - } - break; - - case 1: - if (data_size > five_percent * 17) - { - warnlevel++; - (*warn_function) ("Warning: past 85% of memory limit"); - } - break; - - case 2: - if (data_size > five_percent * 19) - { - warnlevel++; - (*warn_function) ("Warning: past 95% of memory limit"); - } - break; - - default: - (*warn_function) ("Warning: past acceptable memory limits"); - break; - } - - /* If we go down below 70% full, issue another 75% warning - when we go up again. */ - if (data_size < five_percent * 14) - warnlevel = 0; - /* If we go down below 80% full, issue another 85% warning - when we go up again. */ - else if (warnlevel > 1 && data_size < five_percent * 16) - warnlevel = 1; - /* If we go down below 90% full, issue another 95% warning - when we go up again. */ - else if (warnlevel > 2 && data_size < five_percent * 18) - warnlevel = 2; - - if (EXCEEDS_LISP_PTR (cp)) - (*warn_function) ("Warning: memory in use exceeds lisp pointer size"); -} - -/* Cause reinitialization based on job parameters; - also declare where the end of pure storage is. */ - -void -memory_warnings (start, warnfun) - POINTER start; - void (*warnfun) (); -{ - extern void (* __after_morecore_hook) (); /* From gmalloc.c */ - - if (start) - data_space_start = start; - else - data_space_start = start_of_data (); - - warn_function = warnfun; - __after_morecore_hook = check_memory_limits; -} |