38#ifndef QF_EQUEUE_CTR_SIZE
39 #define QF_EQUEUE_CTR_SIZE 1U
44#if (QF_EQUEUE_CTR_SIZE == 1U)
46#elif (QF_EQUEUE_CTR_SIZE == 2U)
49 #error "QF_EQUEUE_CTR_SIZE defined incorrectly, expected 1U or 2U"
110 std::uint_fast16_t
const qLen)
noexcept;
112 QEvt const *
const e,
113 std::uint_fast16_t
const margin,
114 std::uint_fast8_t
const qsId)
noexcept;
116 QEvt const *
const e,
117 std::uint_fast8_t
const qsId)
noexcept;
118 QEvt const *
get(std::uint_fast8_t
const qsId)
noexcept;
Active object class (based on the QHsm implementation strategy)
QEQueueCtr volatile m_nFree
QEvt const * get(std::uint_fast8_t const qsId) noexcept
QEQueue & operator=(QEQueue const &other)=delete
void init(QEvt const *qSto[], std::uint_fast16_t const qLen) noexcept
bool isEmpty() const noexcept
QEQueueCtr volatile m_tail
bool post(QEvt const *const e, std::uint_fast16_t const margin, std::uint_fast8_t const qsId) noexcept
QEQueueCtr getNFree() const noexcept
QEQueueCtr volatile m_head
QEQueue(QEQueue const &other)=delete
QEQueueCtr getNMin() const noexcept
QEvt const *volatile m_frontEvt
std::uintptr_t m_frontEvt_dis
void postLIFO(QEvt const *const e, std::uint_fast8_t const qsId) noexcept
"Ticker" Active Object class
Blocking Mutex of the QXK preemptive kernel.
eXtended (blocking) thread of the QXK preemptive kernel