43Q_DEFINE_THIS_MODULE(
"qf_actq")
51 std::uint_fast16_t
const margin,
52 void const *
const sender)
noexcept
61 return static_cast<QActiveDummy *
>(
this)->fakePost(e, margin, sender);
85 else if (nFree >
static_cast<QEQueueCtr>(margin)) {
92#if (QF_MAX_EPOOL > 0U)
93 if (e->poolNum_ != 0U) {
115 if (QS_LOC_CHECK_(
m_prio)) {
117 QS::onTestPost(sender,
this, e, status);
124#if (QF_MAX_EPOOL > 0U)
137 static_cast<QActiveDummy *
>(
this)->QActiveDummy::fakePostLIFO(e);
154 if (e->poolNum_ != 0U) {
179 if (QS_LOC_CHECK_(
m_prio)) {
182 QS::onTestPost(
nullptr,
this, e,
true);
191 if (frontEvt !=
nullptr) {
271 QEvt const *
const e,
272 void const *
const sender)
298 if (QS_LOC_CHECK_(
m_prio)) {
300 QS::onTestPost(sender,
this, e,
true);
305 if (
m_eQueue.m_frontEvt ==
nullptr) {
310 QXTHREAD_EQUEUE_SIGNAL_(
this);
338 std::uint_fast16_t
const min =
339 static_cast<std::uint_fast16_t
>(
registry_[prio]->m_eQueue.m_nMin);
356 void const *
const e,
357 std::uint_fast8_t
const qsId)
370 QEvt const *
const e,
371 std::uint_fast8_t
const qsId)
387 for (; nTicks > 0U; --nTicks) {
399 static QEvt const tickEvt(0U);
406 if (
m_eQueue.m_frontEvt ==
nullptr) {
friend class QActiveDummy
static QActive * registry_[QF_MAX_ACTIVE+1U]
void postFIFO_(QEvt const *const e, void const *const sender)
bool post_(QEvt const *const e, std::uint_fast16_t const margin, void const *const sender) noexcept
QActive(QStateHandler const initial) noexcept
QACTIVE_EQUEUE_TYPE m_eQueue
QEvt const * get_() noexcept
void postLIFO(QEvt const *const e) noexcept
static std::uint_fast16_t getQueueMin(std::uint_fast8_t const prio) noexcept
QAsmAttr m_temp
Temporary storage for target/act-table etc.
QAsmAttr m_state
Current state (pointer to the current state-handler function)
QSignal sig
Signal of the event (see Event Signal)
std::uint8_t poolNum_
Event pool number of this event.
std::uint8_t volatile refCtr_
Event reference counter.
void trig_(void const *const sender) noexcept
void dispatch(QEvt const *const e, std::uint_fast8_t const qsId) override
Virtual function to dispatch an event to the state machine.
void init(void const *const e, std::uint_fast8_t const qsId) override
Virtual function to take the top-most initial transition in the state machine.
static void tick(std::uint_fast8_t const tickRate, void const *const sender) noexcept
void gc(QEvt const *const e) noexcept
Recycle a mutable (mutable) event.
constexpr std::uint_fast16_t NO_MARGIN
void QEvt_refCtr_inc_(QEvt const *const e) noexcept
#define QACTIVE_EQUEUE_SIGNAL_(me_)
#define QACTIVE_EQUEUE_WAIT_(me_)
#define Q_UNUSED_PAR(par_)
Helper macro to clearly mark unused parameters of functions.
#define Q_STATE_CAST(handler_)
#define QF_MAX_ACTIVE
Maximum # Active Objects in the system (1..64)
Internal (package scope) QP/C++ interface.
QS/C++ dummy public interface.
#define QS_2U8_PRE(data1_, data2_)
#define QS_BEGIN_PRE(rec_, qsId_)
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)
#define Q_ERROR_INCRIT(id_)
Assertion with user-specified ID for a wrong path through the code (in critical section)