46Q_DEFINE_THIS_MODULE(
"qf_qact")
50#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
51#error qpc version 7.3.0 or higher required
58void QActive_ctor(
QActive *
const me,
64 QF_bzero_(me,
sizeof(*me));
69 QHsm_ctor((
QHsm *)(me), initial);
79 ,&QHsm_getStateHandler_
90void QActive_register_(
QActive *
const me) {
95 if (me->
pthre == 0U) {
105 uint8_t prev_thre = me->
pthre;
106 uint8_t next_thre = me->
pthre;
109 for (p = (uint_fast8_t)me->
prio - 1U; p > 0U; --p) {
110 if (QActive_registry_[p] != (
QActive *)0) {
111 prev_thre = QActive_registry_[p]->pthre;
116 if (QActive_registry_[p] != (
QActive *)0) {
117 next_thre = QActive_registry_[p]->pthre;
123 && (me->
pthre <= next_thre));
131 QActive_registry_[me->
prio] = me;
143 uint_fast8_t
const p = (uint_fast8_t)me->
prio;
150 && (QActive_registry_[p] == me));
151 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.
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)