QP/C  8.0.2
Real-Time Embedded Framework
Loading...
Searching...
No Matches
qk.h File Reference

QK/C (preemptive non-blocking kernel) platform-independent public interface. More...

Go to the source code of this file.

Classes

class  QK
 QK preemptive non-blocking kernel (QK namespace emulated as a "class" in C) More...
 
class  QK_Attr
 Private attributes of the QK kernel. More...
 

Macros

#define QF_SCHED_STAT_   QSchedStatus lockStat_;
 
#define QF_SCHED_LOCK_(ceil_)
 
#define QF_SCHED_UNLOCK_()
 
#define QACTIVE_EQUEUE_WAIT_(me_)
 
#define QACTIVE_EQUEUE_SIGNAL_(me_)
 
#define QF_EPOOL_TYPE_   QMPool
 
#define QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_)
 
#define QF_EPOOL_EVENT_SIZE_(p_)
 
#define QF_EPOOL_GET_(p_, e_, m_, qsId_)
 
#define QF_EPOOL_PUT_(p_, e_, qsId_)
 

Typedefs

typedef uint_fast8_t QSchedStatus
 

Detailed Description

QK/C (preemptive non-blocking kernel) platform-independent public interface.

Backward Traceability

  • DVP_QP_MC4_D04_08

Definition in file qk.h.

Macro Definition Documentation

◆ QF_SCHED_STAT_

#define QF_SCHED_STAT_   QSchedStatus lockStat_;

Definition at line 82 of file qk.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_()
Definition qp_port.h:105

Definition at line 83 of file qk.h.

◆ QF_SCHED_UNLOCK_

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

Definition at line 91 of file qk.h.

◆ QACTIVE_EQUEUE_WAIT_

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

Definition at line 98 of file qk.h.

◆ QACTIVE_EQUEUE_SIGNAL_

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

Definition at line 99 of file qk.h.

◆ QF_EPOOL_TYPE_

#define QF_EPOOL_TYPE_   QMPool

Definition at line 109 of file qk.h.

◆ QF_EPOOL_INIT_

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

Definition at line 110 of file qk.h.

◆ QF_EPOOL_EVENT_SIZE_

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

Definition at line 112 of file qk.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:115

Definition at line 113 of file qk.h.

◆ QF_EPOOL_PUT_

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

Definition at line 115 of file qk.h.

Typedef Documentation

◆ QSchedStatus

typedef uint_fast8_t QSchedStatus

The scheduler lock status for QK_schedLock() and QK_schedUnlock()

The scheduler lock status for QK::schedLock() and QK::schedUnlock()

Definition at line 41 of file qk.h.