Mark3 Realtime Kernel
|
The ThreadList Class. This class is used for building thread-management facilities, such as schedulers, and blocking objects. More...
#include <threadlist.h>
Public Member Functions | |
void * | operator new (size_t sz, void *pv) |
ThreadList () | |
ThreadList Default constructor - zero-initializes the data. More... | |
void | SetPriority (PORT_PRIO_TYPE uXPriority_) |
SetPriority Set the priority of this threadlist (if used for a scheduler). More... | |
void | SetMapPointer (PriorityMap *pclMap_) |
SetMapPointer Set the pointer to a bitmap to use for this threadlist. Once again, only needed when the threadlist is being used for scheduling purposes. More... | |
void | Add (Thread *node_) |
Add Add a thread to the threadlist. More... | |
void | Add (Thread *node_, PriorityMap *pclMap_, PORT_PRIO_TYPE uXPriority_) |
Add Add a thread to the threadlist, specifying the flag and priority at the same time. More... | |
void | AddPriority (Thread *node_) |
AddPriority Add a thread to the list such that threads are ordered from highest to lowest priority from the head of the list. More... | |
void | Remove (Thread *node_) |
Remove Remove the specified thread from the threadlist. More... | |
Thread * | HighestWaiter () |
HighestWaiter Return a pointer to the highest-priority thread in the thread-list. More... | |
Public Member Functions inherited from Mark3::TypedLinkListNode< ThreadList > | |
ThreadList * | GetNext () |
ThreadList * | GetPrev () |
Public Member Functions inherited from Mark3::LinkListNode | |
LinkListNode * | GetNext (void) |
GetNext. More... | |
LinkListNode * | GetPrev (void) |
GetPrev. More... | |
Public Member Functions inherited from Mark3::TypedCircularLinkList< Thread > | |
void * | operator new (size_t sz, void *pv) |
TypedCircularLinkList () | |
Thread * | GetHead () |
GetHead Get the head node in the linked list. More... | |
void | SetHead (Thread *pclNode_) |
SetHead Set the head node of a linked list. More... | |
Thread * | GetTail () |
GetTail Get the tail node of the linked list. More... | |
void | SetTail (Thread *pclNode_) |
SetTail Set the tail node of the linked list. More... | |
void | Add (Thread *pNode_) |
Add the linked list node to this linked list. More... | |
void | Remove (Thread *pNode_) |
Remove Add the linked list node to this linked list. More... | |
void | InsertNodeBefore (Thread *pNode_, Thread *pInsert_) |
InsertNodeBefore Insert a linked-list node into the list before the specified insertion point. More... | |
Public Member Functions inherited from Mark3::CircularLinkList | |
void * | operator new (size_t sz, void *pv) |
CircularLinkList () | |
void | Add (LinkListNode *node_) |
Add the linked list node to this linked list. More... | |
void | Remove (LinkListNode *node_) |
Remove Add the linked list node to this linked list. More... | |
void | PivotForward () |
PivotForward Pivot the head of the circularly linked list forward ( Head = Head->next, Tail = Tail->next ) More... | |
void | PivotBackward () |
PivotBackward Pivot the head of the circularly linked list backward ( Head = Head->prev, Tail = Tail->prev ) More... | |
void | InsertNodeBefore (LinkListNode *node_, LinkListNode *insert_) |
InsertNodeBefore Insert a linked-list node into the list before the specified insertion point. More... | |
Public Member Functions inherited from Mark3::LinkList | |
void | Init () |
Init. More... | |
LinkListNode * | GetHead () |
GetHead. More... | |
void | SetHead (LinkListNode *pclNode_) |
SetHead. More... | |
LinkListNode * | GetTail () |
GetTail. More... | |
void | SetTail (LinkListNode *pclNode_) |
SetTail. More... | |
Private Attributes | |
PORT_PRIO_TYPE | m_uXPriority |
Priority of the threadlist. More... | |
PriorityMap * | m_pclMap |
Pointer to the bitmap/flag to set when used for scheduling. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Mark3::LinkListNode | |
LinkListNode () | |
void | ClearNode () |
ClearNode. More... | |
Protected Attributes inherited from Mark3::LinkListNode | |
LinkListNode * | next |
Pointer to the next node in the list. More... | |
LinkListNode * | prev |
Pointer to the previous node in the list. More... | |
Protected Attributes inherited from Mark3::LinkList | |
LinkListNode * | m_pclHead |
Pointer to the head node in the list. More... | |
LinkListNode * | m_pclTail |
Pointer to the tail node in the list. More... | |
The ThreadList Class. This class is used for building thread-management facilities, such as schedulers, and blocking objects.
Definition at line 38 of file threadlist.h.
Mark3::ThreadList::ThreadList | ( | ) |
ThreadList Default constructor - zero-initializes the data.
Definition at line 27 of file threadlist.cpp.
void Mark3::ThreadList::Add | ( | Thread * | node_ | ) |
Add Add a thread to the threadlist.
node_ | Pointer to the thread (link list node) to add to the list |
Definition at line 47 of file threadlist.cpp.
void Mark3::ThreadList::Add | ( | Thread * | node_, |
PriorityMap * | pclMap_, | ||
PORT_PRIO_TYPE | uXPriority_ | ||
) |
Add Add a thread to the threadlist, specifying the flag and priority at the same time.
node_ | Pointer to the thread to add (link list node) |
pclMap_ | Pointer to the bitmap flag to set (if used in a scheduler context), or nullptr for non-scheduler. |
uXPriority_ | Priority of the threadlist |
Definition at line 101 of file threadlist.cpp.
void Mark3::ThreadList::AddPriority | ( | Thread * | node_ | ) |
AddPriority Add a thread to the list such that threads are ordered from highest to lowest priority from the head of the list.
node_ | Pointer to a thread to add to the list. |
Definition at line 66 of file threadlist.cpp.
Thread * Mark3::ThreadList::HighestWaiter | ( | ) |
HighestWaiter Return a pointer to the highest-priority thread in the thread-list.
Definition at line 128 of file threadlist.cpp.
|
inline |
Definition at line 41 of file threadlist.h.
void Mark3::ThreadList::Remove | ( | Thread * | node_ | ) |
Remove Remove the specified thread from the threadlist.
node_ | Pointer to the thread to remove |
Definition at line 111 of file threadlist.cpp.
void Mark3::ThreadList::SetMapPointer | ( | PriorityMap * | pclMap_ | ) |
SetMapPointer Set the pointer to a bitmap to use for this threadlist. Once again, only needed when the threadlist is being used for scheduling purposes.
pclMap_ | Pointer to the priority map object used to track this thread. |
Definition at line 40 of file threadlist.cpp.
void Mark3::ThreadList::SetPriority | ( | PORT_PRIO_TYPE | uXPriority_ | ) |
SetPriority Set the priority of this threadlist (if used for a scheduler).
uXPriority_ | Priority level of the thread list |
Definition at line 34 of file threadlist.cpp.
|
private |
Pointer to the bitmap/flag to set when used for scheduling.
Definition at line 116 of file threadlist.h.
|
private |
Priority of the threadlist.
Definition at line 113 of file threadlist.h.