Merge tag 'qemu-macppc-20230206' of https://github.com/mcayland/qemu into staging
[qemu.git] / tests / tcg / cris / libc / check_mmap2.c
blob35139a0ed9aada699acccdd77c1b9d39e630e3cd
1 /*
2 #notarget: cris*-*-elf
3 */
5 #define _GNU_SOURCE
6 #include <string.h>
7 #include <stdlib.h>
8 #include <stdio.h>
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <fcntl.h>
12 #include <unistd.h>
13 #include <sys/mman.h>
15 int main (int argc, char *argv[])
17 int fd = open (argv[0], O_RDONLY);
18 struct stat sb;
19 int size;
20 void *a;
21 const char *str = "a string you'll only find in the program";
23 if (fd == -1)
25 perror ("open");
26 abort ();
29 if (fstat (fd, &sb) < 0)
31 perror ("fstat");
32 abort ();
35 size = sb.st_size;
37 /* We want to test mmapping a size that isn't exactly a page. */
38 if ((size & 8191) == 0)
39 size--;
41 a = mmap (NULL, size, PROT_READ, MAP_SHARED, fd, 0);
43 if (memmem (a, size, str, strlen (str) + 1) == NULL)
44 abort ();
46 printf ("pass\n");
47 exit (0);