#[derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
#[derive(Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub enum TransparentHugePageSharedMemoryChoice
{
Never,
Always,
WithinSize,
Advise,
Deny,
Force,
}
impl Default for TransparentHugePageSharedMemoryChoice
{
#[inline(always)]
fn default() -> Self
{
TransparentHugePageSharedMemoryChoice::Never
}
}
impl TransparentHugePageSharedMemoryChoice
{
#[inline(always)]
fn to_value(self) -> &'static [u8]
{
use self::TransparentHugePageSharedMemoryChoice::*;
match self
{
Never => b"never\n" as &[u8],
Always => b"always\n" as &[u8],
WithinSize => b"within_size\n" as &[u8],
Advise => b"advise\n" as &[u8],
Deny => b"deny\n" as &[u8],
Force => b"force\n" as &[u8],
}
}
#[inline(always)]
pub(crate) fn change_transparent_huge_pages_usage(self, sys_path: &SysPath) -> io::Result<()>
{
sys_path.transparent_huge_memory_file_path("shmem_enabled").write_value(self.to_value())
}
}