Annotation of qemu/tests/cris/check_mmap1.c, revision 1.1.1.1

1.1       root        1: /*
                      2: #notarget: cris*-*-elf
                      3: */
                      4: 
                      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>
                     14: 
                     15: int main (int argc, char *argv[])
                     16: {
                     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";
                     22: 
                     23:   if (fd == -1)
                     24:     {
                     25:       perror ("open");
                     26:       abort ();
                     27:     }
                     28: 
                     29:   if (fstat (fd, &sb) < 0)
                     30:     {
                     31:       perror ("fstat");
                     32:       abort ();
                     33:     }
                     34: 
                     35:   size = sb.st_size;
                     36: 
                     37:   /* We want to test mmapping a size that isn't exactly a page.  */
                     38:   if ((size & 8191) == 0)
                     39:     size--;
                     40: 
                     41:   a = mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
                     42: 
                     43:   if (memmem (a, size, str, strlen (str) + 1) == NULL)
                     44:     abort ();
                     45: 
                     46:   printf ("pass\n");
                     47:   exit (0);
                     48: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.