54Q_DEFINE_THIS_MODULE(
"qf_qact")
58#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
59#error qpc version 7.3.0 or higher required
66void QActive_ctor(
QActive *
const me,
72 QF_bzero_(me,
sizeof(*me));
77 QHsm_ctor((
QHsm *)(me), initial);
87 ,&QHsm_getStateHandler_
98void QActive_register_(
QActive *
const me) {
103 if (me->
pthre == 0U) {
113 uint8_t prev_thre = me->
pthre;
114 uint8_t next_thre = me->
pthre;
117 for (p = (uint_fast8_t)me->
prio - 1U; p > 0U; --p) {
118 if (QActive_registry_[p] != (
QActive *)0) {
119 prev_thre = QActive_registry_[p]->pthre;
124 if (QActive_registry_[p] != (
QActive *)0) {
125 next_thre = QActive_registry_[p]->pthre;
131 && (me->
pthre <= next_thre));
139 QActive_registry_[me->
prio] = me;
151 uint_fast8_t
const p = (uint_fast8_t)me->
prio;
158 && (QActive_registry_[p] == me));
159 QActive_registry_[p] = (
QActive *)0;
#define Q_STATE_CAST(handler_)
Perform cast to QStateHandler.
QState(* QStateHandler)(void *const me, QEvt const *const e)
Pointer to a state-handler function.
#define QF_MAX_ACTIVE
Maximum # Active Objects in the system (1..64)
Internal (package scope) QP/C interface.
QS/C package-scope interface.
QP Functional Safety (FuSa) Subsystem.
#define Q_ASSERT_INCRIT(id_, expr_)
#define Q_REQUIRE_INCRIT(id_, expr_)
Active object class (based on the QHsm implementation strategy)
uint8_t prio
QF-priority [1..QF_MAX_ACTIVE] of this AO.
uint8_t pthre
Preemption-threshold [1..QF_MAX_ACTIVE] of this AO.
struct QAsmVtable const * vptr
Virtual pointer inherited by all QAsm subclasses (see also Object Orientation)
union QAsmAttr state
Current state (pointer to the current state-handler function)
Virtual table for the QAsm class.
Hierarchical State Machine class (QHsm-style state machine implementation strategy)