QXK dual-mode (non-blocking / blocking) kernel. More...
#include <qxk.hpp>
Public Member Functions | |
| QXK () noexcept | |
Static Public Member Functions | |
| static QSchedStatus | schedLock (std::uint8_t const ceiling) noexcept |
| QXK Scheduler lock. | |
| static void | schedUnlock (QSchedStatus const stat) noexcept |
| QXK Scheduler unlock. | |
| static void | onIdle () |
| QXK idle callback (customized in BSPs for QXK). | |
| static QActive * | current () noexcept |
| static std::uint_fast8_t | sched_ () noexcept |
| QXK scheduler finds the highest-priority thread ready to run. | |
| static void | threadExit_ () noexcept |
| Called when QP::QXThread exits. | |
| static void | activate_ () |
| QXK activator activates the next active object. The activated AO preempts the currently executing AOs. | |
| static QMState * | qmstate_cast_ (void *ptr) |
Public Attributes | |
| QActive * | curr |
| QActive * | next |
| QActive * | prev |
| std::uint8_t | actPrio |
| std::uint8_t | lockCeil |
| std::uint8_t | lockHolder |
| std::uint8_t | intNest |
| QPSet | readySet |
| Set of active-objects/threads that are ready to run in the QXK kernel. | |
Static Public Attributes | |
| static constexpr QSignal | DELAY_SIG { 1 } |
| static constexpr QSignal | TIMEOUT_SIG { 2 } |
QXK dual-mode (non-blocking / blocking) kernel.
|
staticnoexcept |
QXK Scheduler lock.
Details
This function locks the QXK scheduler to the specified ceiling.
| [in] | ceiling | preemption ceiling to which the QXK scheduler needs to be locked |
Usage
The following example shows how to lock and unlock the QXK scheduler:
|
staticnoexcept |
QXK Scheduler unlock.
Details
This function unlocks the QXK scheduler to the previous status.
| [in] | stat | previous QXK Scheduler lock status returned from QXK_schedLock() |
Usage
The following example shows how to lock and unlock the QXK scheduler:
|
static |
QXK idle callback (customized in BSPs for QXK).
Details
QXK::onIdle() is called continuously by the QXK idle thread. This callback gives the application an opportunity to enter a power-saving CPU mode, or perform some other idle processing.
|
staticnoexcept |
QXK scheduler finds the highest-priority thread ready to run.
Details
The QXK scheduler finds the priority of the highest-priority thread that is ready to run.
|
staticnoexcept |
Called when QP::QXThread exits.
Details
Called when the extended-thread handler function returns.
|
static |
QXK activator activates the next active object. The activated AO preempts the currently executing AOs.
Details
QXK::activate_() activates ready-to run AOs that are above the initial active priority (QXK_priv_.actPrio).
| QPSet QP::QXK::readySet |