use super::{uint_t, ATR, ER, ER_ID, FLGPTN, ID, MODE, PRI, RELTIM, STAT, TMO};
pub const TA_TPRI: ATR = 0x01;
pub const TA_WMUL: ATR = 0x02;
pub const TA_CLR: ATR = 0x04;
pub const TA_CEILING: ATR = 0x03;
#[cfg(all(feature = "solid_asp3", feature = "pi_mutex"))]
pub const TA_INHERIT: ATR = 0x02;
pub const TWF_ORW: MODE = 0x01;
pub const TWF_ANDW: MODE = 0x02;
#[cfg(feature = "fmp3")]
pub const TSPN_UNL: STAT = 0x01;
#[cfg(feature = "fmp3")]
pub const TSPN_LOC: STAT = 0x02;
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RSEM {
pub wtskid: ID,
pub semcnt: uint_t,
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RFLG {
pub wtskid: ID,
pub flgptn: FLGPTN,
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RDTQ {
pub stskid: ID,
pub rtskid: ID,
pub sdtqcnt: uint_t,
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RPDQ {
pub stskid: ID,
pub rtskid: ID,
pub spdqcnt: uint_t,
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RMTX {
pub htskid: ID,
pub wtskid: ID,
}
#[cfg(any(
all(feature = "asp3", feature = "messagebuf"),
all(feature = "solid_asp3", feature = "messagebuf")
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RMBF {
pub stskid: ID,
pub rtskid: ID,
pub smbfcnt: uint_t,
pub fmbfsz: usize,
}
#[cfg(any(feature = "fmp3", feature = "solid_fmp3"))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RSPN {
pub spnstat: STAT,
}
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre"),
all(feature = "solid_fmp3", feature = "dcre")
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CSEM {
pub sematr: ATR,
pub isemcnt: uint_t,
pub maxsem: uint_t,
}
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre"),
all(feature = "solid_fmp3", feature = "dcre")
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CFLG {
pub flgatr: ATR,
pub iflgptn: FLGPTN,
}
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre"),
all(feature = "solid_fmp3", feature = "dcre")
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CDTQ {
pub dtqatr: ATR,
pub dtqcnt: uint_t,
pub dtqmb: *mut u8,
}
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre"),
all(feature = "solid_fmp3", feature = "dcre")
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CPDQ {
pub pdqatr: ATR,
pub pdqcnt: uint_t,
pub maxdpri: PRI,
pub pdqmb: *mut u8,
}
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre"),
all(feature = "solid_fmp3", feature = "dcre")
))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CMTX {
pub mtxatr: ATR,
pub ceilpri: PRI,
}
#[cfg(all(feature = "solid_fmp3", feature = "dcre"))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CSPN {
pub spnatr: ATR,
}
#[cfg(all(feature = "solid_asp3", feature = "dcre", feature = "messagebuf"))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_CMBF {
pub mbfatr: ATR,
pub maxmsz: uint_t,
pub mbfsz: usize,
pub mbfmb: *mut u8,
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
extern "C" {
pub fn sig_sem(semid: ID) -> ER;
pub fn wai_sem(semid: ID) -> ER;
pub fn pol_sem(semid: ID) -> ER;
pub fn twai_sem(semid: ID, tmout: TMO) -> ER;
pub fn ini_sem(semid: ID) -> ER;
pub fn ref_sem(semid: ID, pk_rsem: *mut T_RSEM) -> ER;
pub fn set_flg(flgid: ID, setptn: FLGPTN) -> ER;
pub fn clr_flg(flgid: ID, clrptn: FLGPTN) -> ER;
pub fn wai_flg(flgid: ID, waiptn: FLGPTN, wfmode: MODE, p_flgptn: *mut FLGPTN) -> ER;
pub fn pol_flg(flgid: ID, waiptn: FLGPTN, wfmode: MODE, p_flgptn: *mut FLGPTN) -> ER;
pub fn twai_flg(
flgid: ID,
waiptn: FLGPTN,
wfmode: MODE,
p_flgptn: *mut FLGPTN,
tmout: TMO,
) -> ER;
pub fn ini_flg(flgid: ID) -> ER;
pub fn ref_flg(flgid: ID, pk_rflg: *mut T_RFLG) -> ER;
pub fn snd_dtq(dtqid: ID, data: isize) -> ER;
pub fn psnd_dtq(dtqid: ID, data: isize) -> ER;
pub fn tsnd_dtq(dtqid: ID, data: isize, tmout: TMO) -> ER;
pub fn fsnd_dtq(dtqid: ID, data: isize) -> ER;
pub fn rcv_dtq(dtqid: ID, p_data: *mut isize) -> ER;
pub fn prcv_dtq(dtqid: ID, p_data: *mut isize) -> ER;
pub fn trcv_dtq(dtqid: ID, p_data: *mut isize, tmout: TMO) -> ER;
pub fn ini_dtq(dtqid: ID) -> ER;
pub fn ref_dtq(dtqid: ID, pk_rdtq: *mut T_RDTQ) -> ER;
pub fn snd_pdq(pdqid: ID, data: isize, datapri: PRI) -> ER;
pub fn psnd_pdq(pdqid: ID, data: isize, datapri: PRI) -> ER;
pub fn tsnd_pdq(pdqid: ID, data: isize, datapri: PRI, tmout: TMO) -> ER;
pub fn rcv_pdq(pdqid: ID, p_data: *mut isize, p_datapri: *mut PRI) -> ER;
pub fn prcv_pdq(pdqid: ID, p_data: *mut isize, p_datapri: *mut PRI) -> ER;
pub fn trcv_pdq(pdqid: ID, p_data: *mut isize, p_datapri: *mut PRI, tmout: TMO) -> ER;
pub fn ini_pdq(pdqid: ID) -> ER;
pub fn ref_pdq(pdqid: ID, pk_rpdq: *mut T_RPDQ) -> ER;
pub fn loc_mtx(mtxid: ID) -> ER;
pub fn ploc_mtx(mtxid: ID) -> ER;
pub fn tloc_mtx(mtxid: ID, tmout: TMO) -> ER;
pub fn unl_mtx(mtxid: ID) -> ER;
pub fn ini_mtx(mtxid: ID) -> ER;
pub fn ref_mtx(mtxid: ID, pk_rmtx: *mut T_RMTX) -> ER;
}
#[cfg(any(feature = "fmp3", feature = "solid_fmp3"))]
extern "C" {
pub fn loc_spn(spnid: ID) -> ER;
pub fn unl_spn(spnid: ID) -> ER;
pub fn try_spn(spnid: ID) -> ER;
pub fn ref_spn(spnid: ID, pk_rspn: *mut T_RSPN) -> ER;
}
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre"),
all(feature = "solid_fmp3", feature = "dcre")
))]
extern "C" {
pub fn acre_sem(pk_csem: *const T_CSEM) -> ER_ID;
pub fn acre_flg(pk_cflg: *const T_CFLG) -> ER_ID;
pub fn acre_dtq(pk_cdtq: *const T_CDTQ) -> ER_ID;
pub fn acre_pdq(pk_cpdq: *const T_CPDQ) -> ER_ID;
pub fn acre_mtx(pk_cmtx: *const T_CMTX) -> ER_ID;
pub fn del_sem(semid: ID) -> ER;
pub fn del_flg(flgid: ID) -> ER;
pub fn del_dtq(dtqid: ID) -> ER;
pub fn del_pdq(pdqid: ID) -> ER;
pub fn del_mtx(mtxid: ID) -> ER;
}
#[cfg(all(feature = "solid_fmp3", feature = "dcre"))]
extern "C" {
pub fn acre_spn(pk_cspn: *const T_CSPN) -> ER_ID;
pub fn del_spn(spnid: ID) -> ER;
}
#[cfg(any(
all(feature = "asp3", feature = "messagebuf"),
all(feature = "solid_asp3", feature = "messagebuf")
))]
extern "C" {
pub fn snd_mbf(mbfid: ID, msg: *const u8, msgsz: uint_t) -> ER;
pub fn psnd_mbf(mbfid: ID, msg: *const u8, msgsz: uint_t) -> ER;
pub fn tsnd_mbf(mbfid: ID, msg: *const u8, msgsz: uint_t, tmout: TMO) -> ER;
pub fn rcv_mbf(mbfid: ID, msg: *mut u8) -> super::ER_UINT;
pub fn prcv_mbf(mbfid: ID, msg: *mut u8) -> super::ER_UINT;
pub fn trcv_mbf(mbfid: ID, msg: *mut u8, tmout: TMO) -> super::ER_UINT;
pub fn ini_mbf(mbfid: ID) -> ER;
pub fn ref_mbf(mbfid: ID, pk_rmbf: *mut T_RMBF) -> ER;
}
#[cfg(all(feature = "solid_asp3", feature = "dcre", feature = "messagebuf"))]
extern "C" {
pub fn acre_mbf(pk_cmbf: *const T_CMBF) -> ER_ID;
pub fn del_mbf(mbfid: ID) -> ER;
}