QK/C (preemptive non-blocking kernel) platform-independent public interface.
More...
#include "qequeue.h"
#include "qmpool.h"
#include "qf.h"
Go to the source code of this file.
|
#define | QF_EQUEUE_TYPE QEQueue |
|
#define | QF_THREAD_TYPE void* |
|
#define | QK_ISR_CONTEXT_() (QF_intNest_ != 0U) |
|
#define | QF_SCHED_STAT_ QSchedStatus lockStat_; |
|
#define | QF_SCHED_LOCK_(ceil_) |
|
#define | QF_SCHED_UNLOCK_() |
|
#define | QACTIVE_EQUEUE_WAIT_(me_) (Q_ASSERT_ID(110, (me_)->eQueue.frontEvt != (QEvt *)0)) |
|
#define | QACTIVE_EQUEUE_SIGNAL_(me_) |
|
#define | QF_EPOOL_TYPE_ QMPool |
|
#define | QF_EPOOL_INIT_(p_, poolSto_, poolSize_, evtSize_) (QMPool_init(&(p_), (poolSto_), (poolSize_), (evtSize_))) |
|
#define | QF_EPOOL_EVENT_SIZE_(p_) ((uint_fast16_t)(p_).blockSize) |
|
#define | QF_EPOOL_GET_(p_, e_, m_, qs_id_) ((e_) = (QEvt *)QMPool_get(&(p_), (m_), (qs_id_))) |
|
#define | QF_EPOOL_PUT_(p_, e_, qs_id_) (QMPool_put(&(p_), (e_), (qs_id_))) |
|
◆ QF_EQUEUE_TYPE
Definition at line 50 of file qk.h.
◆ QF_THREAD_TYPE
#define QF_THREAD_TYPE void* |
Definition at line 55 of file qk.h.
◆ QK_ISR_CONTEXT_
#define QK_ISR_CONTEXT_ |
( |
| ) |
(QF_intNest_ != 0U) |
Internal macro that reports the execution context (ISR vs. thread)
- Returns
- true if the code executes in the ISR context and false otherwise
Definition at line 207 of file qk.h.
◆ QF_SCHED_STAT_
QK scheduler lock status
Definition at line 212 of file qk.h.
◆ QF_SCHED_LOCK_
#define QF_SCHED_LOCK_ |
( |
|
ceil_ | ) |
|
Value: do { \
lockStat_ = 0xFFU; \
} else { \
lockStat_ = QK_schedLock((ceil_)); \
} \
} while (false)
#define QK_ISR_CONTEXT_()
QK selective scheduler locking
Definition at line 216 of file qk.h.
◆ QF_SCHED_UNLOCK_
#define QF_SCHED_UNLOCK_ |
( |
| ) |
|
Value: do { \
if (lockStat_ != 0xFFU) { \
QK_schedUnlock(lockStat_); \
} \
} while (false)
QK selective scheduler unlocking
Definition at line 226 of file qk.h.
◆ QACTIVE_EQUEUE_WAIT_
#define QACTIVE_EQUEUE_WAIT_ |
( |
|
me_ | ) |
(Q_ASSERT_ID(110, (me_)->eQueue.frontEvt != (QEvt *)0)) |
QK native event queue waiting
Definition at line 234 of file qk.h.
◆ QACTIVE_EQUEUE_SIGNAL_
#define QACTIVE_EQUEUE_SIGNAL_ |
( |
|
me_ | ) |
|
Value: do { \
QPSet_insert(&QF_readySet_, (uint_fast8_t)(me_)->prio); \
if (QK_sched_() != 0U) { \
QK_activate_(); \
} \
} \
} while (false)
QK native event queue signaling
Definition at line 239 of file qk.h.
◆ QF_EPOOL_TYPE_
Definition at line 253 of file qk.h.
◆ QF_EPOOL_INIT_
#define QF_EPOOL_INIT_ |
( |
|
p_, |
|
|
|
poolSto_, |
|
|
|
poolSize_, |
|
|
|
evtSize_ |
|
) |
| (QMPool_init(&(p_), (poolSto_), (poolSize_), (evtSize_))) |
Definition at line 256 of file qk.h.
◆ QF_EPOOL_EVENT_SIZE_
#define QF_EPOOL_EVENT_SIZE_ |
( |
|
p_ | ) |
((uint_fast16_t)(p_).blockSize) |
Definition at line 260 of file qk.h.
◆ QF_EPOOL_GET_
#define QF_EPOOL_GET_ |
( |
|
p_, |
|
|
|
e_, |
|
|
|
m_, |
|
|
|
qs_id_ |
|
) |
| ((e_) = (QEvt *)QMPool_get(&(p_), (m_), (qs_id_))) |
Definition at line 263 of file qk.h.
◆ QF_EPOOL_PUT_
#define QF_EPOOL_PUT_ |
( |
|
p_, |
|
|
|
e_, |
|
|
|
qs_id_ |
|
) |
| (QMPool_put(&(p_), (e_), (qs_id_))) |
Definition at line 267 of file qk.h.