QPSet64 Class Reference

Priority Set of up to 64 elements for building various schedulers, but also useful as a general set of up to 64 elements of any kind. More...

#include <qpset.h>

Inheritance diagram for QPSet64:
QPSet8

List of all members.

Public Member Functions

uint8_t hasElement (uint8_t n) volatile
 the function evaluates to TRUE if the priority set has the element n.
void insert (uint8_t n) volatile
 insert element n into the set, n = 1..64
void remove (uint8_t n) volatile
 remove element n from the set, n = 1..64
uint8_t findMax (void) volatile
 find the maximum element in the set,

Detailed Description

Priority Set of up to 64 elements for building various schedulers, but also useful as a general set of up to 64 elements of any kind.

The priority set represents the set of active objects that are ready to run and need to be considered by scheduling processing. The set is capable of storing up to 64 priority levels.

The priority set allows to build cooperative multitasking schedulers to manage up to 64 tasks. It is also used in the Quantum Kernel (QK) preemptive scheduler.

The inherited 8-bit set is used as the 8-elemtn set of of 8-bit subsets Each bit in the super.bits set represents a subset (8-elements) as follows:
bit 0 in this->m_bits is 1 when subset[0] is not empty
bit 1 in this->m_bits is 1 when subset[1] is not empty
bit 2 in this->m_bits is 1 when subset[2] is not empty
bit 3 in this->m_bits is 1 when subset[3] is not empty
bit 4 in this->m_bits is 1 when subset[4] is not empty
bit 5 in this->m_bits is 1 when subset[5] is not empty
bit 6 in this->m_bits is 1 when subset[6] is not empty
bit 7 in this->m_bits is 1 when subset[7] is not empty

Definition at line 119 of file qpset.h.


Member Function Documentation

uint8_t QPSet64::findMax ( void   )  volatile [inline]

find the maximum element in the set,

Note:
returns zero if the set is empty

Reimplemented from QPSet8.

Definition at line 157 of file qpset.h.

References QPSet8::m_bits, Q_ROM_BYTE, and QF_log2Lkup.

Referenced by QF::run().


The documentation for this class was generated from the following file:
Generated on Tue Mar 16 19:39:11 2010 for QP/C++ by  doxygen 1.6.3