1*d4f6e58fSAlex Bennée /* 2*d4f6e58fSAlex Bennée #notarget: cris*-*-elf 3*d4f6e58fSAlex Bennée */ 4*d4f6e58fSAlex Bennée 5*d4f6e58fSAlex Bennée #define _GNU_SOURCE 6*d4f6e58fSAlex Bennée #include <string.h> 7*d4f6e58fSAlex Bennée #include <stdlib.h> 8*d4f6e58fSAlex Bennée #include <stdio.h> 9*d4f6e58fSAlex Bennée #include <sys/types.h> 10*d4f6e58fSAlex Bennée #include <sys/stat.h> 11*d4f6e58fSAlex Bennée #include <unistd.h> 12*d4f6e58fSAlex Bennée #include <sys/mman.h> 13*d4f6e58fSAlex Bennée main(int argc,char * argv[])14*d4f6e58fSAlex Bennéeint main (int argc, char *argv[]) 15*d4f6e58fSAlex Bennée { 16*d4f6e58fSAlex Bennée volatile unsigned char *a; 17*d4f6e58fSAlex Bennée 18*d4f6e58fSAlex Bennée /* Check that we can map a non-multiple of a page and still get a full page. */ 19*d4f6e58fSAlex Bennée a = mmap (NULL, 0x4c, PROT_READ | PROT_WRITE | PROT_EXEC, 20*d4f6e58fSAlex Bennée MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); 21*d4f6e58fSAlex Bennée if (a == NULL || a == (unsigned char *) -1) 22*d4f6e58fSAlex Bennée abort (); 23*d4f6e58fSAlex Bennée 24*d4f6e58fSAlex Bennée a[0] = 0xbe; 25*d4f6e58fSAlex Bennée a[8191] = 0xef; 26*d4f6e58fSAlex Bennée memset ((char *) a + 1, 0, 8190); 27*d4f6e58fSAlex Bennée 28*d4f6e58fSAlex Bennée if (a[0] != 0xbe || a[8191] != 0xef) 29*d4f6e58fSAlex Bennée abort (); 30*d4f6e58fSAlex Bennée 31*d4f6e58fSAlex Bennée printf ("pass\n"); 32*d4f6e58fSAlex Bennée exit (0); 33*d4f6e58fSAlex Bennée } 34