Skip to content

Commit 40c0501

Browse files
committed
Add FreeBSD's Capsicum constants
1 parent a0f5b4b commit 40c0501

File tree

2 files changed

+211
-0
lines changed

2 files changed

+211
-0
lines changed

libc-test/semver/freebsd.txt

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

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

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

0 commit comments

Comments
 (0)