| /* |
| * Copyright (c) 2015 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include <fcntl.h> |
| #include <stdlib.h> |
| #include <unistd.h> |
| |
| #include <sys/mman.h> |
| #include <sys/stat.h> |
| #include <sys/types.h> |
| |
| int main(void) { |
| char *buf; |
| int fd, ret; |
| unsigned int i; |
| |
| fd = open("/dev/zero", O_RDONLY); |
| if (fd < 0) |
| return 1; |
| |
| buf = mmap(NULL, 4096, PROT_READ, MAP_PRIVATE, fd, 0); |
| if (buf == (char *)-1) |
| return 2; |
| |
| for (i = 0; i < 4096; i++) { |
| if (buf[i] != 0) |
| return 3; |
| } |
| |
| ret = munmap(buf, 4096); |
| if (ret < 0) |
| return 4; |
| |
| ret = close(fd); |
| if (ret < 0) |
| return 5; |
| |
| return 0; |
| } |