34 lines
668 B
C
34 lines
668 B
C
|
/*
|
||
|
#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);
|
||
|
}
|