#[derive(Default, Debug, Clone, PartialEq, Eq)]
#[derive(Deserialize, Serialize)]
#[serde(default, deny_unknown_fields)]
pub struct DomainControllersConfiguration
{
pub io: Option<IoControllerConfiguration>,
pub memory: Option<MemoryControllerConfiguration>,
pub rdma: Option<RdmaControllerConfiguration>,
pub hugetlb: Option<HugetlbControllerConfiguration>,
}
impl DomainControllersConfiguration
{
fn configure(&self, mount_point: &CgroupMountPoint, cgroup: &Rc<NonRootCgroup>, available_controllers: &Controllers, defaults: &DefaultHugePageSizes) -> io::Result<()>
{
configure_controller(&self.io, mount_point, cgroup, available_controllers, defaults)?;
configure_controller(&self.memory, mount_point, cgroup, available_controllers, defaults)?;
configure_controller(&self.rdma, mount_point, cgroup, available_controllers, defaults)?;
configure_controller(&self.hugetlb, mount_point, cgroup, available_controllers, defaults)?;
Ok(())
}
fn add_to_desired_controllers(&self, controllers: &mut Controllers)
{
controllers.add_if_some(&self.io);
controllers.add_if_some(&self.memory);
controllers.add_if_some(&self.rdma);
controllers.add_if_some(&self.hugetlb);
}
}