@@ -2618,6 +2618,129 @@ pub const LIO_VECTORED: ::c_int = 4;
2618
2618
pub const LIO_WRITEV : :: c_int = 5 ;
2619
2619
pub const LIO_READV : :: c_int = 6 ;
2620
2620
2621
+ // sys/caprights.h
2622
+ pub const CAP_RIGHTS_VERSION_00 : i32 = 0 ;
2623
+ pub const CAP_RIGHTS_VERSION : i32 = CAP_RIGHTS_VERSION_00 ;
2624
+
2625
+ // sys/capsicum.h
2626
+ macro_rules! cap_right {
2627
+ ( $idx: expr, $bit: expr) => {
2628
+ ( ( 1u64 << ( 57 + ( $idx) ) ) | ( $bit) )
2629
+ } ;
2630
+ }
2631
+ pub const CAP_READ : u64 = cap_right ! ( 0 , 0x0000000000000001u64 ) ;
2632
+ pub const CAP_WRITE : u64 = cap_right ! ( 0 , 0x0000000000000002u64 ) ;
2633
+ pub const CAP_SEEK_TELL : u64 = cap_right ! ( 0 , 0x0000000000000004u64 ) ;
2634
+ pub const CAP_SEEK : u64 = CAP_SEEK_TELL | 0x0000000000000008u64 ;
2635
+ pub const CAP_PREAD : u64 = CAP_SEEK | CAP_READ ;
2636
+ pub const CAP_PWRITE : u64 = CAP_SEEK | CAP_WRITE ;
2637
+ pub const CAP_MMAP : u64 = cap_right ! ( 0 , 0x0000000000000010u64 ) ;
2638
+ pub const CAP_MMAP_R : u64 = CAP_MMAP | CAP_SEEK | CAP_READ ;
2639
+ pub const CAP_MMAP_W : u64 = CAP_MMAP | CAP_SEEK | CAP_WRITE ;
2640
+ pub const CAP_MMAP_X : u64 = CAP_MMAP | CAP_SEEK | 0x0000000000000020u64 ;
2641
+ pub const CAP_MMAP_RW : u64 = CAP_MMAP_R | CAP_MMAP_W ;
2642
+ pub const CAP_MMAP_RX : u64 = CAP_MMAP_R | CAP_MMAP_X ;
2643
+ pub const CAP_MMAP_WX : u64 = CAP_MMAP_W | CAP_MMAP_X ;
2644
+ pub const CAP_MMAP_RWX : u64 = CAP_MMAP_R | CAP_MMAP_W | CAP_MMAP_X ;
2645
+ pub const CAP_CREATE : u64 = cap_right ! ( 0 , 0x0000000000000040u64 ) ;
2646
+ pub const CAP_FEXECVE : u64 = cap_right ! ( 0 , 0x0000000000000080u64 ) ;
2647
+ pub const CAP_FSYNC : u64 = cap_right ! ( 0 , 0x0000000000000100u64 ) ;
2648
+ pub const CAP_FTRUNCATE : u64 = cap_right ! ( 0 , 0x0000000000000200u64 ) ;
2649
+ pub const CAP_LOOKUP : u64 = cap_right ! ( 0 , 0x0000000000000400u64 ) ;
2650
+ pub const CAP_FCHDIR : u64 = cap_right ! ( 0 , 0x0000000000000800u64 ) ;
2651
+ pub const CAP_FCHFLAGS : u64 = cap_right ! ( 0 , 0x0000000000001000u64 ) ;
2652
+ pub const CAP_CHFLAGSAT : u64 = CAP_FCHFLAGS | CAP_LOOKUP ;
2653
+ pub const CAP_FCHMOD : u64 = cap_right ! ( 0 , 0x0000000000002000u64 ) ;
2654
+ pub const CAP_FCHMODAT : u64 = CAP_FCHMOD | CAP_LOOKUP ;
2655
+ pub const CAP_FCHOWN : u64 = cap_right ! ( 0 , 0x0000000000004000u64 ) ;
2656
+ pub const CAP_FCHOWNAT : u64 = CAP_FCHOWN | CAP_LOOKUP ;
2657
+ pub const CAP_FCNTL : u64 = cap_right ! ( 0 , 0x0000000000008000u64 ) ;
2658
+ pub const CAP_FLOCK : u64 = cap_right ! ( 0 , 0x0000000000010000u64 ) ;
2659
+ pub const CAP_FPATHCONF : u64 = cap_right ! ( 0 , 0x0000000000020000u64 ) ;
2660
+ pub const CAP_FSCK : u64 = cap_right ! ( 0 , 0x0000000000040000u64 ) ;
2661
+ pub const CAP_FSTAT : u64 = cap_right ! ( 0 , 0x0000000000080000u64 ) ;
2662
+ pub const CAP_FSTATAT : u64 = CAP_FSTAT | CAP_LOOKUP ;
2663
+ pub const CAP_FSTATFS : u64 = cap_right ! ( 0 , 0x0000000000100000u64 ) ;
2664
+ pub const CAP_FUTIMES : u64 = cap_right ! ( 0 , 0x0000000000200000u64 ) ;
2665
+ pub const CAP_FUTIMESAT : u64 = CAP_FUTIMES | CAP_LOOKUP ;
2666
+ // Note: this was named CAP_LINKAT prior to FreeBSD 11.0.
2667
+ pub const CAP_LINKAT_TARGET : u64 = CAP_LOOKUP | 0x0000000000400000u64 ;
2668
+ pub const CAP_MKDIRAT : u64 = CAP_LOOKUP | 0x0000000000800000u64 ;
2669
+ pub const CAP_MKFIFOAT : u64 = CAP_LOOKUP | 0x0000000001000000u64 ;
2670
+ pub const CAP_MKNODAT : u64 = CAP_LOOKUP | 0x0000000002000000u64 ;
2671
+ // Note: this was named CAP_RENAMEAT prior to FreeBSD 11.0.
2672
+ pub const CAP_RENAMEAT_SOURCE : u64 = CAP_LOOKUP | 0x0000000004000000u64 ;
2673
+ pub const CAP_SYMLINKAT : u64 = CAP_LOOKUP | 0x0000000008000000u64 ;
2674
+ pub const CAP_UNLINKAT : u64 = CAP_LOOKUP | 0x0000000010000000u64 ;
2675
+ pub const CAP_ACCEPT : u64 = cap_right ! ( 0 , 0x0000000020000000u64 ) ;
2676
+ pub const CAP_BIND : u64 = cap_right ! ( 0 , 0x0000000040000000u64 ) ;
2677
+ pub const CAP_CONNECT : u64 = cap_right ! ( 0 , 0x0000000080000000u64 ) ;
2678
+ pub const CAP_GETPEERNAME : u64 = cap_right ! ( 0 , 0x0000000100000000u64 ) ;
2679
+ pub const CAP_GETSOCKNAME : u64 = cap_right ! ( 0 , 0x0000000200000000u64 ) ;
2680
+ pub const CAP_GETSOCKOPT : u64 = cap_right ! ( 0 , 0x0000000400000000u64 ) ;
2681
+ pub const CAP_LISTEN : u64 = cap_right ! ( 0 , 0x0000000800000000u64 ) ;
2682
+ pub const CAP_PEELOFF : u64 = cap_right ! ( 0 , 0x0000001000000000u64 ) ;
2683
+ pub const CAP_RECV : u64 = CAP_READ ;
2684
+ pub const CAP_SEND : u64 = CAP_WRITE ;
2685
+ pub const CAP_SETSOCKOPT : u64 = cap_right ! ( 0 , 0x0000002000000000u64 ) ;
2686
+ pub const CAP_SHUTDOWN : u64 = cap_right ! ( 0 , 0x0000004000000000u64 ) ;
2687
+ pub const CAP_BINDAT : u64 = CAP_LOOKUP | 0x0000008000000000u64 ;
2688
+ pub const CAP_CONNECTAT : u64 = CAP_LOOKUP | 0x0000010000000000u64 ;
2689
+ pub const CAP_LINKAT_SOURCE : u64 = CAP_LOOKUP | 0x0000020000000000u64 ;
2690
+ pub const CAP_RENAMEAT_TARGET : u64 = CAP_LOOKUP | 0x0000040000000000u64 ;
2691
+ pub const CAP_SOCK_CLIENT : u64 = CAP_CONNECT
2692
+ | CAP_GETPEERNAME
2693
+ | CAP_GETSOCKNAME
2694
+ | CAP_GETSOCKOPT
2695
+ | CAP_PEELOFF
2696
+ | CAP_RECV
2697
+ | CAP_SEND
2698
+ | CAP_SETSOCKOPT
2699
+ | CAP_SHUTDOWN ;
2700
+ pub const CAP_SOCK_SERVER : u64 = CAP_ACCEPT
2701
+ | CAP_BIND
2702
+ | CAP_GETPEERNAME
2703
+ | CAP_GETSOCKNAME
2704
+ | CAP_GETSOCKOPT
2705
+ | CAP_LISTEN
2706
+ | CAP_PEELOFF
2707
+ | CAP_RECV
2708
+ | CAP_SEND
2709
+ | CAP_SETSOCKOPT
2710
+ | CAP_SHUTDOWN ;
2711
+ pub const CAP_ALL0 : u64 = cap_right ! ( 0 , 0x000007FFFFFFFFFFu64 ) ;
2712
+ pub const CAP_UNUSED0_44 : u64 = cap_right ! ( 0 , 0x0000080000000000u64 ) ;
2713
+ pub const CAP_UNUSED0_57 : u64 = cap_right ! ( 0 , 0x0100000000000000u64 ) ;
2714
+ pub const CAP_MAC_GET : u64 = cap_right ! ( 1 , 0x0000000000000001u64 ) ;
2715
+ pub const CAP_MAC_SET : u64 = cap_right ! ( 1 , 0x0000000000000002u64 ) ;
2716
+ pub const CAP_SEM_GETVALUE : u64 = cap_right ! ( 1 , 0x0000000000000004u64 ) ;
2717
+ pub const CAP_SEM_POST : u64 = cap_right ! ( 1 , 0x0000000000000008u64 ) ;
2718
+ pub const CAP_SEM_WAIT : u64 = cap_right ! ( 1 , 0x0000000000000010u64 ) ;
2719
+ pub const CAP_EVENT : u64 = cap_right ! ( 1 , 0x0000000000000020u64 ) ;
2720
+ pub const CAP_KQUEUE_EVENT : u64 = cap_right ! ( 1 , 0x0000000000000040u64 ) ;
2721
+ pub const CAP_IOCTL : u64 = cap_right ! ( 1 , 0x0000000000000080u64 ) ;
2722
+ pub const CAP_TTYHOOK : u64 = cap_right ! ( 1 , 0x0000000000000100u64 ) ;
2723
+ pub const CAP_PDGETPID : u64 = cap_right ! ( 1 , 0x0000000000000200u64 ) ;
2724
+ pub const CAP_PDWAIT : u64 = cap_right ! ( 1 , 0x0000000000000400u64 ) ;
2725
+ pub const CAP_PDKILL : u64 = cap_right ! ( 1 , 0x0000000000000800u64 ) ;
2726
+ pub const CAP_EXTATTR_DELETE : u64 = cap_right ! ( 1 , 0x0000000000001000u64 ) ;
2727
+ pub const CAP_EXTATTR_GET : u64 = cap_right ! ( 1 , 0x0000000000002000u64 ) ;
2728
+ pub const CAP_EXTATTR_LIST : u64 = cap_right ! ( 1 , 0x0000000000004000u64 ) ;
2729
+ pub const CAP_EXTATTR_SET : u64 = cap_right ! ( 1 , 0x0000000000008000u64 ) ;
2730
+ pub const CAP_ACL_CHECK : u64 = cap_right ! ( 1 , 0x0000000000010000u64 ) ;
2731
+ pub const CAP_ACL_DELETE : u64 = cap_right ! ( 1 , 0x0000000000020000u64 ) ;
2732
+ pub const CAP_ACL_GET : u64 = cap_right ! ( 1 , 0x0000000000040000u64 ) ;
2733
+ pub const CAP_ACL_SET : u64 = cap_right ! ( 1 , 0x0000000000080000u64 ) ;
2734
+ pub const CAP_KQUEUE_CHANGE : u64 = cap_right ! ( 1 , 0x0000000000100000u64 ) ;
2735
+ pub const CAP_KQUEUE : u64 = CAP_KQUEUE_EVENT | CAP_KQUEUE_CHANGE ;
2736
+ pub const CAP_ALL1 : u64 = cap_right ! ( 1 , 0x00000000001FFFFFu64 ) ;
2737
+ pub const CAP_UNUSED1_22 : u64 = cap_right ! ( 1 , 0x0000000000200000u64 ) ;
2738
+ pub const CAP_UNUSED1_57 : u64 = cap_right ! ( 1 , 0x0100000000000000u64 ) ;
2739
+ pub const CAP_FCNTL_GETFL : u32 = 1 << 3 ;
2740
+ pub const CAP_FCNTL_SETFL : u32 = 1 << 4 ;
2741
+ pub const CAP_FCNTL_GETOWN : u32 = 1 << 5 ;
2742
+ pub const CAP_FCNTL_SETOWN : u32 = 1 << 6 ;
2743
+
2621
2744
// sys/devicestat.h
2622
2745
pub const DEVSTAT_N_TRANS_FLAGS : :: c_int = 4 ;
2623
2746
pub const DEVSTAT_NAME_LEN : :: c_int = 16 ;
0 commit comments