xv6-simplified 0.1
简化版xv6
|
qemu's virtio磁盘设备的驱动程序 More...
#include "include/types.h"
#include "include/memlayout.h"
#include "include/virtio.h"
#include "include/riscv.h"
#include "include/defs.h"
#include "include/fat32.h"
#include "include/buf.h"
Data Structures | |
struct | disk |
Macros | |
#define | R(r) ((volatile uint32 *)(VIRTIO0 + (r))) |
Functions | |
void | virtio_disk_init (void) |
初始化virtio,重置缓冲区描述符虚拟队列、空闲ring、used ring,初始化状态寄存器 | |
void | virtio_disk_rw (struct buf *b, int write) |
虚拟磁盘读写函数 | |
void | virtio_disk_intr () |
虚拟 I/O 磁盘设备的中断处理,回收已完成操作的used ring | |
qemu's virtio磁盘设备的驱动程序
使用qemu's mmio接口,相应的命令行如下
qemu ... -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0
void virtio_disk_init | ( | void | ) |
初始化virtio,重置缓冲区描述符虚拟队列、空闲ring、used ring,初始化状态寄存器
void virtio_disk_intr | ( | void | ) |
虚拟 I/O 磁盘设备的中断处理,回收已完成操作的used ring
void virtio_disk_rw | ( | struct buf * | b, |
int | write | ||
) |
虚拟磁盘读写函数
b | 操作的缓冲区 |
write | 是否为写设备 |