|
|
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.