xref: /plan9/sys/src/ape/lib/ap/posix/pathconf.c (revision ff8c3af2f44d95267f67219afa20ba82ff6cf7e4)
1 #include	<unistd.h>
2 #include	<limits.h>
3 #include	<errno.h>
4 #include	<sys/limits.h>
5 
6 long
7 pathconf(const char *path, int name)
8 {
9 #pragma ref path
10 
11 	switch(name)
12 	{
13 	case _PC_LINK_MAX:
14 		return LINK_MAX;
15 	case _PC_MAX_CANON:
16 		return MAX_CANON;
17 	case _PC_MAX_INPUT:
18 		return MAX_INPUT;
19 	case _PC_NAME_MAX:
20 		return NAME_MAX;
21 	case _PC_PATH_MAX:
22 		return PATH_MAX;
23 	case _PC_PIPE_BUF:
24 		return PIPE_BUF;
25 	case _PC_CHOWN_RESTRICTED:
26 #ifdef _POSIX_CHOWN_RESTRICTED
27 		return _POSIX_CHOWN_RESTRICTED;
28 #else
29 		return -1;
30 #endif
31 	case _PC_NO_TRUNC:
32 #ifdef _POSIX_NO_TRUNC
33 		return _POSIX_NO_TRUNC;
34 #else
35 		return -1;
36 #endif
37 	case _PC_VDISABLE:
38 #ifdef _POSIX_VDISABLE
39 		return _POSIX_VDISABLE;
40 #else
41 		return -1;
42 #endif
43 	}
44 	errno = EINVAL;
45 	return -1;
46 }
47 
48 long
49 fpathconf(int fd, int name)
50 {
51 #pragma ref fd
52 
53 	return pathconf(0, name);
54 }
55 
56