blob: 8095d5b080498ca663625a855d7acd8b99f41b98 [file] [log] [blame]
Gleb Natapov89acfa32010-05-10 11:36:37 +03001#ifndef _VIRTIO_BLK_H
2#define _VIRTIO_BLK_H
3
4struct 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/* These two define direction. */
20#define VIRTIO_BLK_T_IN 0
21#define VIRTIO_BLK_T_OUT 1
22
23/* This is the first element of the read scatter-gather list. */
24struct virtio_blk_outhdr {
25 /* VIRTIO_BLK_T* */
26 u32 type;
27 /* io priority. */
28 u32 ioprio;
29 /* Sector (ie. 512 byte offset) */
30 u64 sector;
31};
32
33#define VIRTIO_BLK_S_OK 0
34#define VIRTIO_BLK_S_IOERR 1
35#define VIRTIO_BLK_S_UNSUPP 2
36
Kevin O'Connor7d09d0e2010-05-10 21:51:38 -040037struct disk_op_s;
Gleb Natapov89acfa32010-05-10 11:36:37 +030038int process_virtio_op(struct disk_op_s *op);
39void virtio_blk_setup(void);
40
41#endif /* _VIRTIO_BLK_H */