linux seccomp extension for glibc

This commit is contained in:
David Carlier 2021-11-30 19:33:26 +00:00
parent 172ebd09f2
commit 621a3c2a54
4 changed files with 44 additions and 0 deletions

View file

@ -161,6 +161,12 @@ s! {
pub ss_flags: ::c_int, pub ss_flags: ::c_int,
pub ss_size: ::size_t pub ss_size: ::size_t
} }
pub struct seccomp_notif_sizes {
pub seccomp_notif: ::__u16,
pub seccomp_notif_resp: ::__u16,
pub seccomp_data: ::__u16,
}
} }
pub const RLIM_INFINITY: ::rlim_t = !0; pub const RLIM_INFINITY: ::rlim_t = !0;
@ -424,6 +430,11 @@ pub const B3000000: ::speed_t = 0o010015;
pub const B3500000: ::speed_t = 0o010016; pub const B3500000: ::speed_t = 0o010016;
pub const B4000000: ::speed_t = 0o010017; pub const B4000000: ::speed_t = 0o010017;
pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0;
pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1;
pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2;
pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3;
pub const VEOL: usize = 11; pub const VEOL: usize = 11;
pub const VEOL2: usize = 16; pub const VEOL2: usize = 16;
pub const VMIN: usize = 6; pub const VMIN: usize = 6;

View file

@ -235,6 +235,12 @@ s! {
pub ss_flags: ::c_int, pub ss_flags: ::c_int,
pub ss_size: ::size_t pub ss_size: ::size_t
} }
pub struct seccomp_notif_sizes {
pub seccomp_notif: ::__u16,
pub seccomp_notif_resp: ::__u16,
pub seccomp_data: ::__u16,
}
} }
s_no_extra_traits! { s_no_extra_traits! {
@ -1115,6 +1121,11 @@ pub const REG_EFL: ::c_int = 16;
pub const REG_UESP: ::c_int = 17; pub const REG_UESP: ::c_int = 17;
pub const REG_SS: ::c_int = 18; pub const REG_SS: ::c_int = 18;
pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0;
pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1;
pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2;
pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3;
extern "C" { extern "C" {
pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int;
pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ucontext_t) -> ::c_int;

View file

@ -194,6 +194,12 @@ s! {
pub imr_address: ::in_addr, pub imr_address: ::in_addr,
pub imr_ifindex: ::c_int, pub imr_ifindex: ::c_int,
} }
pub struct seccomp_notif_sizes {
pub seccomp_notif: ::__u16,
pub seccomp_notif_resp: ::__u16,
pub seccomp_data: ::__u16,
}
} }
pub const VEOF: usize = 4; pub const VEOF: usize = 4;
@ -526,6 +532,11 @@ pub const B3000000: ::speed_t = 0o010015;
pub const B3500000: ::speed_t = 0o010016; pub const B3500000: ::speed_t = 0o010016;
pub const B4000000: ::speed_t = 0o010017; pub const B4000000: ::speed_t = 0o010017;
pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0;
pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1;
pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2;
pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3;
pub const VEOL: usize = 11; pub const VEOL: usize = 11;
pub const VEOL2: usize = 16; pub const VEOL2: usize = 16;
pub const VMIN: usize = 6; pub const VMIN: usize = 6;

View file

@ -264,6 +264,12 @@ s! {
pub imr_address: ::in_addr, pub imr_address: ::in_addr,
pub imr_ifindex: ::c_int, pub imr_ifindex: ::c_int,
} }
pub struct seccomp_notif_sizes {
pub seccomp_notif: ::__u16,
pub seccomp_notif_resp: ::__u16,
pub seccomp_data: ::__u16,
}
} }
s_no_extra_traits! { s_no_extra_traits! {
@ -820,6 +826,11 @@ pub const REG_TRAPNO: ::c_int = 20;
pub const REG_OLDMASK: ::c_int = 21; pub const REG_OLDMASK: ::c_int = 21;
pub const REG_CR2: ::c_int = 22; pub const REG_CR2: ::c_int = 22;
pub const SECCOMP_SET_MODE_STRICT: ::c_uint = 0;
pub const SECCOMP_SET_MODE_FILTER: ::c_uint = 1;
pub const SECCOMP_GET_ACTION_AVAIL: ::c_uint = 2;
pub const SECCOMP_GET_NOTIF_SIZES: ::c_uint = 3;
extern "C" { extern "C" {
pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int; pub fn getcontext(ucp: *mut ucontext_t) -> ::c_int;
pub fn setcontext(ucp: *const ucontext_t) -> ::c_int; pub fn setcontext(ucp: *const ucontext_t) -> ::c_int;