Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / seabios / src / hw / virtio-scsi.h
1 #ifndef _VIRTIO_SCSI_H
2 #define _VIRTIO_SCSI_H
3
4 #define VIRTIO_SCSI_CDB_SIZE      32
5 #define VIRTIO_SCSI_SENSE_SIZE    96
6
7 struct virtio_scsi_config
8 {
9     u32 num_queues;
10     u32 seg_max;
11     u32 max_sectors;
12     u32 cmd_per_lun;
13     u32 event_info_size;
14     u32 sense_size;
15     u32 cdb_size;
16     u16 max_channel;
17     u16 max_target;
18     u32 max_lun;
19 } __attribute__((packed));
20
21 /* This is the first element of the "out" scatter-gather list. */
22 struct virtio_scsi_req_cmd {
23     u8 lun[8];
24     u64 id;
25     u8 task_attr;
26     u8 prio;
27     u8 crn;
28     char cdb[VIRTIO_SCSI_CDB_SIZE];
29 } __attribute__((packed));
30
31 /* This is the first element of the "in" scatter-gather list. */
32 struct virtio_scsi_resp_cmd {
33     u32 sense_len;
34     u32 residual;
35     u16 status_qualifier;
36     u8 status;
37     u8 response;
38     u8 sense[VIRTIO_SCSI_SENSE_SIZE];
39 } __attribute__((packed));
40
41 #define VIRTIO_SCSI_S_OK            0
42
43 struct disk_op_s;
44 int virtio_scsi_cmd_data(struct disk_op_s *op, void *cdbcmd, u16 blocksize);
45 void virtio_scsi_setup(void);
46
47 #endif /* _VIRTIO_SCSI_H */