46#if (QF_MAX_EPOOL > 0U)
48Q_DEFINE_THIS_MODULE(
"qf_dyn")
52#if (QP_VERSION < 730U) || (QP_VERSION != ((QP_RELEASE^4294967295U)%0x2710U))
53#error qpc version 7.3.0 or higher required
62 uint_fast32_t
const poolSize,
63 uint_fast16_t
const evtSize)
88 uint8_t obj_name[9] =
"EvtPool?";
89 obj_name[7] = (uint8_t)((uint8_t)
'0' + poolNum + 1U);
90 QS_obj_dict_pre_(&
QF_priv_.
ePool_[poolNum], (
char const *)obj_name);
97uint_fast16_t QF_poolGetMaxBlockSize(
void) {
101 uint_fast16_t
const max_size =
111uint_fast16_t QF_getPoolMin(uint_fast8_t
const poolNum) {
120 uint_fast16_t
const min = (uint_fast16_t)
QF_priv_.
ePool_[poolNum - 1U].nMin;
122 uint_fast16_t
const min = 0U;
134 uint_fast16_t
const evtSize,
135 uint_fast16_t
const margin,
143 uint_fast8_t poolNum = 0U;
164 (uint_fast8_t)QS_EP_ID + poolNum);
170 if (e != (
QEvt *)0) {
173 e->
evtTag_ = (uint8_t)((poolNum << 4U) | 0x0FU);
178 (uint_fast8_t)QS_EP_ID + poolNum)
196 (uint_fast8_t)QS_EP_ID + poolNum)
213void QF_gc(
QEvt const *
const e) {
223 uint_fast8_t
const poolNum = QEvt_getPoolNum_(e);
231 (uint_fast8_t)QS_EP_ID + poolNum)
245 (uint_fast8_t)QS_EP_ID + poolNum)
261 (uint_fast8_t)QS_EP_ID + poolNum);
276 QEvt const *
const e,
277 void const *
const evtRef)
291 uint_fast8_t
const poolNum = QEvt_getPoolNum_(e);
295 && (evtRef == (
void *)0));
301 (uint_fast8_t)QS_EP_ID + poolNum)
315void QF_deleteRef_(
void const *
const evtRef) {
319 QEvt const *
const e = (
QEvt const *)evtRef;
326 uint_fast8_t
const poolNum = QEvt_getPoolNum_(e);
329 (uint_fast8_t)QS_EP_ID + poolNum)
339 #if (QF_MAX_EPOOL > 0U)
#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_)
Helper macro to clearly mark unused parameters of functions.
#define QF_NO_MARGIN
Special value of margin that causes asserting failure in case event allocation or event posting fails...
uint16_t QSignal
The signal of event QEvt.
#define QF_MAX_EPOOL
Maximum # event pools in the system (0..15)
Internal (package scope) QP/C interface.
#define QS_2U8_PRE(data1_, data2_)
#define QS_EVS_PRE(size_)
#define QS_BEGIN_PRE(rec_, qsId_)
QP Functional Safety (FuSa) Subsystem.
#define Q_ASSERT_INCRIT(id_, expr_)
#define Q_INVARIANT_INCRIT(id_, expr_)
#define Q_REQUIRE_INCRIT(id_, expr_)
QSignal sig
Signal of the event (see Event Signal)
uint8_t evtTag_
Event "tag" contains pool-ID plus the Duplicate Inverted Storage of the QEvt::refCtr_.
uint8_t volatile refCtr_
Event reference counter.
QF_EPOOL_TYPE_ ePool_[QF_MAX_EPOOL]