Linux内核中bitmap的使用
来源:互联网 发布:mac gitignore文件 编辑:程序博客网 时间:2024/05/29 12:44
声明bitmap,实际上就是一个unsigned long数组
bit计数从0开始
#include <linux/module.h>#include <linux/sched.h>#include <linux/kthread.h>#include <linux/err.h>#include <linux/delay.h>#define BIT_CNT 50DECLARE_BITMAP(test_map, BIT_CNT) = {[0 ... BITS_TO_LONGS(BIT_CNT) - 1] = ~0};static int __init test_init(void){int ret;int i;int arr_size = BITS_TO_LONGS(BIT_CNT);printk("BITS_TO_LONGS(%d): %d\n", BIT_CNT, BITS_TO_LONGS(BIT_CNT));printk("init\n");for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}printk("clear_bit(0, test_map)\n");clear_bit(0, test_map);for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}printk("set_bit(0, test_map)\n");set_bit(0, test_map);for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}printk("clear_bit(1, test_map)\n");clear_bit(1, test_map);for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}ret = test_bit(1, test_map);printk("test_bit(1, test_map): %d\n", ret);printk("set_bit(1, test_map)\n");set_bit(1, test_map);for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}ret = test_bit(1, test_map);printk("test_bit(1, test_map): %d\n", ret);ret = test_and_set_bit(5, test_map);printk("test_and_set_bit(5, test_map): %d\n", ret);for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}ret = test_and_clear_bit(5, test_map);printk("test_and_clear_bit(5, test_map): %d\n", ret);for (i = 0; i < arr_size; i++) {printk("[%d], %08lx\n", i, test_map[i]);}return 0;}static void __exit test_exit(void){}module_init(test_init);module_exit(test_exit);MODULE_AUTHOR("tony");MODULE_DESCRIPTION("test");MODULE_LICENSE("GPL");MODULE_ALIAS("test");
0 0
- Linux内核中bitmap的使用
- linux 内核中的 bitmap
- 关于linux内核中使用的时钟
- Linux内核中位图的使用
- Linux内核中tasklet的使用
- Linux内核中timer_list定时器的使用
- Linux内核中rbtree的使用
- linux内核中内存的使用
- linux内核中Makefile的使用
- Linux内核中kfifo使用
- Android中Bitmap的分析与使用
- Linux内核中不能使用C语言的标准库
- Linux内核中不能使用C语言的标准库
- Linux-3.2.0.24中内核的Netlink测试使用
- linux内核中,对读取文件的使用
- ubuntu中linux内核的编译、更换与使用
- Linux内核中工作队列的使用work_struct,delayed_work
- linux内核中GPIO的使用(一)--IO内存
- 静态方法的内部类
- 【机房重构】一步一步往上爬——不仅仅是三层
- ios设计模式
- 25个最常用的iptables策略
- ExtJS 常用组件属性 及使用方法(转发)
- Linux内核中bitmap的使用
- 详解Android中AsyncTask的使用
- Spring入门基础 @RequestParam必须要加上参数名
- C--文件读写
- MVC初探
- android tab实现方式4 of 4,viewpager+fragmentpageadapter
- Weblogic 下载
- jquery文本框的focus和blur事件
- iOS 关于UITapGestureRecognizer 单击与双击手势冲突的解决