QK/C++ (preemptive non-blocking kernel) platform-independent public interface. More...
Go to the source code of this file.
Classes | |
| class | QK_Attr |
| Private attributes of the QK kernel. More... | |
Namespaces | |
| namespace | QP |
| QP/C++ framework. | |
| namespace | QP::QK |
| preemptive, non-blocking kernel | |
Macros | |
| #define | QF_SCHED_STAT_ QSchedStatus lockStat_; |
| #define | QF_SCHED_LOCK_(ceil_) |
| #define | QF_SCHED_UNLOCK_() |
| #define | QACTIVE_EQUEUE_WAIT_(me_) Q_ASSERT_INCRIT(320, (me_)->m_eQueue.m_frontEvt != nullptr) |
| #define | QACTIVE_EQUEUE_SIGNAL_(me_) |
| #define | QF_EPOOL_TYPE_ QMPool |
| #define | QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_) (p_).init((poolSto_), (poolSize_), (evtSize_)) |
| #define | QF_EPOOL_EVENT_SIZE_(p_) ((p_).getBlockSize()) |
| #define | QF_EPOOL_GET_(p_, e_, m_, qsId_) ((e_) = static_cast<QEvt *>((p_).get((m_), (qsId_)))) |
| #define | QF_EPOOL_PUT_(p_, e_, qsId_) ((p_).put((e_), (qsId_))) |
Typedefs | |
| using | QP::QSchedStatus = std::uint_fast8_t |
Functions | |
| QSchedStatus | QP::QK::schedLock (std::uint_fast8_t const ceiling) noexcept |
| void | QP::QK::schedUnlock (QSchedStatus const prevCeil) noexcept |
| void | QP::QK::onIdle () |
| std::uint_fast8_t | QK_sched_ () noexcept |
| void | QK_activate_ () noexcept |
Variables | |
| QK_Attr | QK_priv_ |
QK/C++ (preemptive non-blocking kernel) platform-independent public interface.
Definition in file qk.hpp.
| #define QF_SCHED_LOCK_ | ( | ceil_ | ) |
| #define QF_SCHED_UNLOCK_ | ( | ) |
| #define QACTIVE_EQUEUE_WAIT_ | ( | me_ | ) | Q_ASSERT_INCRIT(320, (me_)->m_eQueue.m_frontEvt != nullptr) |
| #define QACTIVE_EQUEUE_SIGNAL_ | ( | me_ | ) |
| #define QF_EPOOL_INIT_ | ( | p_, | |
| poolSto_, | |||
| poolSize_, | |||
| evtSize_ ) (p_).init((poolSto_), (poolSize_), (evtSize_)) |
| #define QF_EPOOL_GET_ | ( | p_, | |
| e_, | |||
| m_, | |||
| qsId_ ) ((e_) = static_cast<QEvt *>((p_).get((m_), (qsId_)))) |
| #define QF_EPOOL_PUT_ | ( | p_, | |
| e_, | |||
| qsId_ ) ((p_).put((e_), (qsId_))) |
|
noexcept |
QK scheduler finds the highest-priority AO ready to run
qk:400
|
noexcept |
QK activator activates the next active object. The activated AO preempts the currently executing AOs.
qk:500