diff options
author | Swapnil Ingle <swapnil.ingle@nutanix.com> | 2020-10-01 12:14:07 -0400 |
---|---|---|
committer | Swapnil Ingle <swapnil.ingle@nutanix.com> | 2020-10-05 05:05:41 -0400 |
commit | 4ad019145eb7e7420ff1d3f2aebc8ef5b1b33524 (patch) | |
tree | ee62a799f2a7d470a0e79bd7c617090369907d0d | |
parent | b115b6a87dd8e0c5277dde2fceb5b2a862c3484b (diff) | |
download | libvfio-user-4ad019145eb7e7420ff1d3f2aebc8ef5b1b33524.zip libvfio-user-4ad019145eb7e7420ff1d3f2aebc8ef5b1b33524.tar.gz libvfio-user-4ad019145eb7e7420ff1d3f2aebc8ef5b1b33524.tar.bz2 |
dma: add api to validate dma region
Signed-off-by: Swapnil Ingle <swapnil.ingle@nutanix.com>
-rw-r--r-- | lib/dma.c | 17 | ||||
-rw-r--r-- | lib/dma.h | 4 |
2 files changed, 21 insertions, 0 deletions
@@ -106,6 +106,23 @@ _dma_controller_do_remove_region(dma_controller_t *dma, } } +bool +dma_controller_region_valid(dma_controller_t *dma, dma_addr_t dma_addr, + size_t size) +{ + dma_memory_region_t *region; + int i; + + for (i = 0; i < dma->nregions; i++) { + region = &dma->regions[i]; + if (dma_addr == region->dma_addr && size <= region->size) { + return true; + } + } + + return false; +} + /* FIXME not thread safe */ int dma_controller_remove_region(dma_controller_t *dma, @@ -245,6 +245,10 @@ dma_unmap_addr(dma_controller_t *dma, dma_unmap_sg(dma, &sg, &iov, 1); } +bool +dma_controller_region_valid(dma_controller_t *dma, dma_addr_t dma_addr, + size_t size); + #endif /* DMA_DMA_H */ /* ex: set tabstop=4 shiftwidth=4 softtabstop=4 expandtab: */ |