Contributed by Fred Fish at Cygnus Support. fnf@cygnus.com */
-/* Copyright (c) 2010-2012. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-2014. The SimGrid Team.
+ * All rights reserved. */
/* 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. */
#include <stdio.h>
#include <fcntl.h>
#include <sys/mman.h>
+#include <sys/wait.h>
#include "mmprivate.h"
-/* Cache the pagesize for the current host machine. Note that if the host
- does not readily provide a getpagesize() function, we need to emulate it
- elsewhere, not clutter up this file with lots of kluges to try to figure
- it out. */
-
-static size_t pagesize;
-
-#define PAGE_ALIGN(addr) (void*) (((long)(addr) + pagesize - 1) & \
- ~(pagesize - 1))
+#define PAGE_ALIGN(addr) (void*) (((long)(addr) + xbt_pagesize - 1) & \
+ ~((long)xbt_pagesize - 1))
/* Return MAP_PRIVATE if MDP represents /dev/zero. Otherwise, return
MAP_SHARED. */
It never returns NULL. Instead, it dies verbosely on errors. */
-void *mmorecore(struct mdesc *mdp, int size)
+void *mmorecore(struct mdesc *mdp, ssize_t size)
{
ssize_t test = 0;
void *result; // please keep it uninitialized to track issues
char buf = 0; /* Single byte to write to extend mapped file */
// fprintf(stderr,"increase %p by %u\n",mdp,size);
- if (pagesize == 0)
- pagesize = getpagesize();
if (size == 0) {
/* Just return the current "break" value. */