当前位置: 首页 > news >正文

JJJ:linux ida

文章目录

    • 1.总结
    • 2.各类函数
      • 2.1 分配一个仓库
      • 2.2 销毁仓库
      • 2.3 从仓库里面分配一个整数id
      • 2.4 将上面分配的整数id从仓库里面删除
      • 2.5 在指定范围内分配一个id

1.总结

ida使用起来很简单,就是先分配一个仓库一样的实例,再从这个仓库里面分配一个独一无二的整数id

2.各类函数

2.1 分配一个仓库

静态定义一个类似于仓库一样的

51 static DEFINE_IDA(host_index_ida);

2.2 销毁仓库

606 void scsi_exit_hosts(void)
607 {
608     class_unregister(&shost_class);
609     ida_destroy(&host_index_ida);
610 }

2.3 从仓库里面分配一个整数id

394     int index;
...
414     index = ida_simple_get(&host_index_ida, 0, 0, GFP_KERNEL);
415     if (index < 0) {
416         kfree(shost);
417         return NULL;
418     }
419     shost->host_no = index;
...

2.4 将上面分配的整数id从仓库里面删除

365     ida_simple_remove(&host_index_ida, shost->host_no);

其实就是调用ida_free

301 #define ida_simple_remove(ida, id)  ida_free(ida, id)

2.5 在指定范围内分配一个id

534 int ida_alloc_range(struct ida *ida, unsigned int min, unsigned int max, gfp_t gfp)
http://www.xdnf.cn/news/450901.html

相关文章:

  • 深入掌握 Python 切片操作:解锁数据处理的高效密码
  • hadoop知识点
  • Guix System 系统详解:从架构到生态的深度解析
  • WebGL图形编程实战【7】:变换流水线 × 坐标系与矩阵精讲
  • 【ESP32-S3】Guru Meditation Error 崩溃分析实战:使用 addr2line 工具 + bat 脚本自动解析 Backtrace
  • Blender 入门教程(二):纹理绘制
  • Java NIO 深度解析:突破传统IO的性能瓶颈
  • 【Linux】基础指令(Ⅱ)
  • Joker 智能可视化开发平台 AI胜出的关键
  • 解锁健康生活:现代养生实用方案
  • 【c语言】自定义类型:结构体
  • vue和springboot交互数据,使用axios【跨域问题】
  • 【springcloud学习(dalston.sr1)】使用Feign实现接口调用(八)
  • python打卡day25@浙大疏锦行
  • OpenCV + PyAutoGUI + Tkinter + FastAPI + Requests 实现的远程控制软件设计方案
  • 可视化图解算法39: 输出二叉树的右视图
  • Linux基础 -- SSH 流式烧录与压缩传输笔记
  • Restfull API 风格规则以及特点
  • Linux运维高频词对照表
  • “小显存”也能启动大模型
  • [数据结构]5. 栈-Stack
  • 服务器数据恢复—XFS文件系统分区消失的数据恢复案例
  • 基于.Net开发的网络管理与监控工具
  • 【算法】版本号排序
  • C++笔记-AVL树(包括单旋和双旋等)
  • 微信小程序学习之轮播图swiper
  • DeepSeek:AI助力高效工作与智能管理
  • Qwen3如何强化推理能力?
  • AISBench benchmark评测工具实操-精度评测场景-采用命令行指定模型和数据集的方式
  • ESP系列单片机选择指南:结合实际场景的最优选择方案