Julian Seward 3e344c57f6 Merge in a port for mips32-linux, by Petar Jovanovic and Dejan Jevtic,
mips-valgrind@rt-rk.com, Bug 270777.

Valgrind: changes to existing files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12616
2012-06-07 09:13:21 +00:00

32 lines
763 B
C

// Replacement for sys/mman.h which factors out platform differences.
#include <sys/mman.h>
#if defined(VGO_darwin)
# define MAP_ANONYMOUS MAP_ANON
#endif
#include <assert.h>
#include <unistd.h>
// Map a page, then unmap it, then return that address. That
// guarantees to give an address which will fault when accessed,
// without making any assumptions about the layout of the address
// space.
__attribute__((unused))
static void* get_unmapped_page(void)
{
void* ptr;
int r;
long pagesz = sysconf(_SC_PAGE_SIZE);
assert(pagesz == 4096 || pagesz == 16384 || pagesz == 65536);
ptr = mmap(0, pagesz, PROT_READ, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
assert(ptr != (void*)-1);
r = munmap(ptr, pagesz);
assert(r == 0);
return ptr;
}