|
|
1.1 root 1: #ifndef _VIRTIO_BLK_H
2: #define _VIRTIO_BLK_H
3:
4: struct virtio_blk_config
5: {
6: u64 capacity;
7: u32 size_max;
8: u32 seg_max;
9: u16 cylinders;
10: u8 heads;
11: u8 sectors;
12: u32 blk_size;
13: u8 physical_block_exp;
14: u8 alignment_offset;
15: u16 min_io_size;
16: u32 opt_io_size;
17: } __attribute__((packed));
18:
19: #define VIRTIO_BLK_F_BLK_SIZE 6
20:
21: /* These two define direction. */
22: #define VIRTIO_BLK_T_IN 0
23: #define VIRTIO_BLK_T_OUT 1
24:
25: /* This is the first element of the read scatter-gather list. */
26: struct virtio_blk_outhdr {
27: /* VIRTIO_BLK_T* */
28: u32 type;
29: /* io priority. */
30: u32 ioprio;
31: /* Sector (ie. 512 byte offset) */
32: u64 sector;
33: };
34:
35: #define VIRTIO_BLK_S_OK 0
36: #define VIRTIO_BLK_S_IOERR 1
37: #define VIRTIO_BLK_S_UNSUPP 2
38:
39: struct disk_op_s;
40: int process_virtio_op(struct disk_op_s *op);
41: void virtio_blk_setup(void);
42:
43: #endif /* _VIRTIO_BLK_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.