链表
链表是OS中经常使用到的,任务调度和内存管理等关键模块都需要以链表为基础来实现。
节点定义
typedef struct _list_head {
struct _list_head *next, *prev;
} list_head_t;
使用
//先定义一个数据结构体
typedef struct{
list_head_t self;
raw_t raw;
} data_t;
//再创建一个表头
list_head_t list;
//创建数据节点并连接
......
//使用container_of(参照预处理进阶)用data_t的self成员的指针拿到data_t的指针
container_of(list->next, data_t, self);
完整实现链接[om_list.c om_list.h]