QP/C 8.1.2
Real-Time Event Framework
Loading...
Searching...
No Matches
qp_port.h File Reference

Sample QP/C port. More...

#include <stdint.h>
#include <stdbool.h>
#include "queue.h"
#include "qmpool.h"
#include "qp.h"
#include "qk.h"

Go to the source code of this file.

Macros

#define Q_NORETURN   _Noreturn void
 No-return specifier for the Q_onError() callback function.
#define QACTIVE_EQUEUE_TYPE   QEQueue
 Port-specific QActive event queue type.
#define QACTIVE_OS_OBJ_TYPE   void*
 Port-specific QActive "OS-object" type.
#define QACTIVE_THREAD_TYPE   void const *
 Port-specific QActive thread type.
#define QF_INT_DISABLE()
 Port-specific interrupt disable.
#define QF_INT_ENABLE()
 Port-specific interrupt enable.
#define QF_CRIT_STAT   crit_stat_t crit_stat_;
 Define the critical section status that was present before entering the critical section.
#define QF_CRIT_ENTRY()
 Port-specific critical section entry.
#define QF_CRIT_EXIT()
 Port-specific critical section exit.
#define QF_CRIT_EXIT_NOP()
 No-operation for exiting a critical section.
#define QF_CRIT_EST()
 Port-specific establishing a critical section (without saving the status).
#define QF_LOG2(bitmask_)
 Port-specific integer log-base-2 of a 32-bit bitmask.
#define QV_CPU_SLEEP()
 Port-specific method to put the CPU to sleep safely in the non-preemptive QV kernel (to be called from QV::QV_onIdle()).
#define QK_ISR_CONTEXT_()
 Port-specific method to check if the QK kernel executes in the ISR context (used internally in QK only).
#define QK_ISR_ENTRY()
 Port-specific method to inform QK kernel about the ISR entry.
#define QK_ISR_EXIT()
 Port-specific method to inform QK kernel about the ISR exit.
#define QXK_ISR_CONTEXT_()
 Port-specific method to check if the QXK kernel executes in the ISR context (used internally in QXK only).
#define QXK_CONTEXT_SWITCH_()
 Port-specific method to trigger context switch (used internally in QXK only).
#define QXK_ISR_ENTRY()
 Port-specific method to inform QXK kernel about the ISR entry.
#define QXK_ISR_EXIT()
 Port-specific method to inform QXK kernel about the ISR exit.
#define QF_SCHED_STAT_   QSchedStatus lockStat_;
 Port-specific type of the scheduler lock status (for internal use in QF only).
#define QF_SCHED_LOCK_(ceil_)
 Port-specific method to lock the scheduler (for internal use in QF only).
#define QF_SCHED_UNLOCK_()
 Port-specific method to unlock the scheduler (for internal use in QF only).
#define QACTIVE_EQUEUE_WAIT_(me_)
 Port-specific method to wait on an empty Active Object event queue (for internal use only).
#define QACTIVE_EQUEUE_SIGNAL_(me_)
 Port-specific method to signal Active Object event queue (for internal use only).
#define QXTHREAD_EQUEUE_SIGNAL_(me_)
 Port-specific method to signal eXtended thread event queue (for internal use only).
#define QF_EPOOL_TYPE_   QMPool
 Port-specific type of the event pool (for internal use in QF only).
#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_)
 Port-specific event pool initialization (for internal use in QF only).
#define QF_EPOOL_EVENT_SIZE_(p_)
 Port-specific event pool block-size() operation (for internal use in QF only).
#define QF_EPOOL_GET_(p_, e_, m_, qsId_)
 Port-specific event pool get() operation (for internal use in QF only).
#define QF_EPOOL_PUT_(p_, e_, qsId_)
 Port-specific event pool put() operation (for internal use in QF only).
#define QF_EPOOL_USE_(ePool_)
 Port-specific event pool # used events operation (for internal use in QF only).
#define QF_EPOOL_FREE_(ePool_)
 Port-specific event pool # free events operation (for internal use in QF only).
#define QF_EPOOL_MIN_(ePool_)
 Port-specific event pool minimum # events since initialization (for internal use in QF only).

Detailed Description

Sample QP/C port.

Details
This is just an example of a QF port for a generic C11 compiler. Other specific QF ports will define the QF facilities differently.

Definition in file qp_port.h.

Macro Definition Documentation

◆ Q_NORETURN

#define Q_NORETURN   _Noreturn void

No-return specifier for the Q_onError() callback function.

Details
Per the Software Safety Requirement SSRS_QA_FDM_20, the Q_onError() handler should never return. Starting with the C99 Standard, the no-return specification can be provided at the language level, which may allow the compiler to apply optimizations (e.g., for impossible code paths downstream of Q_onError()). Also, the no-return specification is immensely valuable for static analysis tools. Unfortunately, MISRA-C:2025 still considers the specifier _Noreturn as an "emergent language feature", which should not be used (MISRA-C:2025 Rule 1.4, Required). The Q_NORETURN macro encapsulates this deviation.

Note
If the Q_NORETURN macro is not defined in the QP port (qf_port.h), the default will be the C99 specifier _Noreturn applied in qsafe.h.

Backward Traceability

  • SSRS_QA_FDM_20: QP/C Application shall implement custom error handler such that it does not return.

Forward Traceability

  • SSM_QA_CSOU_21: Mandate: QP/C Application must ensure that the Q_onError() Custom Error Handler does not return.

Definition at line 25 of file qp_port.h.

◆ QACTIVE_EQUEUE_TYPE

#define QACTIVE_EQUEUE_TYPE   QEQueue

Port-specific QActive event queue type.

Forward Traceability

Definition at line 33 of file qp_port.h.

◆ QACTIVE_OS_OBJ_TYPE

#define QACTIVE_OS_OBJ_TYPE   void*

Port-specific QActive "OS-object" type.

Forward Traceability

Definition at line 40 of file qp_port.h.

◆ QACTIVE_THREAD_TYPE

#define QACTIVE_THREAD_TYPE   void const *

Port-specific QActive thread type.

Forward Traceability

Definition at line 47 of file qp_port.h.

◆ QF_INT_DISABLE

#define QF_INT_DISABLE ( )
Value:
intDisable()

Port-specific interrupt disable.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 56 of file qp_port.h.

◆ QF_INT_ENABLE

#define QF_INT_ENABLE ( )
Value:
intEnable()

Port-specific interrupt enable.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 64 of file qp_port.h.

◆ QF_CRIT_STAT

#define QF_CRIT_STAT   crit_stat_t crit_stat_;

Define the critical section status that was present before entering the critical section.

Details
For critical sections that are allowed to nest, the critical section status must be saved and restored at the end. This macro provides the storage for saving the status.

Note
This macro might be empty, in which case, the critical section status is not saved or restored. Such critical sections won't be able to nest. Also, note that the macro should be invoked without the closing semicolon.

Forward Traceability

Definition at line 76 of file qp_port.h.

◆ QF_CRIT_ENTRY

#define QF_CRIT_ENTRY ( )
Value:
(crit_stat_ = critEntry())

Port-specific critical section entry.

Details
If the critical section status is provided, the macro saves the critical section status from before entering the critical section. Otherwise, the macro just unconditionally enters the critical section without saving the status.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 86 of file qp_port.h.

◆ QF_CRIT_EXIT

#define QF_CRIT_EXIT ( )
Value:
critExit(crit_stat_)

Port-specific critical section exit.

Details
If the critical section status is provided, the macro restores the critical section status saved by QF_CRIT_ENTRY(). Otherwise, the macro just unconditionally exits the critical section.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 96 of file qp_port.h.

◆ QF_CRIT_EXIT_NOP

#define QF_CRIT_EXIT_NOP ( )
Value:
__asm volatile ("isb" ::: "memory")

No-operation for exiting a critical section.

Details
In some QF ports, the critical section exit takes effect only on the next machine instruction. If this next instruction is another entry to a critical section, the critical section won't be exited, but rather the two adjacent critical sections would be merged. The QF_CRIT_EXIT_NOP() macro contains minimal code required to prevent such merging of critical sections in QF ports.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 106 of file qp_port.h.

◆ QF_CRIT_EST

#define QF_CRIT_EST ( )
Value:
((void)critEntry())

Port-specific establishing a critical section (without saving the status).

Details
This port-specific macro only establishes a critical section (to later call Q_onError() error handler), but since Q_onError() never returns, there is no need to exit such established critical section.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 116 of file qp_port.h.

◆ QF_LOG2

#define QF_LOG2 ( bitmask_)
Value:
QF_qlog2((uint32_t)(bitmask_))

Port-specific integer log-base-2 of a 32-bit bitmask.

Details
Calculate integer log-base-2 of a given bitmask (1-based) used to quickly determine the higest-number 1-bit in the bitmask. This operation is used frequently during task scheduling and publish-subscribe.

Parameters
[in]bitmask_32-bit bitmask
Returns
1-based integer log-base-2 of the provided bitmask. Examples:
Note
This operation is performed frequently in time-critical parts of the code. Some CPUs provide such calculation in hardware (e.g., as a machine intruction). For example, ARMv7 and higher architectures support the related CLZ (count leading zeroes) instruction, with the following relationship: QF_LOG2(bitmask_) == 32U - CLZ(bitmask_).

Forward Traceability

  • DVR_QP_MC5_D4_9B: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (CORRECT diagnostics)

Definition at line 140 of file qp_port.h.

◆ QV_CPU_SLEEP

#define QV_CPU_SLEEP ( )
Value:
do { \
__disable_interrupt(); \
QF_INT_ENABLE(); \
__WFI(); \
__enable_interrupt(); \
} while (false)

Port-specific method to put the CPU to sleep safely in the non-preemptive QV kernel (to be called from QV::QV_onIdle()).

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 180 of file qp_port.h.

◆ QK_ISR_CONTEXT_

#define QK_ISR_CONTEXT_ ( )
Value:
(QK_priv_.intNest != 0U)
QK QK_priv_
Definition qk.c:48

Port-specific method to check if the QK kernel executes in the ISR context (used internally in QK only).

Returns
true if the caller executes in the ISR context and false otherwise

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 197 of file qp_port.h.

◆ QK_ISR_ENTRY

#define QK_ISR_ENTRY ( )
Value:
do { \
QF_INT_DISABLE(); \
++QK_priv_.intNest; \
QF_QS_ISR_ENTRY(QK_priv_.intNest, QK_currPrio_); \
QF_INT_ENABLE(); \
} while (false)

Port-specific method to inform QK kernel about the ISR entry.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 205 of file qp_port.h.

◆ QK_ISR_EXIT

#define QK_ISR_EXIT ( )
Value:
do { \
QF_INT_DISABLE(); \
--QK_priv_.intNest; \
if (QK_priv_.intNest == 0U) { \
if (QK_sched_() != 0U) { \
QK_activate_(); \
} \
} \
QF_INT_ENABLE(); \
} while (false)

Port-specific method to inform QK kernel about the ISR exit.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 219 of file qp_port.h.

◆ QXK_ISR_CONTEXT_

#define QXK_ISR_CONTEXT_ ( )
Value:
(QXK_get_IPSR() != 0U)

Port-specific method to check if the QXK kernel executes in the ISR context (used internally in QXK only).

Returns
true if the caller executes in the ISR context and false otherwise

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 239 of file qp_port.h.

◆ QXK_CONTEXT_SWITCH_

#define QXK_CONTEXT_SWITCH_ ( )
Value:
(trigPendSV())

Port-specific method to trigger context switch (used internally in QXK only).

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 247 of file qp_port.h.

◆ QXK_ISR_ENTRY

#define QXK_ISR_ENTRY ( )
Value:
((void)0)

Port-specific method to inform QXK kernel about the ISR entry.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 255 of file qp_port.h.

◆ QXK_ISR_EXIT

#define QXK_ISR_EXIT ( )
Value:
do { \
QF_INT_DISABLE(); \
if (QXK_sched_() != 0U) { \
*Q_UINT2PTR_CAST(uint32_t, 0xE000ED04U) = (1U << 28U);\
} \
QF_INT_ENABLE(); \
QXK_ARM_ERRATUM_838869(); \
} while (false)
#define Q_UINT2PTR_CAST(type_, uint_)
Perform cast from unsigned integer uint_ to pointer of type type_.
Definition qp.h:92

Port-specific method to inform QXK kernel about the ISR exit.

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 263 of file qp_port.h.

◆ QF_SCHED_STAT_

#define QF_SCHED_STAT_   QSchedStatus lockStat_;

Port-specific type of the scheduler lock status (for internal use in QF only).

Forward Traceability

Definition at line 278 of file qp_port.h.

◆ QF_SCHED_LOCK_

#define QF_SCHED_LOCK_ ( ceil_)
Value:
do { \
if (QK_ISR_CONTEXT_()) { \
lockStat_ = 0xFFU; \
} else { \
lockStat_ = QK_schedLock((ceil_)); \
} \
} while (false)
#define QK_ISR_CONTEXT_()
Port-specific method to check if the QK kernel executes in the ISR context (used internally in QK onl...
Definition qp_port.h:197

Port-specific method to lock the scheduler (for internal use in QF only).

Parameters
[in]ceil_priority-ceiling up to which the scheduler should be locked

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 287 of file qp_port.h.

◆ QF_SCHED_UNLOCK_

#define QF_SCHED_UNLOCK_ ( )
Value:
do { \
if (lockStat_ != 0xFFU) { \
QK_schedUnlock(lockStat_); \
} \
} while (false)

Port-specific method to unlock the scheduler (for internal use in QF only).

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 301 of file qp_port.h.

◆ QACTIVE_EQUEUE_WAIT_

#define QACTIVE_EQUEUE_WAIT_ ( me_)
Value:
((void)0)

Port-specific method to wait on an empty Active Object event queue (for internal use only).

Parameters
[in,out]me_current instance pointer (see SAS_QP_OOA)

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 316 of file qp_port.h.

◆ QACTIVE_EQUEUE_SIGNAL_

#define QACTIVE_EQUEUE_SIGNAL_ ( me_)
Value:
do { \
QPSet_insert(&QK_priv_.readySet, (uint_fast8_t)(me_)->prio); \
QPSet_update_(&QK_priv_.readySet, &QK_priv_.readySet_dis); \
if (!QK_ISR_CONTEXT_()) { \
if (QK_sched_() != 0U) { \
QK_activate_(); \
} \
} \
} while (false)

Port-specific method to signal Active Object event queue (for internal use only).

Parameters
[in,out]me_current instance pointer (see SAS_QP_OOA)

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 325 of file qp_port.h.

◆ QXTHREAD_EQUEUE_SIGNAL_

#define QXTHREAD_EQUEUE_SIGNAL_ ( me_)
Value:
do { \
if (me->super.temp.obj == QXK_PTR_CAST_(QMState*, &me->eQueue)) { \
(void)QXThread_teDisarm_(QXTHREAD_CAST_(me)); \
QPSet_insert(&QXK_priv_.readySet, (uint_fast8_t)me->prio); \
QPSet_update_(&QXK_priv_.readySet, &QXK_priv_.readySet_dis); \
if (!QXK_ISR_CONTEXT_()) { \
(void)QXK_sched_(); \
} \
} \
} while (false)
#define QXK_ISR_CONTEXT_()
Port-specific method to check if the QXK kernel executes in the ISR context (used internally in QXK o...
Definition qp_port.h:239
QXK_Attr QXK_priv_
Definition qxk.c:47
#define QXTHREAD_CAST_(ptr_)
Internal macro to encapsulate casting of pointers for MISRA deviations.
Definition qxk.h:256
#define QXK_PTR_CAST_(type_, ptr_)
Internal macro to encapsulate casting of pointers for MISRA deviations.
Definition qxk.h:255
State object for the QMsm class (QM State Machine).
Definition qp.h:148

Port-specific method to signal eXtended thread event queue (for internal use only).

Parameters
[in,out]me_current instance pointer (see SAS_QP_OOA)

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 342 of file qp_port.h.

◆ QF_EPOOL_TYPE_

#define QF_EPOOL_TYPE_   QMPool

Port-specific type of the event pool (for internal use in QF only).

Forward Traceability

Definition at line 359 of file qp_port.h.

◆ QF_EPOOL_INIT_

#define QF_EPOOL_INIT_ ( p_,
poolSto_,
poolSize_,
evtSize_ )
Value:
(QMPool_init(&(p_), (poolSto_), (poolSize_), (evtSize_)))

Port-specific event pool initialization (for internal use in QF only).

Parameters
[in,out]p_event pool pointer
[in]poolSto_storage for the pool (pointer to the pool buffer)
[in]poolSize_size of the pool storage in [bytes]
[in]evtSize_event size of this pool in [bytes]

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 371 of file qp_port.h.

◆ QF_EPOOL_EVENT_SIZE_

#define QF_EPOOL_EVENT_SIZE_ ( p_)
Value:
((uint16_t)(p_).blockSize)

Port-specific event pool block-size() operation (for internal use in QF only).

Parameters
[in,out]p_event pool pointer

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 381 of file qp_port.h.

◆ QF_EPOOL_GET_

#define QF_EPOOL_GET_ ( p_,
e_,
m_,
qsId_ )
Value:
((e_) = (QEvt *)QMPool_get(&(p_), (m_), (qsId_)))
Event class.
Definition qp.h:100

Port-specific event pool get() operation (for internal use in QF only).

Macro encapsulating the port-specific operation to get event pool.

Parameters
[in,out]p_event pool pointer
[out]e_event pointer to be assigned the obtained event
[in]m_marign (# free events that must still remain in the pool)
[in]qsId_QS ID for the QS local filter

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)
  • DVR_QP_MC5_R11_5: MISRA-C:2025 Rule 11.5(Advisory): A conversion should not be performed from pointer to void into pointer to object

Details

Parameters
p_event pool object

Definition at line 394 of file qp_port.h.

◆ QF_EPOOL_PUT_

#define QF_EPOOL_PUT_ ( p_,
e_,
qsId_ )
Value:
(QMPool_put(&(p_), (e_), (qsId_)))

Port-specific event pool put() operation (for internal use in QF only).

Parameters
[in,out]p_event pool pointer
[out]e_event pointer to return to the pool
[in]qsId_QS ID for the QS local filter

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 406 of file qp_port.h.

◆ QF_EPOOL_USE_

#define QF_EPOOL_USE_ ( ePool_)
Value:
(QMPool_getUse(ePool_))

Port-specific event pool # used events operation (for internal use in QF only).

Parameters
[in]ePool_event pool pointer
Returns
# used events in the pool at this moment (allocated and not returned yet)

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 416 of file qp_port.h.

◆ QF_EPOOL_FREE_

#define QF_EPOOL_FREE_ ( ePool_)
Value:
((uint16_t)(ePool_)->nFree)

Port-specific event pool # free events operation (for internal use in QF only).

Parameters
[in]ePool_event pool pointer
Returns
# free events in the pool at this moment (available to allocate)

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 426 of file qp_port.h.

◆ QF_EPOOL_MIN_

#define QF_EPOOL_MIN_ ( ePool_)
Value:
((uint16_t)(ePool_)->nMin)

Port-specific event pool minimum # events since initialization (for internal use in QF only).

Parameters
[in]ePool_event pool pointer
Returns
minimal # free events in the pool since initialization

Forward Traceability

  • DVR_QP_MC5_D4_9A: MISRA-C:2025 Directive 4.9(Advisory): A function should be used in preference to a function-like macro where they are interchangeable (FALSE-POSITIVE diagnostics)

Definition at line 436 of file qp_port.h.