内核学习——1、list_head

双向循环链表:list_head

头节点head是不使用的:

struct list_head {

struct list_head *next, *prev;

};

结构体中没有数据域,所以一般把list_head嵌入到其他结构中使用

struct file_node {

char c;

struct list_head node;

};

此时,list_head就作为它父结构体中的一个成员了,我们知道list_head的地址(指针)时,就可以通过list_entry来获得它的父结构的地址

#define list_entry(ptr, type, member) container_of(ptr,type,member)

通过结构体成员地址来求得结构体地址:ptr是所求结构体中的list_head成员指针,type是所求结构体类型,member是结构体list_head成员名

list_for_each:遍历双向链表

LIST_HEAD():生成双向链表头节点

list_add():插入操作

list_del():删除操作

list_empty():判断是否为空

相关推荐
暗夜猎手-大魔王1 小时前
hermes源码学习3-Agent Loop 内部机制
人工智能·学习
say_fall1 小时前
可编程中断控制器8259A工作方式超详细解析
android·开发语言·学习·硬件架构·硬件工程
吃好睡好便好1 小时前
说说食物依赖性运动诱发过敏
学习·生活
Amazing_Cacao3 小时前
深度专栏 | 粉碎感官玄学:精品可可的冷酷重构与物理变量
学习
xian_wwq3 小时前
【学习笔记】「大模型安全:攻击面演化史」第 05 篇-Agent安全
笔记·学习·ai安全
坤坤藤椒牛肉面5 小时前
实习日记--基础内容学习
学习
xianrenli385 小时前
【探讨“LLM作为评判者”的伦理】
学习·llm·ai编程
星恒随风6 小时前
C++ 类和对象入门(二):默认成员函数、构造函数和析构函数详解
开发语言·c++·笔记·学习
GHL2842710906 小时前
登录、注册页面学习
学习
MartinYeung56 小时前
[论文学习]利用索引梯度优化基于优化的 LLM 越狱攻击:MAGIC 方法的深度分析与实现
人工智能·学习·算法