/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
+#ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+#endif
+
#ifdef HAVE_UNISTD_H
#include <unistd.h> /* Prototypes for lseek */
#endif
/* Return MAP_PRIVATE if MDP represents /dev/zero. Otherwise, return
MAP_SHARED. */
-#define MAP_PRIVATE_OR_SHARED(MDP) ((MDP -> flags & MMALLOC_DEVZERO) \
+#define MAP_PRIVATE_OR_SHARED(MDP) (( MDP -> flags & MMALLOC_ANONYMOUS) \
? MAP_PRIVATE \
: MAP_SHARED)
void*
__mmalloc_mmap_morecore (struct mdesc *mdp, int size)
{
+ ssize_t test = 0;
void* result = NULL;
off_t foffset; /* File offset at which new mapping will start */
size_t mapbytes; /* Number of bytes to map */
if( mdp -> fd > 0){
/* FIXME: Test results of lseek() and write() */
lseek (mdp -> fd, foffset + mapbytes - 1, SEEK_SET);
- write (mdp -> fd, &buf, 1);
+ test = write (mdp -> fd, &buf, 1);
}
/* Let's call mmap. Note that it is possible that mdp->top
to signal an error return, and besides, it is useful to
catch NULL pointers if it is unmapped. Instead start
at the next page boundary. */
- base = (void*) getpagesize ();
+ base = (void*)(long) getpagesize ();
}
else if (base == (void*) -1)
{