Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14988
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2020-12-29 16:23
文章分类
文章存档

2021年(6)

我的朋友
最近访客

发布时间:2021-04-21 09:56:43

    对照前面介绍过的内核通知链、链表,本章我们将要介绍的哈希表的初始化和定义也是如出一辙的:点击(此处)折叠或打开 定义并初始化一个名为name的哈希链表表头 #define HLIST_HEAD(name) struct hlist_head name = { .first = NULL }.........【阅读全文】

阅读(1169) | 评论(0) | 转发(0)

发布时间:2021-04-21 09:56:33

关于哈希表,在内核里设计两个很重要的数据结构:   哈希链表节点: 点击(此处)折叠或打开 /*Kernel Version : 3.4.x [include/linux/types.h]*/ struct hlist_node {    struct hlist_node *next, **pprev;}; .........【阅读全文】

阅读(960) | 评论(0) | 转发(0)

发布时间:2021-04-21 09:56:23

    新年第一帖,总得拿出点干货才行,虽然这篇水分还是有点大,大家可以晒干了温水冲服。这段时间一直在整理内核学习的基础知识点,期间又碰到了container_of()这个宏,当然还包括一个叫做offsetof()的家伙。在这两个宏定义里都出现将“零”地址强转成目标结构体类型,然后再访问其成员属性的情形。如果有童鞋看.........【阅读全文】

阅读(1039) | 评论(0) | 转发(0)

发布时间:2021-04-21 09:56:13

    关于链表我们更多时候是对其进行遍历的需求,上一篇博文里我们主要认识了一下和链表操作比较常用的几个内核API接口,其入参全都是清一色的struct list_head{}类型。至于链表的遍历,内核也有一组基本的接口(其实都是宏定义的)供开发者调用。    首先是list_for_each(pos,head),.........【阅读全文】

阅读(1126) | 评论(0) | 转发(0)

发布时间:2021-04-21 09:55:34

我们都知道Linux内核里的双向链表和学校里教给我们的那种数据结构还是些不一样。Linux采用了一种更通用的设计,将链表以及其相关操作函数从数据本身进行剥离,这样我们在使用链表的时候就不用自己去实现诸如节点的插入、删除、遍历等操作了。当然,Linux也是从2.1.x内核开始才对链表进行了这样的统一,和我们目前看到的样.........【阅读全文】

阅读(994) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册