On Thu, Aug 04, 2011 at 07:14:38PM +0200, Paolo Bonzini wrote: > Hi, > > this is the version of SCSI scatter/gather based on the existing > DMA helpers infrastructure. > > The infrastructure required a little update because I need to > know the residual amount of data upon short transfers. To this > end, my choice was to make QEMUSGList mutable and track the > current position in there. Any other ideas are welcome, the > reason for this choice is explained in patch 2. > > The patches are quite self-contained, but they depend on the > changes I posted yesterday. > > Patch 11 is the sample vmw_pvscsi device model that I used to > test the code.
This is a good opportunity to rename is_write in dma-helpers because it is confusing. The problem is that bdrv_*() is_write indicates whether the I/O request is a read or write. But in cpu_physical_memory_map() is_write indicates whether we are writing to target memory. These two is_write use cases actually have opposite meanings, therefore the confusing code in dma-helpers.c today: mem = cpu_physical_memory_map(cur_addr, &cur_len, !dbs->is_write); ^^^^^^^^^^^^^^ Please use a DMA direction instead of is_write: DMA-to-device means target->device memory transfer DMA-from-device means device->target memory transfer This patch series is a good place to do the rename because it adds more instances of !dbs->is_write. Stefan