51 #include "qs_dummy.hpp"
56 #error "Source file included in a project NOT based on the QV kernel"
61Q_DEFINE_THIS_MODULE(
"qv")
66#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
67#error qpcpp version 7.3.0 or higher required
93 static_cast<std::uint8_t
>(ceiling));
182 #if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
183 std::uint_fast8_t pprev = 0U;
193 ==
static_cast<std::uint_fast8_t
>(~
QV::priv_.schedCeil_dis));
203 #if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
206 QS_2U8_PRE_(
static_cast<std::uint8_t
>(p),
207 static_cast<std::uint8_t
>(pprev));
210 #ifdef QF_ON_CONTEXT_SW
222 QEvt
const *
const e = a->get_();
226 a->dispatch(e, a->getPrio());
227 #if (QF_MAX_EPOOL > 0U)
233 if (a->getEQueue().isEmpty()) {
241 #if (defined QF_ON_CONTEXT_SW) || (defined Q_SPY)
245 QS_U8_PRE_(
static_cast<std::uint8_t
>(pprev));
248 #ifdef QF_ON_CONTEXT_SW
289 QEvt
const * *
const qSto,
290 std::uint_fast16_t
const qLen,
292 std::uint_fast16_t
const stkSize,
293 void const *
const par)
303 m_prio =
static_cast<std::uint8_t
>(prioSpec & 0xFFU);
void init(void const *const e, std::uint_fast8_t const qsId) override
QACTIVE_EQUEUE_TYPE m_eQueue
void start(QPrioSpec const prioSpec, QEvt const **const qSto, std::uint_fast16_t const qLen, void *const stkSto, std::uint_fast16_t const stkSize, void const *const par)
static QActive * registry_[QF_MAX_ACTIVE+1U]
void register_() noexcept
void update_(QPSet *const dis) const noexcept
void remove(std::uint_fast8_t const n) noexcept
std::uint_fast8_t findMax() const noexcept
bool notEmpty() const noexcept
Private attributes of the QV kernel.
std::uint_fast8_t schedCeil
std::uint_fast8_t schedCeil_dis
void bzero_(void *const start, std::uint_fast16_t const len) noexcept
void gc(QEvt const *const e) noexcept
void schedDisable(std::uint_fast8_t const ceiling)
@ QS_SCHED_LOCK
scheduler was locked
@ QS_QF_RUN
QF_run() was entered.
@ QS_SCHED_NEXT
scheduler started next task
@ QS_SCHED_UNLOCK
scheduler was unlocked
@ QS_SCHED_IDLE
scheduler restored the idle task
#define Q_UNUSED_PAR(par_)
void QF_onContextSw(QP::QActive *prev, QP::QActive *next)
Internal (package scope) QP/C++ interface.
#define QF_INT_DISABLE()
Disable interrupts.
#define QF_INT_ENABLE()
Enable interrupts.
QS/C++ package-scope interface.
QS/C++ port to a 32-bit CPU, generic C++ compiler.
QP Functional Safety (FuSa) Subsystem.
#define Q_ASSERT_INCRIT(id_, expr_)
#define Q_REQUIRE_INCRIT(id_, expr_)