更新时间:2021-07-08 GMT+08:00
分享

开发指导

功能

Huawei LiteOS的双向链表模块为用户提供下面几种功能,接口详细信息可以查看API参考。

功能分类

接口名

描述

初始化链表

LOS_ListInit

将指定节点初始化为双向链表节点

LOS_DL_LIST_HEAD

定义一个节点并初始化为双向链表节点

增加节点

LOS_ListAdd

将指定节点插入到双向链表头端

LOS_ListHeadInsert

将指定节点插入到双向链表头端,同LOS_ListAdd

LOS_ListTailInsert

将指定节点插入到双向链表尾端

删除节点

LOS_ListDelete

将指定节点从链表中删除

LOS_ListDelInit

将指定节点从链表中删除,并使用该节点初始化链表

判断双向链表是否为空

LOS_ListEmpty

判断链表是否为空

获取节点

LOS_DL_LIST_LAST

获取指定节点的前驱结点

LOS_DL_LIST_FIRST

获取指定节点的后继结点

获取结构体信息

LOS_DL_LIST_ENTRY

获取包含链表的结构体地址,接口的第一个入参表示的是链表中的某个节点,第二个入参是要获取的结构体名称,第三个入参是链表在该结构体中的名称

LOS_OFF_SET_OF

获取指定结构体内的成员相对于结构体起始地址的偏移量

遍历双向链表

LOS_DL_LIST_FOR_EACH

遍历双向链表

LOS_DL_LIST_FOR_EACH_SAFE

遍历双向链表,并存储当前节点的后继节点用于安全校验

遍历包含双向链表的结构体

LOS_DL_LIST_FOR_EACH_ENTRY

遍历指定双向链表,获取包含该链表节点的结构体地址

LOS_DL_LIST_FOR_EACH_ENTRY_SAFE

遍历指定双向链表,获取包含该链表节点的结构体地址,并存储包含当前节点的后继节点的结构体地址

LOS_DL_LIST_FOR_EACH_ENTRY_HOOK

遍历指定双向链表,获取包含该链表节点的结构体地址,并在每次循环中调用钩子函数

开发流程

双向链表的典型开发流程:

  1. 调用LOS_ListInit/LOS_DL_LIST_HEAD初始双向链表。
  2. 调用LOS_ListAdd/LOS_ListHeadInsert向链表头部插入节点。
  3. 调用LOS_ListTailInsert向链表尾部插入节点。
  4. 调用LOS_ListDelete删除指定节点。
  5. 调用LOS_ListEmpty判断链表是否为空。
  6. 调用LOS_ListDelInit删除指定节点并以此节点初始化链表。

相关文档