- 论坛徽章:
- 1
|
- static struct gendisk *my_disk;
- struct request_queue *my_disk_queue;
- static void my_disk_queue_request(struct request_queue_t *q)
- {
- struct request *req;
- while((req = blk_fetch_request(q)) != NULL){
- if(req->cmd_type != REQ_TYPE_FS){
- printk(KERN_NOTICE "Skip non-fs request\n");
- // blk_start_request(req);
- blk_end_request_all(req,-EIO);
- continue;
- }
- // blk_transfer(req->se);
- if(!blk_end_request_cur(req,0)){
- req = NULL;
- }
- }
- }
- static struct block_device_operations fops = {
- .owner = THIS_MODULE,
- };
- static int __init t_init(void){
- my_disk = alloc_disk(1);
- register_blkdev(555,"wuyi");
- my_disk_queue = blk_init_queue(my_disk_queue_request,NULL);
- my_disk->major = 555;
- my_disk->first_minor = 0;
- my_disk->fops = &fops;
- my_disk->queue = my_disk_queue;
- set_capacity(my_disk,1024);
- add_disk(my_disk);
- printk("helloworld\n");
- return 0;
- }
- void t_exit(void){
- printk("byebye\n");
- del_gendisk(my_disk);
- put_disk(my_disk);
- blk_cleanup_queue(my_disk->queue);
- unregister_blkdev(555,"wuyi");
- }
复制代码 我已经把代码最简化了,还是出问题。能够正常通过编译,但加载.ko文件的时候就死机。 |
|