Chinaunix首页 | 论坛 | 博客
  • 博客访问: 657931
  • 博文数量: 185
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2107
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(185)

文章存档

2024年(1)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2016-05-17 20:58:44

     内核中的radix-tree简单使用。整数与指针相关联。
  向radix-tree中存入、取出数据。
  系统环境:Linux ubuntu 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
代码:
myRadixtree.c  

点击(此处)折叠或打开

  1. #include <linux/init.h>
  2. #include <linux/module.h>
  3. #include <linux/kernel.h>

  4. #include <linux/radix-tree.h>

  5. MODULE_LICENSE("GPL");
  6. MODULE_AUTHOR("zl");
  7. MODULE_DESCRIPTION("radixtree test");

  8. char *test[] = {"abc", "def", "ghi", "jkl", "mno", "pqr", "stu", "vwx", "yz0",
  9.                 "123", "456", "789", "zyx", "wvu", "tsr", "qpo", "nml", "kji"};

  10. static int __init Radixtree_init(void)
  11. {
  12.         int i = 0;
  13.     char *ptr;
  14.     int num = ARRAY_SIZE(test);

  15.     printk("num : %d\n", num);

  16. printk("**********************\n");
  17.     RADIX_TREE(root, GFP_ATOMIC);
  18.     for(i = 0; i < num; i++) {
  19.         radix_tree_insert(&root, i, test[i]);
  20.     }
  21.     for(i = 0; i < num; i++) {
  22.         printk("---[%d]---%s\n", i, (char*)radix_tree_lookup(&root, i));
  23.     }
  24. printk("**********************\n");
  25.     radix_tree_delete(&root, 13);
  26.     for(i = 0; i < num; i++) {
  27.         printk("---[%d]---%s\n", i, (char*)radix_tree_lookup(&root, i));
  28.     }

  29. printk("**********************\n");
  30.     for(i = 0; i < num; i++) {
  31.         radix_tree_delete(&root, i);
  32.     }

  33.     return    0;
  34. }

  35. static void __exit Radixtree_exit(void)
  36. {
  37.     printk("exit !\n");
  38. }


  39. module_init(Radixtree_init);
  40. module_exit(Radixtree_exit);

Makefile文件内容如下:

点击(此处)折叠或打开

  1. obj-m = myRadixtree.o
  2. #KERNELS = /home/zl/my2440-2.6.36
  3. KERNELS = /lib/modules/$(shell uname -r)/build/
  4. default:
  5.     make -C $(KERNELS) M=$(shell pwd) modules
  6. .PHONY:clean
  7. clean:
  8.     make -C $(KERNELS) M=$(shell pwd) clean
make clean;make;sudo insmod myRadixtree.ko; dmesg后,输出如下:



阅读(1488) | 评论(0) | 转发(0) |
0

上一篇:掌控幻觉

下一篇:stm8s207问题记录

给主人留下些什么吧!~~