xref: /linux/tools/testing/selftests/proc/proc-self-wchan.c (revision 9cd65655585523adecd65b750e1537cdea84718e)
1*9cd65655SAlexey Dobriyan #include <sys/types.h>
2*9cd65655SAlexey Dobriyan #include <sys/stat.h>
3*9cd65655SAlexey Dobriyan #include <fcntl.h>
4*9cd65655SAlexey Dobriyan #include <errno.h>
5*9cd65655SAlexey Dobriyan #include <unistd.h>
6*9cd65655SAlexey Dobriyan 
7*9cd65655SAlexey Dobriyan int main(void)
8*9cd65655SAlexey Dobriyan {
9*9cd65655SAlexey Dobriyan 	char buf[64];
10*9cd65655SAlexey Dobriyan 	int fd;
11*9cd65655SAlexey Dobriyan 
12*9cd65655SAlexey Dobriyan 	fd = open("/proc/self/wchan", O_RDONLY);
13*9cd65655SAlexey Dobriyan 	if (fd == -1) {
14*9cd65655SAlexey Dobriyan 		if (errno == ENOENT)
15*9cd65655SAlexey Dobriyan 			return 2;
16*9cd65655SAlexey Dobriyan 		return 1;
17*9cd65655SAlexey Dobriyan 	}
18*9cd65655SAlexey Dobriyan 
19*9cd65655SAlexey Dobriyan 	buf[0] = '\0';
20*9cd65655SAlexey Dobriyan 	if (read(fd, buf, sizeof(buf)) != 1)
21*9cd65655SAlexey Dobriyan 		return 1;
22*9cd65655SAlexey Dobriyan 	if (buf[0] != '0')
23*9cd65655SAlexey Dobriyan 		return 1;
24*9cd65655SAlexey Dobriyan 	return 0;
25*9cd65655SAlexey Dobriyan }
26