use super::{bool_t, uint_t, ATR, ER, ER_ID, ER_UINT, EXINF, ID, PRI, RELTIM, STAT, TMO};
pub type TASK = Option<unsafe extern "C" fn(EXINF)>;
pub const TA_ACT: ATR = 0x01;
pub const TA_NOACTQUE: ATR = 0x02;
#[cfg(all(feature = "asp3", feature = "rstr_task"))]
pub const TA_RSTR: ATR = 0x04;
pub const TTS_RUN: STAT = 0x01;
pub const TTS_RDY: STAT = 0x02;
pub const TTS_WAI: STAT = 0x04;
pub const TTS_SUS: STAT = 0x08;
pub const TTS_WAS: STAT = 0x0c;
pub const TTS_DMT: STAT = 0x10;
pub const TTW_SLP: STAT = 0x0001;
pub const TTW_DLY: STAT = 0x0002;
pub const TTW_SEM: STAT = 0x0004;
pub const TTW_FLG: STAT = 0x0008;
pub const TTW_SDTQ: STAT = 0x0010;
pub const TTW_RDTQ: STAT = 0x0020;
pub const TTW_SPDQ: STAT = 0x0100;
pub const TTW_RPDQ: STAT = 0x0200;
#[cfg(any(
all(feature = "asp3", feature = "messagebuf"),
all(feature = "solid_asp3", feature = "messagebuf")
))]
pub const TTW_SMBF: STAT = 0x0400;
#[cfg(any(
all(feature = "asp3", feature = "messagebuf"),
all(feature = "solid_asp3", feature = "messagebuf")
))]
pub const TTW_RMBF: STAT = 0x0800;
pub const TTW_MTX: STAT = 0x0080;
pub const TTW_MPF: STAT = 0x2000;
pub const TSK_SELF: ID = 0;
pub const TSK_NONE: ID = 0;
pub const TPRI_SELF: PRI = 0;
pub const TPRI_INI: PRI = 0;
#[cfg(any(
all(feature = "asp3", feature = "dcre"),
all(feature = "solid_asp3", feature = "dcre")
))]
#[derive(Debug, Clone, Copy)]
#[repr(C)]
pub struct T_CTSK {
pub tskatr: ATR,
pub exinf: EXINF,
pub task: TASK,
pub itskpri: PRI,
pub stksz: usize,
pub stk: *mut u8,
}
#[cfg(all(feature = "solid_fmp3", feature = "dcre"))]
#[derive(Debug, Clone, Copy)]
#[repr(C)]
pub struct T_CTSK {
pub tskatr: ATR,
pub exinf: EXINF,
pub task: TASK,
pub itskpri: PRI,
pub stksz: usize,
pub stk: *mut u8,
pub iprcid: ID,
pub affinity: uint_t,
}
#[cfg(any(feature = "asp3", feature = "solid_asp3"))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RTSK {
pub tskstat: STAT,
pub tskpri: PRI,
pub tskbpri: PRI,
pub tskwait: STAT,
pub wobjid: ID,
pub lefttmo: TMO,
pub actcnt: uint_t,
pub wupcnt: uint_t,
pub raster: bool_t,
pub dister: bool_t,
}
#[cfg(any(feature = "fmp3", feature = "solid_fmp3"))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(C)]
pub struct T_RTSK {
pub tskstat: STAT,
pub tskpri: PRI,
pub tskbpri: PRI,
pub tskwait: STAT,
pub wobjid: ID,
pub lefttmo: TMO,
pub actcnt: uint_t,
pub wupcnt: uint_t,
pub raster: bool_t,
pub dister: bool_t,
pub prcid: ID,
pub actprc: ID,
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
extern "C" {
pub fn act_tsk(tskid: ID) -> ER;
pub fn can_act(tskid: ID) -> ER_UINT;
pub fn get_tst(tskid: ID, p_tskstat: *mut STAT) -> ER;
pub fn chg_pri(tskid: ID, tskpri: PRI) -> ER;
pub fn get_pri(tskid: ID, p_tskpri: *mut PRI) -> ER;
pub fn get_inf(p_exinf: *mut isize) -> ER;
pub fn ref_tsk(tskid: ID, pk_rtsk: *mut T_RTSK) -> ER;
}
#[cfg(any(feature = "fmp3", feature = "solid_fmp3"))]
extern "C" {
pub fn mact_tsk(tskid: ID, prcid: ID) -> ER;
pub fn mig_tsk(tskid: ID, prcid: ID) -> 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_tsk(pk_ctsk: *const T_CTSK) -> ER_ID;
pub fn del_tsk(tskid: ID) -> ER;
}
#[cfg(any(
all(feature = "asp3", feature = "subprio"),
feature = "fmp3",
feature = "solid_fmp3"
))]
extern "C" {
pub fn chg_spr(tskid: ID, subpri: uint_t) -> ER;
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
extern "C" {
pub fn slp_tsk() -> ER;
pub fn tslp_tsk(tmout: TMO) -> ER;
pub fn wup_tsk(tskid: ID) -> ER;
pub fn can_wup(tskid: ID) -> ER_UINT;
pub fn rel_wai(tskid: ID) -> ER;
pub fn sus_tsk(tskid: ID) -> ER;
pub fn rsm_tsk(tskid: ID) -> ER;
pub fn dly_tsk(dlytim: RELTIM) -> ER;
}
#[cfg(any(
feature = "asp3",
feature = "fmp3",
feature = "solid_asp3",
feature = "solid_fmp3"
))]
extern "C" {
pub fn ext_tsk() -> ER;
pub fn ras_ter(tskid: ID) -> ER;
pub fn dis_ter() -> ER;
pub fn ena_ter() -> ER;
pub fn sns_ter() -> bool_t;
pub fn ter_tsk(tskid: ID) -> ER;
}
#[cfg(any(
all(feature = "solid_asp3", feature = "exd_tsk"),
all(feature = "solid_fmp3", feature = "exd_tsk")
))]
extern "C" {
pub fn exd_tsk() -> ER;
}