QP/C++  8.0.0
Real-Time Embedded Framework
Loading...
Searching...
No Matches
qk.cpp File Reference

preemptive non-blocking QK kernel implementation More...

#include "qp_port.hpp"
#include "qp_pkg.hpp"
#include "qsafe.h"
#include "qs_port.hpp"
#include "qs_pkg.hpp"

Go to the source code of this file.

Namespaces

namespace  QP
 QP/C++ framework.
 
namespace  QP::QK
 preemptive, non-blocking kernel
 
namespace  QP::QF
 QF Active Object Framework.
 

Functions

QSchedStatus QP::QK::schedLock (std::uint_fast8_t const ceiling) noexcept
 
void QP::QK::schedUnlock (QSchedStatus const prevCeil) noexcept
 
std::uint_fast8_t QK_sched_ () noexcept
 
void QK_activate_ () noexcept
 
void QP::QF::init ()
 
void QP::QF::stop ()
 
int_t QP::QF::run ()
 

Variables

QK_Attr QK_priv_
 

Detailed Description

preemptive non-blocking QK kernel implementation

Definition in file qk.cpp.

Function Documentation

◆ QK_sched_()

std::uint_fast8_t QK_sched_ ( )
noexcept

QK scheduler finds the highest-priority AO ready to run

Details
The QK scheduler finds out the priority of the highest-priority AO that (1) has events to process and (2) has priority that is above the current priority.
Returns
The QF-priority of the next active object to activate, or zero if no activation of AO is needed.
Precondition qk:400
  • check the internal integrity (duplicate inverse storage)
Attention
QK_sched_() must be always called with interrupts disabled and returns with interrupts disabled. QK_sched_() is defined with the "C" linkage (extern "C").

Definition at line 152 of file qk.cpp.

◆ QK_activate_()

void QK_activate_ ( )
noexcept

QK activator activates the next active object. The activated AO preempts the currently executing AOs.

Details
QK_activate_() activates ready-to run AOs that are above the initial preemption-threshold.
Precondition qk:500
  • QK_attr_.actPrio and QK_attr_.nextPrio must be in range
Attention
QK_activate_() must be always called with interrupts disabled and returns with interrupts disabled. QK_activate_() is defined with the "C" linkage (extern "C")

Definition at line 197 of file qk.cpp.

Variable Documentation

◆ QK_priv_

QK_Attr QK_priv_

Definition at line 149 of file qk.cpp.