Linux Face / QPFramework
Embed: (wiki syntax)

« Back to documentation index

qk.h File Reference

qk.h File Reference

QK/C++ platform-independent public interface. More...

Go to the source code of this file.

Data Structures

class  QK
 QK services. More...

Typedefs

typedef uint8_t QMutex
 QK Mutex type.

Functions

void QK_init (void)
 QK initialization.
void QK_schedule_ (QF_INT_KEY_TYPE intLockKey)
 The QK scheduler.
void QK_scheduleExt_ (QF_INT_KEY_TYPE intLockKey)
 The QK extended scheduler for interrupt context.

Variables

QPSet8 volatile QK_readySet_
 ready set of QK
uint8_t volatile QK_currPrio_
 current task/interrupt priority
uint8_t volatile QK_intNest_
 interrupt nesting level

Detailed Description

QK/C++ platform-independent public interface.

This header file must be included directly or indirectly in all modules (*.cpp files) that use QK/C++.

Definition in file qk.h.


Typedef Documentation

typedef uint8_t QMutex

QK Mutex type.

QMutex represents the priority-ceiling mutex available in QK.

See also:
QK::mutexLock()
QK::mutexUnlock()

Definition at line 181 of file qk.h.


Function Documentation

void QK_init ( void   )

QK initialization.

QK_init() is called from QF_init() in qk.cpp. This function is defined in the QK ports.

void QK_schedule_ ( QF_INT_KEY_TYPE  intLockKey )

The QK scheduler.

Note:
The QK scheduler must be always called with the interrupts locked and unlocks interrupts internally.

The signature of QK_schedule_() depends on the policy of locking and unlocking interrupts. When the interrupt lock key is not used (QF_INT_KEY_TYPE undefined), the signature is as follows:
void QK_schedule_(void);

However, when the interrupt key lock is used (QF_INT_KEY_TYPE defined), the signature is different:
void QK_schedule_(QF_INT_KEY_TYPE intLockKey);

For the internal use, these differences are hidden by the macro QK_SCHEDULE_.

void QK_scheduleExt_ ( QF_INT_KEY_TYPE  intLockKey )

The QK extended scheduler for interrupt context.

Note:
The QK extended exscheduler must be always called with the interrupts locked and unlocks interrupts internally.

The signature of QK_scheduleExt_() depends on the policy of locking and unlocking interrupts. When the interrupt lock key is not used (QF_INT_KEY_TYPE undefined), the signature is as follows:
void QK_scheduleExt_(void);

However, when the interrupt key lock is used (QF_INT_KEY_TYPE defined), the signature is different:
void QK_scheduleExt_(QF_INT_KEY_TYPE intLockKey);


Variable Documentation

uint8_t volatile QK_currPrio_

current task/interrupt priority

uint8_t volatile QK_intNest_

interrupt nesting level

ready set of QK

Definition at line 82 of file qk.h.