typedef struct os_rdy_list
OS_RDY_LIST;
struct os_rdy_list {
OS_TCB *HeadPtr; /* Pointer to task that will run at selected priority */
OS_TCB *TailPtr; /* Pointer to last task at selected priority */
OS_OBJ_QTY NbrEntries; /* Number of entries at selected priority */
};
OS_RDY_LIST OSRdyList[OS_CFG_PRIO_MAX];
void OS_RdyListInit (void):
将OSRdyList[] 初始化成如上图所示。
void OS_RdyListInsert (OS_TCB *p_tcb):
将p_tcb的prio对应的bitmap中的位置1,如果等于OSPrioCur, OS_RdyListInsertTail(p_tcb); ,否则 OS_RdyListInsertHead(p_tcb); 。
将p_tcb的prio对应的bitmap中的位置1,如果等于OSPrioCur, OS_RdyListInsertTail(p_tcb); ,否则 OS_RdyListInsertHead(p_tcb); 。
void OS_RdyListInsertHead (OS_TCB *p_tcb):
将p_tcb插入到对应的优先级的列表的开头。
void OS_RdyListInsertTail (OS_TCB *p_tcb):
将p_tcb插入到对应的优先级的列表的最后。
void OS_RdyListMoveHeadToTail (OS_RDY_LIST *p_rdy_list):
将p_rdy_list最前面的TCB移到最后面。(时间片轮询时用到)
void OS_RdyListRemove (OS_TCB *p_tcb):
将p_tcb从ready list中移除。