48 #error "Source file included in a project NOT based on the QK kernel"
53Q_DEFINE_THIS_MODULE(
"qk")
58#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
59#error qpcpp version 7.3.0 or higher required
83 static_cast<std::uint8_t
>(ceiling));
108 if (prevCeil != 0xFFU) {
122 static_cast<std::uint8_t
>(prevCeil));
187 =
static_cast<std::uint_fast8_t
>(~QK_priv_.nextPrio);
209 #if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
210 std::uint_fast8_t pprev = prio_in;
218 std::uint_fast8_t pthre_in;
227 pthre_in =
static_cast<std::uint_fast8_t
>(a->
getPThre());
229 ~
static_cast<std::uint_fast8_t
>(a->
m_pthre_dis) & 0xFFU));
236 std::uint_fast8_t
const pthre
237 =
static_cast<std::uint_fast8_t
>(a->
getPThre());
239 ~
static_cast<std::uint_fast8_t
>(a->
m_pthre_dis) & 0xFFU));
249 #if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
258 #ifdef QF_ON_CONTEXT_SW
274 #if (QF_MAX_EPOOL > 0U)
327 #if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
346 #ifdef QF_ON_CONTEXT_SW
393 QS::beginRec_(QS_REC_NUM_(QS_QF_RUN));
413 #ifdef QF_ON_CONTEXT_SW
448 std::uint_fast16_t
const qLen,
450 std::uint_fast16_t
const stkSize,
451 void const *
const par)
461 && (stkSto ==
nullptr));
465 m_prio =
static_cast<std::uint8_t
>(prioSpec & 0xFFU);
466 m_pthre =
static_cast<std::uint8_t
>(prioSpec >> 8U);
Private attributes of the QK kernel.
std::uint_fast8_t actPrio_dis
std::uint_fast8_t actThre
std::uint_fast8_t lockCeil_dis
std::uint_fast8_t nextPrio
std::uint_fast8_t actPrio
std::uint_fast8_t nextPrio_dis
std::uint_fast8_t actThre_dis
std::uint_fast8_t lockCeil
Active object class (based on the QHsm implementation strategy)
void start(QPrioSpec const prioSpec, QEvtPtr *const qSto, std::uint_fast16_t const qLen, void *const stkSto, std::uint_fast16_t const stkSize, void const *const par)
void init(void const *const e, std::uint_fast8_t const qsId) override
Virtual function to take the top-most initial transition in the state machine.
static QActive * registry_[QF_MAX_ACTIVE+1U]
void register_() noexcept
std::uint_fast8_t getPThre() const noexcept
void dispatch(QEvt const *const e, std::uint_fast8_t const qsId) override
Virtual function to dispatch an event to the state machine.
QACTIVE_EQUEUE_TYPE m_eQueue
QEvt const * get_() noexcept
std::uint_fast8_t getPrio() const noexcept
QACTIVE_EQUEUE_TYPE const & getEQueue() const noexcept
std::uint_fast8_t findMax() const noexcept
void remove(std::uint_fast8_t const n) noexcept
bool verify_(QPSet const *const dis) const noexcept
void update_(QPSet *const dis) const noexcept
bool isEmpty() const noexcept
QF Active Object Framework namespace.
void gc(QEvt const *const e) noexcept
Recycle a mutable (mutable) event.
void bzero_(void *const start, std::uint_fast16_t const len) noexcept
QSchedStatus schedLock(std::uint_fast8_t const ceiling) noexcept
void schedUnlock(QSchedStatus const prevCeil) noexcept
QEvt const * QEvtPtr
Pointer to const event instances passed around in QP Framework.
std::uint_fast8_t QSchedStatus
std::uint16_t QPrioSpec
Priority specification for Active Objects in QP.
void QK_activate_() noexcept
std::uint_fast8_t QK_sched_() noexcept
void QK_activate_() noexcept
std::uint_fast8_t QK_sched_() noexcept
int int_t
Alias for assertion-ID numbers in QP assertions and return from QP::QF::run()
#define Q_UNUSED_PAR(par_)
Helper macro to clearly mark unused parameters of functions.
void QF_onContextSw(QP::QActive *prev, QP::QActive *next)
#define QF_MAX_ACTIVE
Maximum # Active Objects in the system (1..64)
Internal (package scope) QP/C++ interface.
#define QK_ISR_CONTEXT_()
#define QF_INT_DISABLE()
Disable interrupts.
#define QF_INT_ENABLE()
Enable interrupts.
#define QS_2U8_PRE(data1_, data2_)
#define QS_BEGIN_PRE(rec_, qsId_)
QS/C++ port to a 32-bit CPU, generic C++ compiler.
QP Functional Safety (FuSa) Subsystem.
#define Q_ASSERT_INCRIT(id_, expr_)
#define Q_INVARIANT_INCRIT(id_, expr_)
#define Q_REQUIRE_INCRIT(id_, expr_)