Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7679477
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: 嵌入式

2011-02-25 10:39:02

  1. #include <linux/device.h>
  2. #include <linux/module.h>
  3. #include <linux/kernel.h>
  4. #include <linux/init.h>
  5. #include <linux/string.h>
  6. #include <linux/sysfs.h>
  7. #include <linux/stat.h>
  8. #include <linux/kobject.h>

  9. MODULE_AUTHOR("David Xie");
  10. MODULE_LICENSE("Dual BSD/GPL");

  11. struct kset kset_p;
  12. struct kset kset_c;

  13. int kset_filter(struct kset *kset, struct kobject *kobj)
  14. {
  15.         printk("Filter: kobj %s.\n",kobj->name);
  16.         return 1;
  17. }

  18. const char *kset_name(struct kset *kset, struct kobject *kobj)
  19. {
  20.         static char buf[20];
  21.         printk("Name: kobj %s.\n",kobj->name);
  22.         sprintf(buf,"%s","kset_name");
  23.         return buf;
  24. }

  25. int kset_uevent(struct kset *kset, struct kobject *kobj,struct kobj_uevent_env *env)
  26. {
  27.         int i = 0;
  28.         printk("uevent: kobj %s.\n",kobj->name);

  29.         while( i < env->envp_idx){
  30.                 printk("%s.\n",env->envp[i]);
  31.                 i++;
  32.         }

  33.         return 0;
  34. }

  35. struct kset_uevent_ops uevent_ops =
  36. {
  37.         .filter = kset_filter,
  38.         .name = kset_name,
  39.         .uevent = kset_uevent,
  40. };

  41. int kset_test_init()
  42. {
  43.         printk("kset test init.\n");
  44.         kobject_set_name(&kset_p.kobj,"kset_p");
  45.         kset_p.uevent_ops = &uevent_ops;
  46.         kset_register(&kset_p);

  47.         kobject_set_name(&kset_c.kobj,"kset_c");
  48.         kset_c.kobj.kset = &kset_p;
  49.         kset_register(&kset_c);
  50.         return 0;
  51. }

  52. int kset_test_exit()
  53. {
  54.         printk("kset test exit.\n");
  55.         kset_unregister(&kset_p);
  56.         kset_unregister(&kset_c);
  57.         return 0;
  58. }

  59. module_init(kset_test_init);
  60. module_exit(kset_test_exit);
阅读(1467) | 评论(0) | 转发(2) |
0

上一篇:kobject

下一篇:bus

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