#![allow(clippy::module_name_repetitions)]
use crate::{
ipc_perm_t, ipc_pid_t, time_t, HUGETLB_FLAG_ENCODE_16GB, HUGETLB_FLAG_ENCODE_16MB,
HUGETLB_FLAG_ENCODE_1GB, HUGETLB_FLAG_ENCODE_1MB, HUGETLB_FLAG_ENCODE_256MB,
HUGETLB_FLAG_ENCODE_2GB, HUGETLB_FLAG_ENCODE_2MB, HUGETLB_FLAG_ENCODE_32MB,
HUGETLB_FLAG_ENCODE_512KB, HUGETLB_FLAG_ENCODE_512MB, HUGETLB_FLAG_ENCODE_64KB,
HUGETLB_FLAG_ENCODE_8MB, HUGETLB_FLAG_ENCODE_MASK, HUGETLB_FLAG_ENCODE_SHIFT,
};
pub const SHMMIN: i32 = 1;
pub const SHMMNI: i32 = 4096;
pub const SHMMAX: usize = usize::MAX - (1_usize << 24);
pub const SHMALL: usize = usize::MAX - (1_usize << 24);
pub const SHMSEG: i32 = SHMMNI;
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct shmid_ds_t {
pub shm_perm: ipc_perm_t,
pub shm_segsz: i32,
pub shm_atime: time_t,
pub shm_dtime: time_t,
pub shm_ctime: time_t,
pub shm_cpid: ipc_pid_t,
pub shm_lpid: ipc_pid_t,
pub shm_nattch: u16,
shm_unused: u16,
shm_unused2: usize,
shm_unused3: usize,
}
pub const SHM_R: i32 = 0o400;
pub const SHM_W: i32 = 0o200;
pub const SHM_HUGETLB: i32 = 0o4000;
pub const SHM_NORESERVE: i32 = 0o10_000;
pub const SHM_HUGE_SHIFT: i32 = HUGETLB_FLAG_ENCODE_SHIFT;
pub const SHM_HUGE_MASK: i32 = HUGETLB_FLAG_ENCODE_MASK;
pub const SHM_HUGE_64KB: usize = HUGETLB_FLAG_ENCODE_64KB;
pub const SHM_HUGE_512KB: usize = HUGETLB_FLAG_ENCODE_512KB;
pub const SHM_HUGE_1MB: usize = HUGETLB_FLAG_ENCODE_1MB;
pub const SHM_HUGE_2MB: usize = HUGETLB_FLAG_ENCODE_2MB;
pub const SHM_HUGE_8MB: usize = HUGETLB_FLAG_ENCODE_8MB;
pub const SHM_HUGE_16MB: usize = HUGETLB_FLAG_ENCODE_16MB;
pub const SHM_HUGE_32MB: usize = HUGETLB_FLAG_ENCODE_32MB;
pub const SHM_HUGE_256MB: usize = HUGETLB_FLAG_ENCODE_256MB;
pub const SHM_HUGE_512MB: usize = HUGETLB_FLAG_ENCODE_512MB;
pub const SHM_HUGE_1GB: usize = HUGETLB_FLAG_ENCODE_1GB;
pub const SHM_HUGE_2GB: usize = HUGETLB_FLAG_ENCODE_2GB;
pub const SHM_HUGE_16GB: usize = HUGETLB_FLAG_ENCODE_16GB;
pub const SHM_RDONLY: i32 = 0o10_000;
pub const SHM_RND: i32 = 0o20_000;
pub const SHM_REMAP: i32 = 0o40_000;
pub const SHM_EXEC: i32 = 0o100_000;
pub const SHM_LOCK: i32 = 11;
pub const SHM_UNLOCK: i32 = 12;
pub const SHM_STAT: i32 = 13;
pub const SHM_INFO: i32 = 14;
pub const SHM_STAT_ANY: i32 = 15;
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct shminfo_t {
pub shmmax: i32,
pub shmmin: i32,
pub shmmni: i32,
pub shmseg: i32,
pub shmall: i32,
}
#[repr(C)]
#[derive(Debug, Default, Clone, Copy)]
pub struct shm_info_t {
pub used_ids: i32,
pub shm_tot: usize,
pub shm_rss: usize,
pub shm_swp: usize,
swap_attempts: usize,
swap_successes: usize,
}