550W Document
550W, a high-end OS
|
类 | |
struct | buf |
struct | vring_desc_t |
struct | vring_used_elem |
struct | vring_used_area |
struct | disk |
类型定义 | |
typedef struct buf | buf_t |
typedef struct vring_desc_t | vring_desc_t |
typedef struct vring_used_elem | vring_used_elem_t |
typedef struct vring_used_area | vring_used_area_t |
typedef struct disk | disk_t |
函数 | |
void | d_virtio_disk_init (void) |
void | d_virtio_disk_rw (struct buf *b, int write) |
void | d_virtio_disk_intr (void) |
void | d_binit (void) |
struct buf * | d_bread (uint, uint) |
void | d_brelse (struct buf *) |
void | d_bwrite (struct buf *) |
void | d_sd_read (char *buffers, uint *start_block_id, uint block_num) |
void | d_sd_write (char *buffers, uint *start_block_ids, uint block_num) |
变量 | |
uintptr_t | virtio_base |
disk_t | disk |
#define BNUM 1600 |
#define BSIZE 512 |
#define DESC_NUM 8 |
#define DEV_VDA2 0 |
#define LOGSIZE (MAXOPBLOCKS * 3) |
#define MAXOPBLOCKS 10 |
#define NBUF (MAXOPBLOCKS * 3) |
#define R | ( | r | ) | ((volatile uint32 *)(virtio_base + (r))) |
#define VIRTIO0 0x10001000 |
#define VIRTIO0_IRQ 1 |
#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */ |
#define VIRTIO_BLK_F_MQ 12 /* support more than one vq */ |
#define VIRTIO_BLK_F_RO 5 /* Disk is read-only */ |
#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */ |
#define VIRTIO_BLK_T_IN 0 |
#define VIRTIO_BLK_T_OUT 1 |
#define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 |
#define VIRTIO_CONFIG_S_DRIVER 2 |
#define VIRTIO_CONFIG_S_DRIVER_OK 4 |
#define VIRTIO_CONFIG_S_FEATURES_OK 8 |
#define VIRTIO_DEVICE_ID_BLK 0x2 |
#define VIRTIO_DEVICE_ID_INV 0x0 |
#define VIRTIO_DEVICE_ID_NET 0x1 |
#define VIRTIO_F_ANY_LAYOUT 27 |
#define VIRTIO_MAGIC 0x74726976 |
#define VIRTIO_MMIO_DEVICE_DESC_HIGH 0x0a4 |
#define VIRTIO_MMIO_DEVICE_DESC_LOW 0x0a0 |
#define VIRTIO_MMIO_DEVICE_FEATURES 0x010 |
#define VIRTIO_MMIO_DEVICE_ID 0x008 |
#define VIRTIO_MMIO_DRIVER_DESC_HIGH 0x094 |
#define VIRTIO_MMIO_DRIVER_DESC_LOW 0x090 |
#define VIRTIO_MMIO_DRIVER_FEATURES 0x020 |
#define VIRTIO_MMIO_GUEST_PAGE_SIZE 0x028 |
#define VIRTIO_MMIO_INTERRUPT_ACK 0x064 |
#define VIRTIO_MMIO_INTERRUPT_STATUS 0x060 |
#define VIRTIO_MMIO_MAGIC_VALUE 0x000 |
#define VIRTIO_MMIO_QUEUE_DESC_HIGH 0x084 |
#define VIRTIO_MMIO_QUEUE_DESC_LOW 0x080 |
#define VIRTIO_MMIO_QUEUE_NOTIFY 0x050 |
#define VIRTIO_MMIO_QUEUE_NUM 0x038 |
#define VIRTIO_MMIO_QUEUE_NUM_MAX 0x034 |
#define VIRTIO_MMIO_QUEUE_PFN 0x040 |
#define VIRTIO_MMIO_QUEUE_READY 0x044 |
#define VIRTIO_MMIO_QUEUE_SEL 0x030 |
#define VIRTIO_MMIO_STATUS 0x070 |
#define VIRTIO_MMIO_VENDOR_ID 0x00c |
#define VIRTIO_MMIO_VERSION 0x004 |
#define VIRTIO_RING_F_EVENT_IDX 29 |
#define VIRTIO_RING_F_INDIRECT_DESC 28 |
#define VIRTIO_VENDOR_ID_QEMU 0x554d4551 |
#define VIRTIO_VERSION 0x1 |
#define VRING_DESC_F_NEXT 1 |
#define VRING_DESC_F_WRITE 2 |
typedef struct vring_desc_t vring_desc_t |
typedef struct vring_used_area vring_used_area_t |
typedef struct vring_used_elem vring_used_elem_t |
void d_binit | ( | void | ) |
void d_brelse | ( | struct buf * | b | ) |
void d_bwrite | ( | struct buf * | b | ) |
void d_virtio_disk_init | ( | void | ) |
void d_virtio_disk_intr | ( | void | ) |
void d_virtio_disk_rw | ( | struct buf * | b, |
int | write | ||
) |
|
extern |