use crate::{ipc_perm_t, pid_t, time_t};
#[derive(Debug, Default, Clone)]
#[repr(C)]
pub struct semid_ds {
pub sem_perm: ipc_perm_t,
pub sem_base: i32,
pub sem_nsems: u16,
pub sem_otime: time_t,
sem_pad1: i32,
pub sem_ctime: time_t,
sem_pad2: i32,
sem_pad3: [i32; 4],
}
pub const GETNCNT: i32 = 3;
pub const GETPID: i32 = 4;
pub const GETVAL: i32 = 5;
pub const GETALL: i32 = 6;
pub const GETZCNT: i32 = 7;
pub const SETVAL: i32 = 8;
pub const SETALL: i32 = 9;
#[derive(Debug, Default, Clone)]
#[repr(C)]
pub struct sem_t {
pub semval: u16,
pub sempid: pid_t,
pub semncnt: u16,
pub semzcnt: u16,
}
#[derive(Debug, Default, Clone)]
#[repr(C)]
pub struct sembuf_t {
pub sem_num: u16,
pub sem_op: i16,
pub sem_flg: i16,
}
pub const SEM_UNDO: i32 = 0o10000;
pub const SEM_A: i32 = 0o200;
pub const SEM_R: i32 = 0o400;