51 #include "qs_dummy.hpp"
54#if (QF_MAX_EPOOL > 0U)
58Q_DEFINE_THIS_MODULE(
"qf_dyn")
63#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U) % 0x3E8U))
64#error qpcpp version 7.3.0 or higher required
89 std::uint_fast32_t
const poolSize,
90 std::uint_fast16_t
const evtSize)
noexcept
115 std::uint8_t obj_name[9] =
"EvtPool?";
116 obj_name[7] =
static_cast<std::uint8_t
>(
117 static_cast<std::uint8_t
>(
'0')
118 +
static_cast<std::uint8_t
>(poolNum + 1U));
120 reinterpret_cast<char *
>(&obj_name[0]));
130 std::uint_fast16_t
const max_size =
139std::uint_fast16_t
getPoolMin(std::uint_fast8_t
const poolNum)
noexcept {
147 std::uint_fast16_t
const min =
static_cast<std::uint_fast16_t
>(
158 std::uint_fast16_t
const evtSize,
159 std::uint_fast16_t
const margin,
160 enum_t const sig)
noexcept
167 std::uint_fast8_t poolNum = 0U;
188 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum);
191 ((margin !=
NO_MARGIN) ? margin : 0U), 0U);
202 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum)
204 QS_EVS_PRE_(evtSize);
220 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum)
222 QS_EVS_PRE_(evtSize);
241 std::uint_fast8_t
const poolNum = e->getPoolNum_();
246 if (e->refCtr_ > 1U) {
249 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum)
252 QS_2U8_PRE_(poolNum, e->refCtr_);
263 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum)
266 QS_2U8_PRE_(poolNum, e->refCtr_);
279 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum);
293 QEvt const *
const e,
294 QEvt const *
const evtRef)
noexcept
305 std::uint_fast8_t
const poolNum = e->getPoolNum_();
308 && (evtRef ==
nullptr));
314 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum)
317 QS_2U8_PRE_(poolNum, e->refCtr_);
328 QEvt const *
const e = evtRef;
335 std::uint_fast8_t
const poolNum = e->
getPoolNum_();
340 static_cast<std::uint_fast8_t
>(
QS_EP_ID) + poolNum)
343 QS_2U8_PRE_(poolNum, e->
refCtr_);
349 #if (QF_MAX_EPOOL > 0U)
static constexpr std::uint8_t MARKER
std::uint_fast8_t getPoolNum_() const noexcept
QEvt * ctor(DynEvt const dummy) noexcept
std::uint8_t volatile refCtr_
static bool verify_(QEvt const *const e) noexcept
QF_EPOOL_TYPE_ ePool_[QF_MAX_EPOOL]
Array of event pools sized for the maximum allowed number of pools.
std::uint_fast8_t maxPool_
Number of event pools managed by the QF Framework.
void deleteRef_(QEvt const *const evtRef) noexcept
QEvt const * newRef_(QEvt const *const e, QEvt const *const evtRef) noexcept
std::uint_fast16_t getPoolMin(std::uint_fast8_t const poolNum) noexcept
std::uint_fast16_t poolGetMaxBlockSize() noexcept
void poolInit(void *const poolSto, std::uint_fast32_t const poolSize, std::uint_fast16_t const evtSize) noexcept
constexpr std::uint_fast16_t NO_MARGIN
QEvt * newX_(std::uint_fast16_t const evtSize, std::uint_fast16_t const margin, enum_t const sig) noexcept
void gc(QEvt const *const e) noexcept
void QEvt_refCtr_dec_(QEvt const *const e) noexcept
Decrement the refCtr of a const event (requires casting const away)
@ QS_EP_ID
offset for event-pool IDs
void QEvt_refCtr_inc_(QEvt const *const e) noexcept
@ QS_QF_NEW
new event was created
@ QS_QF_GC
garbage collection
@ QS_QF_DELETE_REF
an event reference is about to be deleted
@ QS_QF_NEW_ATTEMPT
an attempt to allocate an event failed
@ QS_QF_GC_ATTEMPT
garbage collection attempt
@ QS_QF_NEW_REF
new event reference was created
#define QF_EPOOL_EVENT_SIZE_(p_)
#define QF_EPOOL_PUT_(p_, e_, qsId_)
#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_)
#define QF_EPOOL_GET_(p_, e_, m_, qsId_)
#define Q_UNUSED_PAR(par_)
Internal (package scope) QP/C++ interface.
#define QF_CONST_CAST_(type_, ptr_)
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_)