42 #error Source file included in a project NOT based on the QV kernel
45Q_DEFINE_THIS_MODULE(
"qv")
53#if (QF_MAX_TICK_RATE > 0U)
83#if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
84 uint_fast8_t pprev = 0U;
86#ifdef QF_ON_CONTEXT_SW
99 if (QPSet_notEmpty(&
QV_priv_.readySet)) {
101 uint_fast8_t
const p = QPSet_findMax(&
QV_priv_.readySet);
102 QActive *
const a = QActive_registry_[p];
104#if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
113#ifdef QF_ON_CONTEXT_SW
114 QF_onContextSw(((pprev != 0U)
115 ? QActive_registry_[pprev]
125 QEvt const *
const e = QActive_get_(a);
127#if (QF_MAX_EPOOL > 0U)
133 QPSet_remove(&
QV_priv_.readySet, p);
137#if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
144#ifdef QF_ON_CONTEXT_SW
145 QF_onContextSw(QActive_registry_[pprev], (
QActive *)0);
170 uint_fast16_t
const qLen,
172 uint_fast16_t
const stkSize,
173 void const *
const par)
189 me->
prio = (uint8_t)(prioSpec & 0xFFU);
193 QEQueue_init(&me->
eQueue, qSto, qLen);
#define QASM_INIT(me_, par_, qsId_)
Virtual call to the top-most initial transition in a state machine.
#define Q_UNUSED_PAR(par_)
Helper macro to mark unused parameters of functions.
int int_t
Alias for assertion-ID numbers in QP assertions and return from QF_run().
#define QASM_DISPATCH(me_, e_, qsId_)
Virtual call to dispatch an event to a state machine.
uint16_t QPrioSpec
Priority specification for Active Objects in QP.
QP/C Framework in C internal (package-scope) interface.
#define QF_INT_DISABLE()
Port-specific interrupt disable.
#define QF_INT_ENABLE()
Port-specific interrupt enable.
@ QS_QF_RUN
QF_run() was entered.
@ QS_SCHED_IDLE
scheduler restored the idle task
@ QS_SCHED_NEXT
scheduler started next task
QS (QP/Spy software tracing) internal (package-scope) interface.
#define QS_2U8_PRE(data1_, data2_)
Output two pre-formatted unsigned 8-bit integer data elements.
#define QS_U8_PRE(data_)
Output pre-formatted unsigned 8-bit integer data element.
#define QS_END_PRE()
Pre-formatted QS trace record end.
#define QS_BEGIN_PRE(rec_, qsId_)
Pre-formatted QS trace record begin.
QP Functional Safety (FuSa) Subsystem (fault detection).
#define Q_REQUIRE_INCRIT(id_, expr_)
Assertion for checking a precondition (in critical section).
Active object class (based on the QHsm implementation strategy).
QACTIVE_EQUEUE_TYPE eQueue
Port-dependent event-queue type (often QEQueue).
void QActive_register_(QActive *const me)
Register this active object to be managed by the framework.
uint8_t prio
QF-priority [1..QF_MAX_ACTIVE] of this AO.
void QActive_start(QActive *const me, QPrioSpec const prioSpec, QEvtPtr *const qSto, uint_fast16_t const qLen, void *const stkSto, uint_fast16_t const stkSize, void const *const par)
Starts execution of an active object and registers the object with the framework.
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 ARCH_QP_OOA).
Virtual table for the QAsm class.
The data type to store in the event queue ring-buffer.
QV non-preemptive kernel.