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 
main(void)15 int main(void)
16 {
17 	char *buf;
18 	int fd, ret;
19 	unsigned int i;
20 
21 	fd = open("/dev/zero", O_RDONLY);
22 	if (fd < 0)
23 		return 1;
24 
25 	buf = mmap(NULL, 4096, PROT_READ, MAP_PRIVATE, fd, 0);
26 	if (buf == (char *)-1)
27 		return 2;
28 
29 	for (i = 0; i < 4096; i++) {
30 		if (buf[i] != 0)
31 			return 3;
32 	}
33 
34 	ret = munmap(buf, 4096);
35 	if (ret < 0)
36 		return 4;
37 
38 	ret = close(fd);
39 	if (ret < 0)
40 		return 5;
41 
42 	return 0;
43 }
44