JJJ:linux ida

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值