您现在的位置是:首页 > 生活消费网站首页生活消费
注册chrdev
- 生活消费
- 2022-08-16 16:45:07
- 来源:
大家好,小必来为大家解答以上的问题。注册chrdev这个很多人还不知道,现在让我们一起来看看吧!
1、staticunsignedcharsimple_inc=0;staticunsignedchardemoBuffer[256];int simple_open(structinode*inode,structfile*filp){if(simple_inc>0) return-ERESTARTSYS;simple_inc++;return0;}int simple_release(structinode*inode,structfile*filp){simple_inc--;return0;}ssize_t simple_read(structfile*filp,char__user*buf,size_tcount,loff_t*f_pos){/*把数据复制到应用程序空间*/if(copy_to_user(buf,demoBuffer,count)){count=-EFAULT;}returncount;}ssize_t simple_write(structfile*filp,constchar__user*buf,size_tcount,loff_t*f_pos){/*把数据复制到内核空间*/if(copy_from_user(demoBuffer+*f_pos,buf,count)){count=-EFAULT;}returncount;}struct file_operations simple_fops={.owner=THIS_MODULE,.read=simple_read,.write=simple_write,.open=simple_open,.release=simple_release,};/*******************************************************MODULEROUTINE*******************************************************/voidsimple_cleanup_module(void){unregister_chrdev(simple_MAJOR,"simple");printk("simple_cleanup_module!");}intsimple_init_module(void){intret;//根据设备号与设备名注册字符设备ret=register_chrdev(simple_MAJOR,"simple",&simple_fops);if(ret<0){printk("Unabletoregistercharacterdevice%d!",simple_MAJOR);returnret;}return0;}module_init(simple_init_module);module_exit(simple_cleanup_module);。
本文到此分享完毕,希望对大家有所帮助。