40Q_DEFINE_THIS_MODULE(
"qf_qact")
44void QActive_ctor(
QActive * const me,
50 QF_bzero_(me,
sizeof(*me));
55 QHsm_ctor((
QHsm *)(me), initial);
65 ,&QHsm_getStateHandler_
68 me->super.vptr = &vtable;
77 if (me->
pthre == 0U) {
87 uint8_t prev_thre = me->
pthre;
88 uint8_t next_thre = me->
pthre;
90 for (uint_fast8_t p = (uint_fast8_t)me->
prio - 1U;
99 for (uint_fast8_t p = (uint_fast8_t)me->
prio + 1U;
110 (prev_thre <= me->
pthre)
111 && (me->
pthre <= next_thre));
123 uint_fast8_t
const p = (uint_fast8_t)me->
prio;
#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 dummy public interface.
QP Functional Safety (FuSa) Subsystem.
#define Q_ASSERT_INCRIT(id_, expr_)
General-purpose assertion with user-specified ID number (in critical section)
#define Q_REQUIRE_INCRIT(id_, expr_)
Assertion for checking a precondition (in critical section)
Active object class (based on the QHsm implementation strategy)
void QActive_unregister_(QActive *const me)
Un-register the active object from the framework.
void QActive_register_(QActive *const me)
Register this active object to be managed by the framework.
QActive * QActive_registry_[QF_MAX_ACTIVE+1U]
Static (one per-class) array of registered active objects.
uint8_t prio
QF-priority [1..QF_MAX_ACTIVE] of this AO.
uint8_t pthre
Preemption-threshold [1..QF_MAX_ACTIVE] of this AO.
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)