Chinaunix首页 | 论坛 | 博客
  • 博客访问: 354743
  • 博文数量: 79
  • 博客积分: 1270
  • 博客等级: 中尉
  • 技术积分: 1370
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-12 08:48
个人简介

freedom~~~~~~~~~~

文章分类

全部博文(79)

文章存档

2014年(10)

2013年(2)

2012年(13)

2011年(54)

分类: LINUX

2011-08-22 09:01:08

  1. #include<linux/module.h>
  2. #include<linux/init.h>
  3. #include<linux/types.h>
  4. #include<asm/io.h>
  5. #include<linux/sched.h>
  6. #include<linux/string.h>
  7. #include<linux/major.h>
  8. #include<linux/device.h>
  9. #include<linux/cdev.h>

  10. MODULE_AUTHOR("AW");
  11. MODULE_LICENSE("GPL");

  12. unsigned int addr;

  13. int major=251;
  14. struct class *myclass;
  15. static int hello_init(void)
  16. {

  17.     printk("<1>class create!");
  18.     myclass=class_create(THIS_MODULE,"my_deriver2");
  19.     
  20.     if(IS_ERR(myclass))
  21.     {
  22.               printk("failed to creat class\n ");
  23.               return -1;
  24.     }

  25.     device_create(myclass,NULL,MKDEV(major,0),NULL,"my_device_deriver%d",5);
  26.     printk("<1>after device_create register!");
  27.     return 0;
  28. }

  29. static void hello_exit(void)
  30. {
  31.     device_destroy(myclass, MKDEV(major, 0));
  32.     printk(KERN_DEBUG "Good-bye, kernel!\n");
  33. }

  34. module_init(hello_init);
  35. module_exit(hello_exit);



Makefile:

  1. obj-m:=hello1.o
  2. KERNELDIR:=/lib/modules/$(shell uname -r)/build
  3. PWD:=$(shell pwd)
  4. modules:
  5.     $(MAKE) -C $(KERNELDIR) M=$(PWD) ARCH=i386 CROSS_COMPILE=

  6. clean:
  7.     rm *.o *mod.o *.order *.mod.c *symvers -f
阅读(634) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~