Annotation of qemu/tests/cris/check_mmap1.c, revision 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.