• Oleksandr Andrushchenko's avatar
    xen/gntdev: Implement dma-buf export functionality · a240d6e4
    Oleksandr Andrushchenko authored
    1. Create a dma-buf from grant references provided by the foreign
       domain. By default dma-buf is backed by system memory pages, but
       by providing GNTDEV_DMA_FLAG_XXX flags it can also be created
       as a DMA write-combine/coherent buffer, e.g. allocated with
       corresponding dma_alloc_xxx API.
       Export the resulting buffer as a new dma-buf.
    
    2. Implement waiting for the dma-buf to be released: block until the
       dma-buf with the file descriptor provided is released.
       If within the time-out provided the buffer is not released then
       -ETIMEDOUT error is returned. If the buffer with the file descriptor
       does not exist or has already been released, then -ENOENT is
       returned. For valid file descriptors this must not be treated as
       error.
    
    3. Make gntdev's common code and structures available to dma-buf.
    
    [boris: added 'args.fd = -1' to dmabuf_exp_from_refs() to avoid an
     unnecessary warning about it not being initialized on i386 with gcc 8.1.1]
    Signed-off-by: default avatarOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
    Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    a240d6e4
gntdev-dmabuf.c 14.6 KB