48uint_fast8_t QK_sched_(
void);
51uint_fast8_t QK_sched_act_(
53 uint_fast8_t
const pthre_in);
56void QK_activate_(
void);
77#define QF_SCHED_STAT_ QSchedStatus lockStat_;
78#define QF_SCHED_LOCK_(ceil_) do { \
79 if (QK_ISR_CONTEXT_()) { \
82 lockStat_ = QK_schedLock((ceil_)); \
86#define QF_SCHED_UNLOCK_() do { \
87 if (lockStat_ != 0xFFU) { \
88 QK_schedUnlock(lockStat_); \
93#define QACTIVE_EQUEUE_WAIT_(me_) ((void)0)
94#define QACTIVE_EQUEUE_SIGNAL_(me_) do { \
95 QPSet_insert(&QK_priv_.readySet, (uint_fast8_t)(me_)->prio); \
96 if (!QK_ISR_CONTEXT_()) { \
97 if (QK_sched_() != 0U) { \
104#define QF_EPOOL_TYPE_ QMPool
105#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_) \
106 (QMPool_init(&(p_), (poolSto_), (poolSize_), (evtSize_)))
107#define QF_EPOOL_EVENT_SIZE_(p_) ((uint16_t)(p_).blockSize)
108#define QF_EPOOL_GET_(p_, e_, m_, qsId_) \
109 ((e_) = (QEvt *)QMPool_get(&(p_), (m_), (qsId_)))
110#define QF_EPOOL_PUT_(p_, e_, qsId_) (QMPool_put(&(p_), (e_), (qsId_)))
111#define QF_EPOOL_USE_(ePool_) (QMPool_getUse(ePool_))
112#define QF_EPOOL_FREE_(ePool_) ((ePool_)->nFree)
113#define QF_EPOOL_MIN_(ePool_) ((ePool_)->nMin)
uint_fast8_t QSchedStatus
The scheduler lock status for QK_schedLock() and QK_schedUnlock().
Active object class (based on the QHsm implementation strategy).
QK preemptive non-blocking kernel (QK namespace emulated as a "class" in C.
uint8_t actPrio
Priority of the currently active AO.
uint8_t nextPrio
Next AO priority scheduled by QK.
QPSet readySet
Set of active-objects/threads that are ready to run in the QK kernel.
uint8_t intNest
Up-down counter indicating current interrupt nesting (used in some QK ports).
void QK_onIdle(void)
QK idle callback (customized in BSPs for QK).
uint8_t actThre
Preemption threshold of the currently active AO.
uint8_t lockCeil
Scheduler lock-ceiling (0 if scheduler unlocked).
Set of Active Objects of up to QF_MAX_ACTIVE elements.