Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


imported SEABIOS source tree
[palacios.git] / bios / seabios / src / virtio-blk.h
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 */