内核链表---Linux TCP/IP协议源码分析
来源:互联网 发布:python的ddt怎么用 编辑:程序博客网 时间:2024/06/03 13:52
Linux内核链表可以说是linux的基础也是精髓。一般的数据结构的形式如:
struct link
{
int data;
struct link *next;
}
这种结构最大的弊端时,由于data变量类型的不同,不能通用。需要根据data类型,重新定义一个链表结构。
Linux内核链表为解决上面的问题,实现如下:
定义了一个链表结构:
struct list_head
{
struct list_head *next;
struct list_head *prev;
}
将list_head嵌入到新的结构体中,如内核中netfilter结构中定义的
struct nf_hook_ops
{
int hooknum;
hookfn *fn;
struct list_head list;
int fn;
int priority;
}
通过嵌入的list_head双向链表,nf_hook_ops也可以形成一个双向的链表结构。
内核中实现了链表的初始化,插入,删除,遍历等函数。
初始化:
#define INST_HEAD_LIST(struct list_head *list) {list->next = list; list_prev = list;}
插入:
static inline void list_add(struct list *new,struct list *head);
static inline void list_add_tail(struct list *new,struct list *head);
删除:
static inline void list_del(struct list *new);
遍历:
list_for_each(struct list *pos,struct list *head);
- 内核链表---Linux TCP/IP协议源码分析
- TCP/IP协议内核源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- 开篇---Linux TCP/IP协议源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析
- [linux]Linux TCP/IP 协议栈源码分析
- Linux TCP/IP 协议栈源码分析(一)
- [转载]Linux TCP/IP 协议栈源码分析
- tcp/ip协议栈 -- linux内核
- tcp/ip协议栈源码分析
- 急救啊,c++的一个字符串中删除指定的字符串,
- 性能测试必备SQL语句总结
- 修改jQuery表格插件flexigrid源码添加自定义功能(2)
- plist Bundle
- xcode 4.6.3 用cocos2d-iphone+box2d模拟器设置竖屏问题
- 内核链表---Linux TCP/IP协议源码分析
- ASP.NET弹出新窗口的方法【显示提示信息】
- robotium 方法学习实例
- for循环执行效率
- 关于位操作的详细说明
- UIActivityIndicatorView使用简单介绍(风火轮)
- 图形学实验1-绘制人脸
- linux下安装apache步骤
- u盘量产