73 listSorted = LOS_DL_LIST_ENTRY(prevNode,
SortLinkList, sortLinkNode);
87 SET_SORTLIST_VALUE(node, responseTime);
89#ifdef LOSCFG_KERNEL_SMP
90 node->
cpuid = idleCpu;
111 SET_SORTLIST_VALUE(node, responseTime);
133 return OS_SORT_LINK_INVALID_TIME;
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID LOS_ListInit(LOS_DL_LIST *list)
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID LOS_ListHeadInsert(LOS_DL_LIST *list, LOS_DL_LIST *node)
Insert a node to the head of a doubly linked list.
LITE_OS_SEC_ALW_INLINE STATIC INLINE VOID LOS_ListAdd(LOS_DL_LIST *list, LOS_DL_LIST *node)
Insert a new node to a doubly linked list.
LITE_OS_SEC_ALW_INLINE STATIC INLINE BOOL LOS_ListEmpty(LOS_DL_LIST *list)
Identify whether a specified doubly linked list is empty. | 判断链表是否为空
VOID OsDeleteFromSortLink(SortLinkAttribute *head, SortLinkList *node)
VOID OsSortLinkInit(SortLinkAttribute *sortLinkHeader)
排序链表初始化
UINT64 OsSortLinkGetTargetExpireTime(UINT64 currTime, const SortLinkList *targetSortList)
STATIC INLINE VOID AddNode2SortLink(SortLinkAttribute *sortLinkHeader, SortLinkList *sortList)
OsAddNode2SortLink 向链表中插入结点,并按时间顺序排列
VOID OsAdd2SortLink(SortLinkAttribute *head, SortLinkList *node, UINT64 responseTime, UINT16 idleCpu)
UINT32 OsSortLinkAdjustNodeResponseTime(SortLinkAttribute *head, SortLinkList *node, UINT64 responseTime)
UINT64 OsSortLinkGetNextExpireTime(UINT64 currTime, const SortLinkAttribute *sortLinkHeader)
STATIC INLINE VOID OsDeleteNodeSortLink(SortLinkAttribute *sortLinkHeader, SortLinkList *sortList)
VOID LOS_SpinLock(SPIN_LOCK_S *lock)
VOID LOS_SpinInit(SPIN_LOCK_S *lock)
VOID LOS_SpinUnlock(SPIN_LOCK_S *lock)
struct LOS_DL_LIST * pstPrev
struct LOS_DL_LIST * pstNext
LOS_DL_LIST sortLink
排序链表,上面挂的任务/软件定时器
LOS_DL_LIST sortLinkNode
排序链表,注意上面挂的是一个个等待被执行的任务/软件定时器
UINT64 responseTime
响应时间,这里提取了最近需要触发的定时器/任务的时间,见于 OsAddNode2SortLink 的实现