多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 一步一步學習Linux驅動之自動創建設備節點

一步一步學習Linux驅動之自動創建設備節點

來源:程序員人生   發布時間:2015-08-04 07:51:35 閱讀次數:4712次
<span style="font-size:12px;">extern struct device *device_create(struct class *cls, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...) __attribute__((format(printf, 5, 6)));</span>
函數功能:
    函數device_create()用于動態的建立邏輯裝備,并對新的邏輯裝備類進行相應初始化,將其與函數的第1個參數所代表的邏輯類關聯起來,然后將此邏輯裝備加到linux內核系統的裝備驅動程序模型中。函數能夠自動在/sys/devices/virtual目錄下創建新的邏輯裝備目錄,在/dev目錄下創建于邏輯類對應的裝備文件
參數說明:
   struct class cls:與行將創建額邏輯裝備相干的邏輯類。
   dev_t dev:裝備號
   void *drvdata: void類型的指針,代表回調函數的輸入參數
   const char *fmt: 邏輯裝備的裝備名,即在目錄 /sys/devices/virtual創建的邏輯裝備目錄的目錄名。
#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #include <linux/delay.h> #include <linux/irq.h> #include <asm/uaccess.h> #include <asm/irq.h> #include <asm/io.h> #include <linux/poll.h> #include <linux/device.h> static struct class *Myleddrv_class; //自動注冊驅動主裝備 static struct device *Myleddrv_dev; volatile unsigned long *gpbcon = NULL; //控制寄存器 volatile unsigned long *gpbdat = NULL; //數據寄存器 static int Myleddrv_open(void) { printk("Hello Linux World! "); return 0; } static int Myleddrv_write(void) { return 0; } static struct file_operations Myleddrv_fops = { .owner = THIS_MODULE, /* 這是1個宏,推向編譯模塊時自動創建的__this_module變量 */ .open = Myleddrv_open, .write = Myleddrv_write, }; static int major; //全局變量 static int Myleddrv_init(void) { major = register_chrdev(0, "Myleddrv", &Myleddrv_fops); // 注冊, 告知內核 Myleddrv_class = class_create(THIS_MODULE, "Myleddrv"); Myleddrv_dev = device_create(Myleddrv_class, NULL, MKDEV(major, 0), NULL, "Myleddrv"); /* /dev/Myleddrv */ return 0; } static void Myleddrv_exit(void) { unregister_chrdev(major, "Myleddrv"); // 卸載 printk("Myleddrv has been unregistered! "); device_unregister(Myleddrv_dev); device_destroy(Myleddrv_class,major); } module_init(Myleddrv_init); module_exit(Myleddrv_exit); MODULE_LICENSE("GPL");


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91精品乱码一区二区三区 | 国产欧美一区二区精品久久久 | 国产区精品一区二区不卡中文 | 欧美亚洲综合网 | 新天堂网 | 都市 校园 春色 亚洲 | 成人自拍视频网站 | 亚洲伊人久久大香线蕉综合图片 | 欧美色欧美亚洲另类二区 | 欧美性视频一区二区三区 | 成人久久久精品乱码一区二区三区 | 2022福利视频| 亚洲经典在线中文字幕 | 免费精品| 国产国产成人人免费影院 | 欧美性猛交xxxx免费看手交 | 欧美孕妇乱大交xxxx | 一级毛片不收费 | 日本乱人伦片中文三区 | 亚洲在线网址 | 久久性久久性久久久爽 | 亚洲 校园 欧美 动漫 制服 | 最近的最新的中文字幕在线 | 国产女人伦码一区二区三区不卡 | 午夜理伦三级在线观看 | 男女晚上日日麻批视频不挡 | 亚洲精品456在线播放 | 久久看视频 | 国产亚洲精品久久久久久牛牛 | 久久精品国产精品亚洲精品 | 日韩亚洲欧美一区二区三区 | 亚洲欧美日韩中文字幕一区二区三区 | 亚洲一一在线 | 免费一级做a爰片性色毛片 免费一看一级毛片 | 波多野结衣久久一区二区 | 能在线观看的一区二区三区 | 国产成人久久一区二区三区 | 欧美激情一级欧美精品 | 欧美日韩中文亚洲v在线综合 | 亚洲swag精品自拍一区 | 国产欧美亚洲专区第一页 |