On 10/30/09 09:12, Hannes Reinecke wrote: > Gerd Hoffmann wrote: >> http://repo.or.cz/w/qemu/kraxel.git?a=shortlog;h=refs/heads/scsi.v1 >> >> It is far from being completed, will continue tomorrow. Should give a >> idea of the direction I'm heading to though. Comments welcome. >> > Yep, this looks good. More bits available now at: http://repo.or.cz/w/qemu/kraxel.git/shortlog/refs/heads/scsi.v3 Please have a look at the new interface, this commit: http://repo.or.cz/w/qemu/kraxel.git/commitdiff/9c825dac540282dd4d5f5f660ca13af617888037 The workflow I have in mind is: ->request_new() Returns a parsed request, i.e. all fields of req->cmd are filled already, so the host adapter can easily check whenever it is a read or write and how many bytes will be transfered. ->request_run() Execute the command. iovec is passed to the dma_bdrv_*() functions, which means it should contain guest physical addresses. When the request is done the complete callback is called. For commands which complete immediately the callback might be called before request_run() returns. Or maybe don't call the callback at all then? We can easily indicate using the return value that we are done already. ->request_del() Release request when done. Questions & comments are welcome. cheers, Gerd _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization