Avi Kivity wrote:
> Anthony Liguori wrote:
>> This patch introduces a PCI DMA API and some generic code to support 
>> other DMA
>> APIs.  Two types are introduced: PhysIOVector and IOVector.  A DMA API
>> maps a PhysIOVector, which is composed of target_phys_addr_t, into an 
>> IOVector,
>> which is composed of void *.
>>
>> This enables zero-copy IO to be preformed without introducing 
>> assumptions of
>> phys_ram_base.  This API is at the PCI device level to enable support of
>> per-device IOMMU remapping.
>>
>>
>> +
>> +typedef struct IOVector
>> +{
>> +    int num;
>> +    struct IOVectorElement {
>> +    void *base;
>> +    size_t len;
>> +    } sg[0];
>> +} IOVector;
>> +
>>   
>
> Can we use 'struct iovec' for the element type (with accessors for 
> setting base+len, and reading base or len, so we can substitute the 
> Windows version for that platform)? That will allow using the vector 
> without additional translation or casts.

If we switch to PhysIOVector => PhysIOVector, then the IO infrastructure 
can convert it to whatever it wants (including a struct iovec).

Regards,

Anthony Liguori


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to