/* | |
#notarget: cris*-*-elf | |
*/ | |
#define _GNU_SOURCE | |
#include <string.h> | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <sys/types.h> | |
#include <sys/stat.h> | |
#include <unistd.h> | |
#include <sys/mman.h> | |
int main (int argc, char *argv[]) | |
{ | |
volatile unsigned char *a; | |
/* Check that we can map a non-multiple of a page and still get a full page. */ | |
a = mmap (NULL, 0x4c, PROT_READ | PROT_WRITE | PROT_EXEC, | |
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); | |
if (a == NULL || a == (unsigned char *) -1) | |
abort (); | |
a[0] = 0xbe; | |
a[8191] = 0xef; | |
memset ((char *) a + 1, 0, 8190); | |
if (a[0] != 0xbe || a[8191] != 0xef) | |
abort (); | |
printf ("pass\n"); | |
exit (0); | |
} |