首页 > 系统相关 >Linux内核中的两种ID分配方式

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

时间:2023-10-27 23:33:28浏览次数:42  
标签:IDR 用法 内核 Linux ID 分配 IDA

参考

https://www.kernel.org/doc/html/latest/core-api/idr.html

正文

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

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

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

第1个需求通过IDA可以解决,第2个需求通过IDR来解决。

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

IDR

  • 定义
    image

  • 分配
    image

  • 查找
    image

  • 遍历
    image

  • 删除
    image

  • 全部销毁
    image

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

IDA

  • 定义
    image

  • 分配
    image

  • 释放
    image

  • 全部销毁
    image

标签:IDR,用法,内核,Linux,ID,分配,IDA
From: https://www.cnblogs.com/pengdonglin137/p/17793364.html

相关文章

  • Linux lp命令(-o选项,-d目标打印机,-p页码范围)
     原文主要介绍lp命令的参数和描述。常见命令包括:lpfilename(打印filename)-d打印机名称(指定打印机)-P1,2-5,6(指定页码范围)-osides=two-sided-long-edge(选项,长边翻转,竖直打印)-onumber-up(指定一页几版)……有趣的打印命令详见下文lp命令原文:通过命令行,manlp得到:NAME......
  • Linux mkdir命令:创建目录(文件夹)
    mkdir命令,是makedirectories的缩写,用于创建新目录,此命令所有用户都可以使用。mkdir命令的基本格式为:[root@localhost~]#mkdir[-mp]目录名-m选项用于手动配置所创建目录的权限,而不再使用默认权限。-p选项递归创建所有目录,以创建/home/test/demo为例,在默认情况下,你需要......
  • Linux p11 时间日期指令
    【学习课程】:【【小白入门通俗易懂】2021韩顺平一周学会Linux】https://www.bilibili.com/video/BV1Sv411r7vd/?p=14&share_source=copy_web&vd_source=2c07d62293f5003c919b2df9b2e0549e时间日期指令date指令显示当前日期基本语法:date,显示当前时间date+%Y,显示当前......
  • linux 如何开机的时候自动挂载硬盘
    编辑/etc/fstab文件该文件的主要作用是在系统启动时自动挂载文件系统。当系统启动时,Linux会读取/etc/fstab文件中的信息,并根据其中的配置将指定的文件系统挂载到指定的挂载点上sudovim/etc/fstab#示例/dev/sdb1/mnt/dataext4defaults00#我的/dev/sda/media/ka......
  • Android Studio中手机没有Root权限
    发现手机没有root看了好多解决办法都太复杂找到了一种简单解决办法在创建手机时选中X86那一选项,选择一个X86并且结尾为GoogleApls的手机然后在这个手机里运行就能切换为最高管理员后来又产生了另一个问题模拟器无法连接15:09*daemonnotrunning;startingnowattcp:50471......
  • uboot支持的cortex-M4内核启动流程分析--Apple的学习笔记
    一,前言居然看到uboot支持stm32的cortex-M4的内核,所以就编译来看看,直接编译通过了,所以代表着我可以直接在真实的板子上连接jlink单步调试了,先看看上电流程的代码吧~二,编译下载了6.0版本以上的arm-none编译即可通过编译。exportPATH=$PATH:/work/tools/gcc-arm-none-eabi-9-2019-q4-......
  • linux面试题总结(腾讯)
    1、运维会经常写shell脚本来执行任务,脚本的健壮性直接关系生产环境的稳定性,对于提升shell脚本的健壮性,有哪些常见的方法?2、日志里出现unabletoattachtosharedmemory,可能的原因是什么,如何解决?3、如何判断程序是否存在内存泄露?4、rm删除文件后空间没有释放,可能的原因和解决......
  • Linux 的性能调优的思路
    Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的apache、tomcat、mysql等。开源软件的最大理念是自由、开放,那么Linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能。因此,谈......
  • linux系统 基本权限ACL读书笔记
    当你作为一个Linux初学者探索文件权限和ACL(AccessControlLists)时,了解getfacl和setfacl命令将帮助你更好地管理文件和目录的权限。以下是一些关于这两个命令的读书笔记:getfacl命令getfacl命令用于获取文件或目录的ACL信息。ACL允许你在标准UNIX权限之外更精细地控制访问。以下......
  • android开发Type BuildConfig is defined multiple times
    1.问题:TypeBuildConfigisdefinedmultipletimes2.原因:两个依赖库的namespace名字相同导致,导致生成的BuildConfig类路径一样导致编译失败android{namespace'com.suyf.demo'}3.解决方法:自然是改不同依赖库namespace为不同即可......