]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/capsicum-test/capsicum-linux.h
bhyvectl(8): Normalize the man page date
[FreeBSD/FreeBSD.git] / contrib / capsicum-test / capsicum-linux.h
1 #ifndef __CAPSICUM_LINUX_H__
2 #define __CAPSICUM_LINUX_H__
3
4 #ifdef __linux__
5 /************************************************************
6  * Linux Capsicum Functionality.
7  ************************************************************/
8 #include <errno.h>
9 #include <sys/procdesc.h>
10 #include <sys/capsicum.h>
11
12 #define HAVE_CAP_RIGHTS_LIMIT
13 #define HAVE_CAP_RIGHTS_GET
14 #define HAVE_CAP_FCNTLS_LIMIT
15 #define HAVE_CAP_IOCTLS_LIMIT
16 #define HAVE_PROC_FDINFO
17 #define HAVE_PDWAIT4
18 #define CAP_FROM_ACCEPT
19 // TODO(drysdale): uncomment if/when Linux propagates rights on sctp_peeloff.
20 // Linux does not generate a capability from sctp_peeloff(cap_fd,...).
21 // #define CAP_FROM_PEELOFF
22 // TODO(drysdale): uncomment if/when Linux allows intermediate .. path segments
23 // for openat()-like operations.
24 // #define HAVE_OPENAT_INTERMEDIATE_DOTDOT
25
26 // Failure to open file due to path traversal generates EPERM
27 #ifdef ENOTBENEATH
28 #define E_NO_TRAVERSE_CAPABILITY ENOTBENEATH
29 #define E_NO_TRAVERSE_O_BENEATH ENOTBENEATH
30 #else
31 #define E_NO_TRAVERSE_CAPABILITY EPERM
32 #define E_NO_TRAVERSE_O_BENEATH EPERM
33 #endif
34
35 // Too many links
36 #define E_TOO_MANY_LINKS ELOOP
37
38 #endif /* __linux__ */
39
40 #endif /*__CAPSICUM_LINUX_H__*/