85 void init(
void const *
const e,
88 this->
init(
nullptr, qs_id);
100 void const *
const par)
override;
107 this->
start(prio, qSto, qLen, stkSto, stkSize,
nullptr);
117 void const *
const sender) noexcept
override;
125 void block_(
void)
const noexcept;
166 bool signal(
void) noexcept;
222 void unlock(
void) noexcept;
unsigned int uint16_t
exact-width 16-bit unsigned int
unsigned int uint_fast16_t
fast at-least 16-bit unsigned int
unsigned char uint8_t
exact-width 8-bit unsigned int
unsigned int uint_fast8_t
fast at-least 8-bit unsigned int
QActive active object (based on QP::QHsm implementation)
Priority Ceiling Mutex the QXK preemptive kernel.
std::uint8_t volatile m_lockNest
lock-nesting up-down counter
bool tryLock(void) noexcept
try to lock the QXK priority-ceiling mutex QP::QXMutex
std::uint8_t m_ceiling
prioirty ceiling of this mutex
QPSet m_waitSet
set of extended-threads waiting on this mutex
void init(std::uint_fast8_t const ceiling) noexcept
initialize the QXK priority-ceiling mutex QP::QXMutex
void unlock(void) noexcept
unlock the QXK priority-ceiling mutex QP::QXMutex
std::uint8_t volatile m_holderPrio
prio of the lock holder thread
bool lock(std::uint_fast16_t const nTicks=QXTHREAD_NO_TIMEOUT) noexcept
lock the QXK priority-ceiling mutex QP::QXMutex
Counting Semaphore of the QXK preemptive kernel.
bool wait(std::uint_fast16_t const nTicks=QXTHREAD_NO_TIMEOUT) noexcept
wait (block) on the semaphore
bool signal(void) noexcept
signal (unblock) the semaphore
QPSet m_waitSet
set of extended threads waiting on this semaphore
std::uint16_t m_max_count
maximum value of the semaphore counter
void init(std::uint_fast16_t const count, std::uint_fast16_t const max_count=0xFFFFU) noexcept
initialize the counting semaphore
std::uint16_t volatile m_count
semaphore up-down counter
bool tryWait(void) noexcept
try wait on the semaphore (non-blocking)
Extended (blocking) thread of the QXK preemptive kernel.
void start(std::uint_fast8_t const prio, QEvt const **const qSto, std::uint_fast16_t const qLen, void *const stkSto, std::uint_fast16_t const stkSize, void const *const par) override
Starts execution of an extended thread and registers the thread with the framework.
void block_(void) const noexcept
void init(void const *const e, std::uint_fast8_t const qs_id) noexcept override
Executes the top-most initial transition in HSM.
void postLIFO(QEvt const *const e) noexcept override
Posts an event directly to the event queue of the active object using the Last-In-First-Out (LIFO) po...
void start(std::uint_fast8_t const prio, QEvt const **const qSto, std::uint_fast16_t const qLen, void *const stkSto, std::uint_fast16_t const stkSize) override
Overloaded start function (no initialization event)
static bool delay(std::uint_fast16_t const nTicks) noexcept
delay (block) the current extended thread for a specified # ticks
void init(std::uint_fast8_t const qs_id) noexcept override
overloaded init(qs_id)
bool delayCancel(void) noexcept
cancel the delay
bool post_(QEvt const *const e, std::uint_fast16_t const margin, void const *const sender) noexcept override
void dispatch(QEvt const *const e, std::uint_fast8_t const qs_id) noexcept override
Dispatches an event to HSM.
QTimeEvt m_timeEvt
time event to handle blocking timeouts
void unblock_(void) const noexcept
static QEvt const * queueGet(std::uint_fast16_t const nTicks=QXTHREAD_NO_TIMEOUT) noexcept
obtain a message from the private message queue (block if no messages)
void teArm_(enum_t const sig, std::uint_fast16_t const nTicks) noexcept
bool teDisarm_(void) noexcept
namespace associated with the QP/C++ framework
void(*)(QXThread *const me) QXThreadHandler
Pointer to a thread-handler function.
static constexpr std::uint_fast16_t QXTHREAD_NO_TIMEOUT
no-timeout sepcification when blocking on queues or semaphores
int enum_t
alias for enumerations used for event signals
Priority Set of up to 32 elements */.