Linux内核中的两种ID分配方式

参考

正文

在写内核代码时,可能会需要给数据结构分配一个唯一的ID的需求,具体是下面两种需求:

  1. 给结构体A分配一个全局唯一的ID,但是不需要根据ID找到结构体A的地址的用法

  2. 不但需要给结构体A分配一个全局唯一的ID,而且还需要能够根据ID值快速找到结构体A的地址

第1个需求通过IDA可以解决,第2个需求通过IDR来解决,比较新的内核里IDR已经不推荐使用了,而是推荐XArray。

下面用内核中已有的用法来举例。

IDR

  • 定义
    image

  • 分配
    image

  • 查找
    image

  • 遍历
    image

  • 删除
    image

  • 全部销毁
    image

具体每个API的详细用法参考上面的内核文档。

IDA

  • 定义
    image

  • 分配
    image

  • 释放
    image

  • 全部销毁
    image

XArray

  • 初始化
    image

  • 插入
    image

  • 查找
    image

  • 删除
    image

  • 遍历
    image

    image

  • 销毁
    image

完。

posted @   dolinux  阅读(262)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
历史上的今天:
2022-10-27 rpm打包学习
点击右上角即可分享
微信分享提示