From 6789fa117c8a99d8607e2d46fb2028b50955a3f2 Mon Sep 17 00:00:00 2001 From: gatieme Date: Sat, 30 Jul 2016 23:53:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8cdev=5Fadd=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E8=AE=BE=E5=A4=87--books/fengguojin/src/1dri?= =?UTF-8?q?vermodel/1-3register=5Fchrdev--http://book.51cto.com/art/201205?= =?UTF-8?q?/337667.htm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1-3register_chrdev/simple/simple.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/books/fengguojin/src/1drivermodel/1-3register_chrdev/simple/simple.c b/books/fengguojin/src/1drivermodel/1-3register_chrdev/simple/simple.c index 087746d..9641038 100644 --- a/books/fengguojin/src/1drivermodel/1-3register_chrdev/simple/simple.c +++ b/books/fengguojin/src/1drivermodel/1-3register_chrdev/simple/simple.c @@ -42,9 +42,12 @@ int simple_open(struct inode *inode, struct file *filp) int simple_release(struct inode *inode, struct file *filp) { simple_inc--; - return 0; + + return 0; } + + /* read读设备文件操作 */ ssize_t simple_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos) { @@ -58,6 +61,7 @@ ssize_t simple_read(struct file *filp, char __user *buf, size_t count, loff_t *f } + /* write写设备文件操作 */ ssize_t simple_write(struct file *filp, const char __user *buf, size_t count,loff_t *f_pos) { @@ -70,6 +74,8 @@ ssize_t simple_write(struct file *filp, const char __user *buf, size_t count,lof return count; } + + struct file_operations simple_fops = { .owner = THIS_MODULE, @@ -79,16 +85,21 @@ struct file_operations simple_fops = .release = simple_release, }; + + /******************************************************* MODULE ROUTINE *******************************************************/ -void simple_cleanup_module(void) +static void __exit simple_cleanup_module(void) { unregister_chrdev(simple_MAJOR, "simple"); printk("simple_cleanup_module!\n"); } -static int __init simple_init_module(void) + + + +static int __init simple_setup_module(void) { int ret = -1; @@ -104,7 +115,7 @@ static int __init simple_init_module(void) return 0; } -module_init(simple_init_module); +module_init(simple_setup_module); module_exit(simple_cleanup_module);