Skip to content

Commit 2ef3a36

Browse files
asomersJohnTitor
authored andcommitted
Add FreeBSD's Capsicum constants
1 parent dff1a71 commit 2ef3a36

File tree

2 files changed

+217
-0
lines changed

2 files changed

+217
-0
lines changed

libc-test/semver/freebsd.txt

+94
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,100 @@ BUFSIZ
144144
BUS_ADRALN
145145
BUS_ADRERR
146146
BUS_OBJERR
147+
CAP_READ
148+
CAP_RIGHTS_VERSION_00
149+
CAP_RIGHTS_VERSION
150+
CAP_WRITE
151+
CAP_SEEK_TELL
152+
CAP_SEEK
153+
CAP_PREAD
154+
CAP_PWRITE
155+
CAP_MMAP
156+
CAP_MMAP_R
157+
CAP_MMAP_W
158+
CAP_MMAP_X
159+
CAP_MMAP_RW
160+
CAP_MMAP_RX
161+
CAP_MMAP_WX
162+
CAP_MMAP_RWX
163+
CAP_CREATE
164+
CAP_FEXECVE
165+
CAP_FSYNC
166+
CAP_FTRUNCATE
167+
CAP_LOOKUP
168+
CAP_FCHDIR
169+
CAP_FCHFLAGS
170+
CAP_CHFLAGSAT
171+
CAP_FCHMOD
172+
CAP_FCHMODAT
173+
CAP_FCHOWN
174+
CAP_FCHOWNAT
175+
CAP_FCNTL
176+
CAP_FLOCK
177+
CAP_FPATHCONF
178+
CAP_FSCK
179+
CAP_FSTAT
180+
CAP_FSTATAT
181+
CAP_FSTATFS
182+
CAP_FUTIMES
183+
CAP_FUTIMESAT
184+
CAP_LINKAT_TARGET
185+
CAP_MKDIRAT
186+
CAP_MKFIFOAT
187+
CAP_MKNODAT
188+
CAP_RENAMEAT_SOURCE
189+
CAP_SYMLINKAT
190+
CAP_UNLINKAT
191+
CAP_ACCEPT
192+
CAP_BIND
193+
CAP_CONNECT
194+
CAP_GETPEERNAME
195+
CAP_GETSOCKNAME
196+
CAP_GETSOCKOPT
197+
CAP_LISTEN
198+
CAP_PEELOFF
199+
CAP_RECV
200+
CAP_SEND
201+
CAP_SETSOCKOPT
202+
CAP_SHUTDOWN
203+
CAP_BINDAT
204+
CAP_CONNECTAT
205+
CAP_LINKAT_SOURCE
206+
CAP_RENAMEAT_TARGET
207+
CAP_SOCK_CLIENT
208+
CAP_SOCK_SERVER
209+
CAP_ALL0
210+
CAP_UNUSED0_44
211+
CAP_UNUSED0_57
212+
CAP_MAC_GET
213+
CAP_MAC_SET
214+
CAP_SEM_GETVALUE
215+
CAP_SEM_POST
216+
CAP_SEM_WAIT
217+
CAP_EVENT
218+
CAP_KQUEUE_EVENT
219+
CAP_IOCTL
220+
CAP_TTYHOOK
221+
CAP_PDGETPID
222+
CAP_PDWAIT
223+
CAP_PDKILL
224+
CAP_EXTATTR_DELETE
225+
CAP_EXTATTR_GET
226+
CAP_EXTATTR_LIST
227+
CAP_EXTATTR_SET
228+
CAP_ACL_CHECK
229+
CAP_ACL_DELETE
230+
CAP_ACL_GET
231+
CAP_ACL_SET
232+
CAP_KQUEUE_CHANGE
233+
CAP_KQUEUE
234+
CAP_ALL1
235+
CAP_UNUSED1_22
236+
CAP_UNUSED1_57
237+
CAP_FCNTL_GETFL
238+
CAP_FCNTL_SETFL
239+
CAP_FCNTL_GETOWN
240+
CAP_FCNTL_SETOWN
147241
CCAR_OFLOW
148242
CCTS_OFLOW
149243
CDSR_OFLOW

src/unix/bsd/freebsdlike/freebsd/mod.rs

+123
Original file line numberDiff line numberDiff line change
@@ -2546,6 +2546,129 @@ pub const LIO_VECTORED: ::c_int = 4;
25462546
pub const LIO_WRITEV: ::c_int = 5;
25472547
pub const LIO_READV: ::c_int = 6;
25482548

2549+
// sys/caprights.h
2550+
pub const CAP_RIGHTS_VERSION_00: i32 = 0;
2551+
pub const CAP_RIGHTS_VERSION: i32 = CAP_RIGHTS_VERSION_00;
2552+
2553+
// sys/capsicum.h
2554+
macro_rules! cap_right {
2555+
($idx:expr, $bit:expr) => {
2556+
((1u64 << (57 + ($idx))) | ($bit))
2557+
};
2558+
}
2559+
pub const CAP_READ: u64 = cap_right!(0, 0x0000000000000001u64);
2560+
pub const CAP_WRITE: u64 = cap_right!(0, 0x0000000000000002u64);
2561+
pub const CAP_SEEK_TELL: u64 = cap_right!(0, 0x0000000000000004u64);
2562+
pub const CAP_SEEK: u64 = CAP_SEEK_TELL | 0x0000000000000008u64;
2563+
pub const CAP_PREAD: u64 = CAP_SEEK | CAP_READ;
2564+
pub const CAP_PWRITE: u64 = CAP_SEEK | CAP_WRITE;
2565+
pub const CAP_MMAP: u64 = cap_right!(0, 0x0000000000000010u64);
2566+
pub const CAP_MMAP_R: u64 = CAP_MMAP | CAP_SEEK | CAP_READ;
2567+
pub const CAP_MMAP_W: u64 = CAP_MMAP | CAP_SEEK | CAP_WRITE;
2568+
pub const CAP_MMAP_X: u64 = CAP_MMAP | CAP_SEEK | 0x0000000000000020u64;
2569+
pub const CAP_MMAP_RW: u64 = CAP_MMAP_R | CAP_MMAP_W;
2570+
pub const CAP_MMAP_RX: u64 = CAP_MMAP_R | CAP_MMAP_X;
2571+
pub const CAP_MMAP_WX: u64 = CAP_MMAP_W | CAP_MMAP_X;
2572+
pub const CAP_MMAP_RWX: u64 = CAP_MMAP_R | CAP_MMAP_W | CAP_MMAP_X;
2573+
pub const CAP_CREATE: u64 = cap_right!(0, 0x0000000000000040u64);
2574+
pub const CAP_FEXECVE: u64 = cap_right!(0, 0x0000000000000080u64);
2575+
pub const CAP_FSYNC: u64 = cap_right!(0, 0x0000000000000100u64);
2576+
pub const CAP_FTRUNCATE: u64 = cap_right!(0, 0x0000000000000200u64);
2577+
pub const CAP_LOOKUP: u64 = cap_right!(0, 0x0000000000000400u64);
2578+
pub const CAP_FCHDIR: u64 = cap_right!(0, 0x0000000000000800u64);
2579+
pub const CAP_FCHFLAGS: u64 = cap_right!(0, 0x0000000000001000u64);
2580+
pub const CAP_CHFLAGSAT: u64 = CAP_FCHFLAGS | CAP_LOOKUP;
2581+
pub const CAP_FCHMOD: u64 = cap_right!(0, 0x0000000000002000u64);
2582+
pub const CAP_FCHMODAT: u64 = CAP_FCHMOD | CAP_LOOKUP;
2583+
pub const CAP_FCHOWN: u64 = cap_right!(0, 0x0000000000004000u64);
2584+
pub const CAP_FCHOWNAT: u64 = CAP_FCHOWN | CAP_LOOKUP;
2585+
pub const CAP_FCNTL: u64 = cap_right!(0, 0x0000000000008000u64);
2586+
pub const CAP_FLOCK: u64 = cap_right!(0, 0x0000000000010000u64);
2587+
pub const CAP_FPATHCONF: u64 = cap_right!(0, 0x0000000000020000u64);
2588+
pub const CAP_FSCK: u64 = cap_right!(0, 0x0000000000040000u64);
2589+
pub const CAP_FSTAT: u64 = cap_right!(0, 0x0000000000080000u64);
2590+
pub const CAP_FSTATAT: u64 = CAP_FSTAT | CAP_LOOKUP;
2591+
pub const CAP_FSTATFS: u64 = cap_right!(0, 0x0000000000100000u64);
2592+
pub const CAP_FUTIMES: u64 = cap_right!(0, 0x0000000000200000u64);
2593+
pub const CAP_FUTIMESAT: u64 = CAP_FUTIMES | CAP_LOOKUP;
2594+
// Note: this was named CAP_LINKAT prior to FreeBSD 11.0.
2595+
pub const CAP_LINKAT_TARGET: u64 = CAP_LOOKUP | 0x0000000000400000u64;
2596+
pub const CAP_MKDIRAT: u64 = CAP_LOOKUP | 0x0000000000800000u64;
2597+
pub const CAP_MKFIFOAT: u64 = CAP_LOOKUP | 0x0000000001000000u64;
2598+
pub const CAP_MKNODAT: u64 = CAP_LOOKUP | 0x0000000002000000u64;
2599+
// Note: this was named CAP_RENAMEAT prior to FreeBSD 11.0.
2600+
pub const CAP_RENAMEAT_SOURCE: u64 = CAP_LOOKUP | 0x0000000004000000u64;
2601+
pub const CAP_SYMLINKAT: u64 = CAP_LOOKUP | 0x0000000008000000u64;
2602+
pub const CAP_UNLINKAT: u64 = CAP_LOOKUP | 0x0000000010000000u64;
2603+
pub const CAP_ACCEPT: u64 = cap_right!(0, 0x0000000020000000u64);
2604+
pub const CAP_BIND: u64 = cap_right!(0, 0x0000000040000000u64);
2605+
pub const CAP_CONNECT: u64 = cap_right!(0, 0x0000000080000000u64);
2606+
pub const CAP_GETPEERNAME: u64 = cap_right!(0, 0x0000000100000000u64);
2607+
pub const CAP_GETSOCKNAME: u64 = cap_right!(0, 0x0000000200000000u64);
2608+
pub const CAP_GETSOCKOPT: u64 = cap_right!(0, 0x0000000400000000u64);
2609+
pub const CAP_LISTEN: u64 = cap_right!(0, 0x0000000800000000u64);
2610+
pub const CAP_PEELOFF: u64 = cap_right!(0, 0x0000001000000000u64);
2611+
pub const CAP_RECV: u64 = CAP_READ;
2612+
pub const CAP_SEND: u64 = CAP_WRITE;
2613+
pub const CAP_SETSOCKOPT: u64 = cap_right!(0, 0x0000002000000000u64);
2614+
pub const CAP_SHUTDOWN: u64 = cap_right!(0, 0x0000004000000000u64);
2615+
pub const CAP_BINDAT: u64 = CAP_LOOKUP | 0x0000008000000000u64;
2616+
pub const CAP_CONNECTAT: u64 = CAP_LOOKUP | 0x0000010000000000u64;
2617+
pub const CAP_LINKAT_SOURCE: u64 = CAP_LOOKUP | 0x0000020000000000u64;
2618+
pub const CAP_RENAMEAT_TARGET: u64 = CAP_LOOKUP | 0x0000040000000000u64;
2619+
pub const CAP_SOCK_CLIENT: u64 = CAP_CONNECT
2620+
| CAP_GETPEERNAME
2621+
| CAP_GETSOCKNAME
2622+
| CAP_GETSOCKOPT
2623+
| CAP_PEELOFF
2624+
| CAP_RECV
2625+
| CAP_SEND
2626+
| CAP_SETSOCKOPT
2627+
| CAP_SHUTDOWN;
2628+
pub const CAP_SOCK_SERVER: u64 = CAP_ACCEPT
2629+
| CAP_BIND
2630+
| CAP_GETPEERNAME
2631+
| CAP_GETSOCKNAME
2632+
| CAP_GETSOCKOPT
2633+
| CAP_LISTEN
2634+
| CAP_PEELOFF
2635+
| CAP_RECV
2636+
| CAP_SEND
2637+
| CAP_SETSOCKOPT
2638+
| CAP_SHUTDOWN;
2639+
pub const CAP_ALL0: u64 = cap_right!(0, 0x000007FFFFFFFFFFu64);
2640+
pub const CAP_UNUSED0_44: u64 = cap_right!(0, 0x0000080000000000u64);
2641+
pub const CAP_UNUSED0_57: u64 = cap_right!(0, 0x0100000000000000u64);
2642+
pub const CAP_MAC_GET: u64 = cap_right!(1, 0x0000000000000001u64);
2643+
pub const CAP_MAC_SET: u64 = cap_right!(1, 0x0000000000000002u64);
2644+
pub const CAP_SEM_GETVALUE: u64 = cap_right!(1, 0x0000000000000004u64);
2645+
pub const CAP_SEM_POST: u64 = cap_right!(1, 0x0000000000000008u64);
2646+
pub const CAP_SEM_WAIT: u64 = cap_right!(1, 0x0000000000000010u64);
2647+
pub const CAP_EVENT: u64 = cap_right!(1, 0x0000000000000020u64);
2648+
pub const CAP_KQUEUE_EVENT: u64 = cap_right!(1, 0x0000000000000040u64);
2649+
pub const CAP_IOCTL: u64 = cap_right!(1, 0x0000000000000080u64);
2650+
pub const CAP_TTYHOOK: u64 = cap_right!(1, 0x0000000000000100u64);
2651+
pub const CAP_PDGETPID: u64 = cap_right!(1, 0x0000000000000200u64);
2652+
pub const CAP_PDWAIT: u64 = cap_right!(1, 0x0000000000000400u64);
2653+
pub const CAP_PDKILL: u64 = cap_right!(1, 0x0000000000000800u64);
2654+
pub const CAP_EXTATTR_DELETE: u64 = cap_right!(1, 0x0000000000001000u64);
2655+
pub const CAP_EXTATTR_GET: u64 = cap_right!(1, 0x0000000000002000u64);
2656+
pub const CAP_EXTATTR_LIST: u64 = cap_right!(1, 0x0000000000004000u64);
2657+
pub const CAP_EXTATTR_SET: u64 = cap_right!(1, 0x0000000000008000u64);
2658+
pub const CAP_ACL_CHECK: u64 = cap_right!(1, 0x0000000000010000u64);
2659+
pub const CAP_ACL_DELETE: u64 = cap_right!(1, 0x0000000000020000u64);
2660+
pub const CAP_ACL_GET: u64 = cap_right!(1, 0x0000000000040000u64);
2661+
pub const CAP_ACL_SET: u64 = cap_right!(1, 0x0000000000080000u64);
2662+
pub const CAP_KQUEUE_CHANGE: u64 = cap_right!(1, 0x0000000000100000u64);
2663+
pub const CAP_KQUEUE: u64 = CAP_KQUEUE_EVENT | CAP_KQUEUE_CHANGE;
2664+
pub const CAP_ALL1: u64 = cap_right!(1, 0x00000000001FFFFFu64);
2665+
pub const CAP_UNUSED1_22: u64 = cap_right!(1, 0x0000000000200000u64);
2666+
pub const CAP_UNUSED1_57: u64 = cap_right!(1, 0x0100000000000000u64);
2667+
pub const CAP_FCNTL_GETFL: u32 = 1 << 3;
2668+
pub const CAP_FCNTL_SETFL: u32 = 1 << 4;
2669+
pub const CAP_FCNTL_GETOWN: u32 = 1 << 5;
2670+
pub const CAP_FCNTL_SETOWN: u32 = 1 << 6;
2671+
25492672
// sys/devicestat.h
25502673
pub const DEVSTAT_N_TRANS_FLAGS: ::c_int = 4;
25512674
pub const DEVSTAT_NAME_LEN: ::c_int = 16;

0 commit comments

Comments
 (0)