块设备驱动
注册块IO设备 为了注册块IO设备,register_blkdev()被使用。取消注册时使用unregister_blkdev()方法。自从4.9版本的内核开始,对register_blkdev()的调用是可选的。 下面是一个典型的场景。 # include <linux/fs.h> # define MY_BLOCK_MAJOR 240 # define MY_BLKDEV_NAME "mybdev" static int my_block_init ( void ) { int status ; status = register_blkdev ( MY_BLOCK_MAJOR , MY_BLKDEV_NAME ) ; if ( status < 0 ) { printk ( KERN_ERR "unable to register mybdev block device\n" ) ; return - EBUSY ; } //... } static void my_block_exit ( void ) { //... unregister_blkdev ( MY_BLOCK_MAJOR , MY_BLKDEV_NAME ) ; } 注册一个磁盘 尽管register_blkdev()方法获取了major,但是它没有为系统提供设备(磁盘)。alloc_disk(