![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核网络
文章平均质量分 76
redkowl
我爱家人和计算机
展开
-
分析kfifo
分析kfifokfifo也是内核常用的数据结构,今天分析kfifo。fifo:first in first out先进先出。这至少会涉及到数据的入队,数据的出队。先想想如果自己来实现一个fifo该怎么设计:如果设计的话,只需要满足语义,我会用链表或者数组来实现,数组效率更高,设计思路:先申请一片数组作为fifo的大小,然后设计两个指针。入队指针指向数组的尾部,数组增加,指针加1,出队指针指向数...原创 2020-03-28 12:24:10 · 561 阅读 · 0 评论 -
分析linked_lists
分析linked_lists在内核中使用链表的地方非常多,链表是将所有的节点通过指针串联起来,内核使用双链表。普通的链表我们通常认识的链表都这么定义struct node { int data; struct node *next; struct node *prev;};先定义一个数据,再加上一个前向指针,再加上以后后向指针,如果只是使用这个数据结构的话,似...原创 2020-03-26 11:26:38 · 183 阅读 · 0 评论 -
分析 container_of 宏
分析 container_of 宏功能和使用这个宏的作用是通过得知结构体中的某个成员变量的地址,然后找到结构体的首地址。举例说明:有个结构体:struct person { int age; int salary; char *name;};struct person leo;int *salary_ptr = &(leon.salary);得...原创 2020-03-25 15:40:50 · 581 阅读 · 0 评论 -
编写snull程序
编写snull程序内容简介这是一篇手把手简易实现LDD3第17章:网络驱动程序的记录过程(其实我是把程序调试完了再来写的总结文章)。确认内核版本$uname -r4.15.0-88-generic模块程序的框架这是内核的模块驱动(module driver),那先就把模块的框架和对应的Makefile写好。构成模块的文件为snull.c snull.h Makefile(为什么要...原创 2020-03-24 16:34:21 · 700 阅读 · 0 评论