use std::os::unix::io::RawFd;
use std::sync::Arc;
use tokio::sync::Mutex;
use super::notif::NotifPolicy;
use super::state::{
ChrootState, CowState, NetworkState, PolicyFnState, ProcessIndex, ProcfsState, ResourceState,
TimeRandomState,
};
pub struct SupervisorCtx {
pub resource: Arc<Mutex<ResourceState>>,
pub cow: Arc<Mutex<CowState>>,
pub procfs: Arc<Mutex<ProcfsState>>,
pub network: Arc<Mutex<NetworkState>>,
pub time_random: Arc<Mutex<TimeRandomState>>,
pub policy_fn: Arc<Mutex<PolicyFnState>>,
pub chroot: Arc<Mutex<ChrootState>>,
pub netlink: Arc<crate::netlink::NetlinkState>,
pub processes: Arc<ProcessIndex>,
pub policy: Arc<NotifPolicy>,
pub child_pidfd: Option<RawFd>,
pub notif_fd: RawFd,
}