blob: 9892e3428be61ec467f8189672dee98adf2eb3b9 [file] [log] [blame]
#include <sys/mman.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
/* The quick sanity check of Memcheck (and other skins with shadow memory)
relies on the first 64KB of memory never being used. So our mmap()
refuses to touch this area. This program tests for that. */
int main(void)
{
/* mmap(0x0, ... FIXED) should fail */
int* m = mmap(0x0, 1000000, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0);
if (m != (int*)-1)
printf("succeeded?!\n");
/* mmap(0x1000, ... FIXED) should fail */
m = mmap((void*)0x1000, 1000000, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0);
if (m != (int*)-1)
printf("succeeded?!\n");
/* mmap(0xa000, ... FIXED) should fail */
m = mmap((void*)0xa000, 1000000, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0);
if (m != (int*)-1)
printf("succeeded?!\n");
/* mmap(0x10000, ... FIXED) should fail */
m = mmap((void*)0x10000, 1000000, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0);
if (m == (int*)-1)
printf("failed?!\n");
return 0;
}