1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-05 19:31:02 -08:00

(MMAP_ALLOCATED_P): New macro to be set from system

configuration files.
(mmap_enlarge): Enlarge mapped regions only if MMAP_ALLOCATED_P
returns 0.
This commit is contained in:
Gerd Moellmann 2002-04-16 07:35:02 +00:00
parent 1440420956
commit 08327b2269
2 changed files with 21 additions and 5 deletions

View file

@ -1,3 +1,10 @@
2002-04-16 Gerd Moellmann <gerd@gnu.org>
* buffer.c (MMAP_ALLOCATED_P): New macro to be set from system
configuration files.
(mmap_enlarge): Enlarge mapped regions only if MMAP_ALLOCATED_P
returns 0.
2002-04-15 Andreas Schwab <schwab@suse.de>
* config.in: Regenerated using autoheader.

View file

@ -1,5 +1,5 @@
/* Buffer manipulation primitives for GNU Emacs.
Copyright (C) 1985,86,87,88,89,93,94,95,97,98, 1999, 2000, 2001
Copyright (C) 1985,86,87,88,89,93,94,95,97,98, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
This file is part of GNU Emacs.
@ -4343,6 +4343,18 @@ static int mmap_initialized_p;
#define MEM_ALIGN sizeof (double)
/* Predicate returning true if part of the address range [START ..
END[ is currently mapped. Used to prevent overwriting an existing
memory mapping.
Default is to conservativly assume the address range is occupied by
something else. This can be overridden by system configuration
files if system-specific means to determine this exists. */
#ifndef MMAP_ALLOCATED_P
#define MMAP_ALLOCATED_P(start, end) 1
#endif
/* Function prototypes. */
static int mmap_free_1 P_ ((struct mmap_region *));
@ -4435,16 +4447,13 @@ mmap_enlarge (r, npages)
}
else if (npages > 0)
{
struct mmap_region *r2;
nbytes = npages * mmap_page_size;
/* Try to map additional pages at the end of the region. We
cannot do this if the address range is already occupied by
something else because mmap deletes any previous mapping.
I'm not sure this is worth doing, let's see. */
r2 = mmap_find (region_end, region_end + nbytes);
if (r2 == NULL)
if (!MMAP_ALLOCATED_P (region_end, region_end + nbytes))
{
POINTER_TYPE *p;