#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include module_license("gpl");
module_author("liuchang");
#define beep_name "beep"
#define dev_num 5
struct class * class;
struct device * devices[dev_num];
#define magic 'b'
#define start_beep _io(magic,0)
#define stop_beep _io(magic,1)
static struct cdev beep_dev;
static ssize_t beep_read(struct file * fp,char __user * buffer,size_t count,loff_t * l)
static ssize_t beep_write(struct file * fp,const char __user * buffer,size_t count,loff_t * l)
static int beep_open(struct inode * ip,struct file *fp)
static int beep_release(struct inode * ip,struct file *fp)
static void start_beep()
static void stop_beep()
static int beep_ioctl(struct inode * ip,struct file *fp,unsigned int cmd,unsigned long count)
case stop_beep :
default: }
return 0;
}static struct file_operations fo = ;
static int beep_major = 0;
module_param(beep_major,int,0444);
static int __init beep_init()
else
printk(kern_emerg"major is %d\n",beep_major);
//init cdev
cdev_init(&beep_dev,&fo);
beep_dev.owner = this_module;
cdev_add(&beep_dev,dev,dev_num);
// class is like a container of devices--------------
// class相當於乙個容器,可以存放多個型別相同的device
class = class_create( this_module,"beep_class");
for( i=0;i//then /sys/class/beep_class/beepn directories created
return 0;
}static void __exit beep_exit()
class_destroy( class);
unregister_chrdev_region(dev,2);
}module_init(beep_init);
module_exit(beep_exit);
mdev 自動建立裝置結點
自動建立裝置檔案 基本原理 驅動程式提供資訊 裝置檔名 裝置號 mdev會根據驅動提供的資訊自動建立裝置檔案 class create device create mdev是busybox自帶的乙個簡化版的udev 作用是在系統啟動和熱插拔 或動態載入驅動程式時,自動產生驅動程式所需的節點檔案,在檔...
mini2440 使用mdev建立裝置節點問題
下面是這篇文件部分內容 here s a typical code snippet from the init script 0 mount t proc proc proc 1 mount t sysfs sysfs sys 2 echo bin mdev proc sys kernel hotp...
使用sphinx自動建立API文件(一)
建立test demo為根目錄,下面分別建立doc和src資料夾。doc 之後用來儲存生成的 html 檔案和相關配置 src 源 python 檔案 src下面的 demo 檔案分別有如下內容 demo1 class demo1 english demo1.defdemo1 self,arg1 s...