xv6-simplified 0.1
简化版xv6
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
virtio_disk.c File Reference

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"
Include dependency graph for virtio_disk.c:

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
 

Detailed Description

qemu's virtio磁盘设备的驱动程序

Date
23.04.30
Author
xin

使用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

Version
0.1 @status Stable

Macro Definition Documentation

◆ R

#define R (   r)    ((volatile uint32 *)(VIRTIO0 + (r)))

Function Documentation

◆ virtio_disk_init()

void virtio_disk_init ( void  )

初始化virtio,重置缓冲区描述符虚拟队列、空闲ring、used ring,初始化状态寄存器

Here is the call graph for this function:
Here is the caller graph for this function:

◆ virtio_disk_intr()

void virtio_disk_intr ( void  )

虚拟 I/O 磁盘设备的中断处理,回收已完成操作的used ring

Here is the call graph for this function:
Here is the caller graph for this function:

◆ virtio_disk_rw()

void virtio_disk_rw ( struct buf b,
int  write 
)

虚拟磁盘读写函数

Parameters
b操作的缓冲区
write是否为写设备
Here is the call graph for this function:
Here is the caller graph for this function: