Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright (c) 2015 The Chromium OS Authors. All rights reserved.
      3  * Use of this source code is governed by a BSD-style license that can be
      4  * found in the LICENSE file.
      5  */
      6 
      7 #include <fcntl.h>
      8 #include <stdlib.h>
      9 #include <unistd.h>
     10 
     11 #include <sys/mman.h>
     12 #include <sys/stat.h>
     13 #include <sys/types.h>
     14 
     15 int main(void) {
     16   char *buf;
     17   int fd, ret;
     18   unsigned int i;
     19 
     20   fd = open("/dev/zero", O_RDONLY);
     21   if (fd < 0)
     22     return 1;
     23 
     24   buf = mmap(NULL, 4096, PROT_READ, MAP_PRIVATE, fd, 0);
     25   if (buf == (char *)-1)
     26     return 2;
     27 
     28   for (i = 0; i < 4096; i++) {
     29     if (buf[i] != 0)
     30       return 3;
     31   }
     32 
     33   ret = munmap(buf, 4096);
     34   if (ret < 0)
     35     return 4;
     36 
     37   ret = close(fd);
     38   if (ret < 0)
     39     return 5;
     40 
     41   return 0;
     42 }
     43