[ C++ RCOS Home | RCOS.java Home | RCOS Home | David's Home ]
Name: |
pque |
Comment: |
Priority queue used to store PIDs. May be instantiated as ordered (by Process Priority, Quantum, something), or simple FIFO. |
Collaborators: |
DblList |
class Pque : private DblList {
typedef struct qmbr { // structure used for double link list
INT16 nKey; // Key for ordering (normally priority)
UINT16 uPid; // index into array (which is the PID #)
} QMBR;
typedef QMBR *PQMBR; // g++ doesn't like it being defined as
// part of the previous typedef???
BOOL bOrdered; // FIFO or priority ordering
public:
Pque (BOOL = FALSE); // default is FIFO
~Pque (void); // kill off any left-overs
BOOL PqEmpty (void); // state of play
BOOL PqFind (UINT16); // is this PID in the queue?
void PqAdd (PCB&); // add/insert PID (perhaps in priority order)
UINT16 PqGet (void); // remove PID from queue (head if ordered)
UINT16 PqGet (UINT16); // remove specific PID from queue
void PqImage (UINT16*); // copy queue PID numbers to passed array
};