//! Linux syscall sandboxing
//!
//! `efdn-security` contains the typed seccomp implementation behind
//! `efdn::security`. Use the `efdn` facade in service code.

#[cfg(target_os = "linux")]
mod bpf;
mod error;
mod rule;
mod sandbox;
mod syscall;

pub use error::SecurityError;
pub use rule::{ArgCmp, ArgCmpValue, RawOsErrorNum, Rule, ViolationAction};
pub use sandbox::{
    enable_syscall_sandboxing, forbid_x86_64_cpu_cycle_counter,
    is_syscall_sandboxing_enabled_for_current_thread,
};
pub use syscall::Syscall;

/// Result returned by security setup functions
pub type SecurityResult<T> = Result<T, SecurityError>;
