40Q_DEFINE_THIS_MODULE(
"qf_ps")
48 QPSet * const subscrSet,
50 void const * const sender);
68 for (
enum_t sig = 0; sig < maxSignal; ++sig) {
69 QPSet_setEmpty(&subscrSto[sig].set);
77 void const *
const sender,
78 uint_fast8_t
const qsId)
118 if (QPSet_notEmpty(&subscrSet)) {
125#if (QF_MAX_EPOOL > 0U)
133 QPSet *
const subscrSet,
134 QEvt const *
const e,
135 void const *
const sender)
142 uint8_t p = (uint8_t)QPSet_findMax(subscrSet);
168 QPSet_remove(subscrSet, p);
169 if (QPSet_isEmpty(subscrSet)) {
174 p = (uint8_t)QPSet_findMax(subscrSet);
197 uint8_t
const p = me->
prio;
231 uint8_t
const p = me->
prio;
263 uint8_t
const p = me->
prio;
QSubscrList * QActive_subscrList_
QSignal QActive_maxPubSignal_
static void QActive_multicast_(QPSet *const subscrSet, QEvt const *const e, void const *const sender)
#define Q_UNUSED_PAR(par_)
Helper macro to mark unused parameters of functions.
#define Q_USER_SIG
Offset for the user signals (QP/C Application).
#define QACTIVE_POST(me_, e_, sender_)
Invoke the direct event posting facility QActive_post_().
uint16_t QSignal
The signal of event QEvt.
#define QF_MAX_ACTIVE
Maximum # Active Objects in the system (1..64).
QP/C Framework in C internal (package-scope) interface.
#define QF_SCHED_LOCK_(ceil_)
Port-specific method to lock the scheduler (for internal use in QF only).
#define QF_CRIT_EXIT_NOP()
No-operation for exiting a critical section.
#define QF_SCHED_UNLOCK_()
Port-specific method to unlock the scheduler (for internal use in QF only).
#define QF_SCHED_STAT_
Port-specific type of the scheduler lock status (for internal use in QF only).
@ QS_QF_PUBLISH
an event was published to active objects
@ QS_QF_ACTIVE_UNSUBSCRIBE
an AO unsubscribed to an event
@ QS_QF_ACTIVE_SUBSCRIBE
an AO subscribed to an event
QS (QP/Spy software tracing) internal (package-scope) interface.
#define QS_OBJ_PRE(obj_)
Output pre-formatted object pointer element.
#define QS_SIG_PRE(sig_)
Output pre-formatted event signal data element.
#define QS_2U8_PRE(data1_, data2_)
Output two pre-formatted unsigned 8-bit integer data elements.
#define QS_END_PRE()
Pre-formatted QS trace record end.
#define QS_BEGIN_PRE(rec_, qsId_)
Pre-formatted QS trace record begin.
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).
Active object class (based on the QHsm implementation strategy).
QSubscrList * QActive_subscrList_
Static (one per-class) pointer to all subscriber AOs for a given event signal.
void QActive_unsubscribe(QActive const *const me, enum_t const sig)
Unsubscribes from the delivery of signal sig to the active object.
void QActive_publish_(QEvt const *const e, void const *const sender, uint_fast8_t const qsId)
Publish event to all subscribers of a given signal e->sig.
QSignal QActive_maxPubSignal_
Static (one per-class) maximum published signal (the size of the subscrList_ array).
static void QActive_multicast_(QPSet *const subscrSet, QEvt const *const e, void const *const sender)
QActive * QActive_registry_[QF_MAX_ACTIVE+1U]
Static (one per-class) array of registered active objects.
uint8_t prio
QF-priority [1..QF_MAX_ACTIVE] of this AO.
void QActive_subscribe(QActive const *const me, enum_t const sig)
Subscribes for delivery of signal sig to the active object.
void QActive_unsubscribeAll(QActive const *const me)
Unsubscribes from the delivery of all signals to the active object.
void QActive_psInit(QSubscrList *const subscrSto, enum_t const maxSignal)
Publish event to all subscribers of a given signal e->sig.
uint32_t refCtr_
Event reference counter.
uint32_t poolNum_
Event pool number of this event.
uint32_t sig
Event signal (see Event Signal).
Set of Active Objects of up to QF_MAX_ACTIVE elements.
Subscriber List (for publish-subscribe).