@@ -2546,6 +2546,125 @@ pub const LIO_VECTORED: ::c_int = 4;
2546
2546
pub const LIO_WRITEV : :: c_int = 5 ;
2547
2547
pub const LIO_READV : :: c_int = 6 ;
2548
2548
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
+
2549
2668
// sys/devicestat.h
2550
2669
pub const DEVSTAT_N_TRANS_FLAGS : :: c_int = 4 ;
2551
2670
pub const DEVSTAT_NAME_LEN : :: c_int = 16 ;
0 commit comments