Mark3 Realtime Kernel
|
The CoList class The CoList class implements a circular-linked-listed structure for coroutine objects. The intent of this object is to maintain a list of active coroutine objects with a specific priority or state, to ensure that a freshly-schedulable co-routine always exists at the head of the list. More...
#include <colist.h>
Public Member Functions | |
void | SetPrioMap (CoPrioMap *pclPrioMap_) |
SetPrioMap Assign a priority map object to this co-routine list. More... | |
void | SetPriority (PORT_PRIO_TYPE uPriority_) |
SetPriority Set the scheduling priority of this coroutine liss; has no effect unless a SetPrioMap has been called with a valid coroutine priority map object. More... | |
void | Add (Coroutine *pclCoroutine_) |
Add Add a coroutine object to this list. More... | |
void | Remove (Coroutine *pclCoroutine_) |
Remove Remove a given coroutine object from this list. More... | |
Public Member Functions inherited from Mark3::TypedCircularLinkList< Coroutine > | |
void * | operator new (size_t sz, void *pv) |
TypedCircularLinkList () | |
Coroutine * | GetHead () |
GetHead Get the head node in the linked list. More... | |
void | SetHead (Coroutine *pclNode_) |
SetHead Set the head node of a linked list. More... | |
Coroutine * | GetTail () |
GetTail Get the tail node of the linked list. More... | |
void | SetTail (Coroutine *pclNode_) |
SetTail Set the tail node of the linked list. More... | |
void | Add (Coroutine *pNode_) |
Add the linked list node to this linked list. More... | |
void | Remove (Coroutine *pNode_) |
Remove Add the linked list node to this linked list. More... | |
void | InsertNodeBefore (Coroutine *pNode_, Coroutine *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 | |
CoPrioMap * | m_pclPrioMap |
uint8_t | m_uPriority |
Additional Inherited Members | |
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 CoList class The CoList class implements a circular-linked-listed structure for coroutine objects. The intent of this object is to maintain a list of active coroutine objects with a specific priority or state, to ensure that a freshly-schedulable co-routine always exists at the head of the list.
void Mark3::CoList::Add | ( | Coroutine * | pclCoroutine_ | ) |
Add Add a coroutine object to this list.
pclCoroutine_ | Pointer to the coroutine object to add |
Definition at line 36 of file colist.cpp.
void Mark3::CoList::Remove | ( | Coroutine * | pclCoroutine_ | ) |
Remove Remove a given coroutine object from this list.
pclCoroutine_ | Pointer to the coroutine object to remove |
Definition at line 46 of file colist.cpp.
void Mark3::CoList::SetPrioMap | ( | CoPrioMap * | pclPrioMap_ | ) |
SetPrioMap Assign a priority map object to this co-routine list.
pclPrioMap_ | priority map object to assign |
Definition at line 24 of file colist.cpp.
void Mark3::CoList::SetPriority | ( | PORT_PRIO_TYPE | uPriority_ | ) |
SetPriority Set the scheduling priority of this coroutine liss; has no effect unless a SetPrioMap has been called with a valid coroutine priority map object.
uPriority_ | Priority of coroutines associated with this list |
Definition at line 30 of file colist.cpp.