QP/C++  7.0.1
Real-Time Embedded Framework
qxk_pkg.hpp File Reference

Internal (package scope) QXK/C++ interface. More...

#include "qf_pkg.hpp"

Go to the source code of this file.


namespace  QP
 namespace associated with the QP/C++ framework


#define QXK_PTR_CAST_(type_, ptr_)   (reinterpret_cast<type_>(ptr_))
 intertnal macro to encapsulate casting of pointers for MISRA deviations More...


enum  QXK_Timeouts : std::uint8_t { QXK_DELAY_SIG = Q_USER_SIG , QXK_QUEUE_SIG , QXK_SEMA_SIG }
 timeout signals More...


void QXK_stackInit_ (void *thr, QP::QXThreadHandler const handler, void *const stkSto, std::uint_fast16_t const stkSize) noexcept
 initialize the private stack of a given AO More...
void QXK_threadRet_ (void) noexcept
 called when a thread function returns More...

Macro Definition Documentation


#define QXK_PTR_CAST_ (   type_,
)    (reinterpret_cast<type_>(ptr_))
This macro is specifically and exclusively used for casting pointers that are never de-referenced, but only used for internal bookkeeping and checking (via assertions) the correct operation of the QXK kernel. Such pointer casting is not compliant with MISRA C++ Rule 5-2-7 as well as other messages (e.g., PC-Lint-Plus warning 826). Defining this specific macro for this purpose allows to selectively disable the warnings for this particular case.

Definition at line 75 of file qxk_pkg.hpp.

Function Documentation

◆ QXK_stackInit_()

void QXK_stackInit_ ( void *  thr,
QP::QXThreadHandler const  handler,
void *const  stkSto,
std::uint_fast16_t const  stkSize 

Definition at line 122 of file qxk_port.cpp.

◆ QXK_threadRet_()

void QXK_threadRet_ ( void  )
Called when the extended-thread handler function returns.
Most thread handler functions are structured as endless loops that never return. But it is also possible to structure threads as one-shot functions that perform their job and return. In that case this function peforms cleanup after the thread.
this function must:
  • NOT be called from an ISR;
  • be called from an extended thread;
also: the thread must NOT be holding a scheduler lock.

Definition at line 655 of file qxk_xthr.cpp.