On 05/20/2011 11:21 AM, Paolo Bonzini wrote:
Hi all,
here is the second version of the spec. In the end I took the advice
of merging all requestq's into one. The reason for this is that I
took a look at the vSCSI device and liked its approach of using SAM
8-byte LUNs directly. While it _is_ complex (and not yet done right
by QEMU---will send a patch for that), the scheme is actually quite
natural to implement and use, and supporting generic bus/target/LUN
topologies is good to have for passthrough, as well.
I also added a few more features from SAM to avoid redefining the
structs in the future.
Of course it may be that I'm completely wrong. :) Please comment on
the spec!
Virtqueues
0:control transmitq
1:control receiveq
2:requestq
Shouldn't we plan multiqueue for this from day 1?
Requests have the following format:
struct virtio_scsi_req_cmd {
u8 lun[8];
u64 id;
u8 task_attr;
u8 prio;
u8 crn;
u32 num_dataout, num_datain;
char cdb[];
char data[][num_dataout+num_datain];
u8 sense[];
u32 sense_len;
u32 residual;
u16 status_qualifier;
u8 status;
u8 response;
};
flags? room for growth?
--
error compiling committee.c: too many arguments to function