46#ifndef QF_EQUEUE_CTR_SIZE
47 #define QF_EQUEUE_CTR_SIZE 1U
52#if (QF_EQUEUE_CTR_SIZE == 1U)
54#elif (QF_EQUEUE_CTR_SIZE == 2U)
56#elif (QF_EQUEUE_CTR_SIZE == 4U)
59 #error "QF_EQUEUE_CTR_SIZE defined incorrectly, expected 1U, 2U, or 4U"
102 std::uint_fast16_t
const qLen)
noexcept;
104 QEvt const *
const e,
105 std::uint_fast16_t
const margin,
106 std::uint_fast8_t
const qsId)
noexcept;
108 QEvt const *
const e,
109 std::uint_fast8_t
const qsId)
noexcept;
110 QEvt const *
get(std::uint_fast8_t
const qsId)
noexcept;
Active object class (based on the QHsm implementation strategy)
QEQueueCtr volatile m_nFree
bool post(QEvt const *const e, std::uint_fast16_t const margin, std::uint_fast8_t const qsId) noexcept
QEQueueCtr volatile m_tail
QEQueueCtr volatile m_head
QEvt const * get(std::uint_fast8_t const qsId) noexcept
QEQueueCtr getNFree() const noexcept
void postLIFO(QEvt const *const e, std::uint_fast8_t const qsId) noexcept
QEQueue & operator=(QEQueue const &other)=delete
QEvt const *volatile m_frontEvt
void init(QEvt const *qSto[], std::uint_fast16_t const qLen) noexcept
QEQueue(QEQueue const &other)=delete
bool isEmpty() const noexcept
QEQueueCtr getNMin() const noexcept
"Ticker" Active Object class
Blocking Mutex of the QXK preemptive kernel.
eXtended (blocking) thread of the QXK preemptive kernel