Lines Matching full:host

39     void *host;  member
464 static void qemu_vfio_ram_block_added(RAMBlockNotifier *n, void *host, in qemu_vfio_ram_block_added() argument
471 trace_qemu_vfio_ram_block_added(s, host, max_size); in qemu_vfio_ram_block_added()
472 ret = qemu_vfio_dma_map(s, host, max_size, false, NULL, &local_err); in qemu_vfio_ram_block_added()
476 host, max_size); in qemu_vfio_ram_block_added()
480 static void qemu_vfio_ram_block_removed(RAMBlockNotifier *n, void *host, in qemu_vfio_ram_block_removed() argument
484 if (host) { in qemu_vfio_ram_block_removed()
485 trace_qemu_vfio_ram_block_removed(s, host, max_size); in qemu_vfio_ram_block_removed()
486 qemu_vfio_dma_unmap(s, host); in qemu_vfio_ram_block_removed()
532 trace_qemu_vfio_dump_mapping(s->mappings[i].host, in qemu_vfio_dump_mappings()
539 * Find the mapping entry that contains [host, host + size) and set @index to
542 * is smaller than @host, or -1 if no entry is.
544 static IOVAMapping *qemu_vfio_find_mapping(QEMUVFIOState *s, void *host, in qemu_vfio_find_mapping() argument
550 trace_qemu_vfio_find_mapping(s, host); in qemu_vfio_find_mapping()
560 if (mid->host > host) { in qemu_vfio_find_mapping()
562 } else if (mid->host < host) { in qemu_vfio_find_mapping()
568 if (mid->host > host) { in qemu_vfio_find_mapping()
571 && (mid + 1)->host <= host) { in qemu_vfio_find_mapping()
576 mid->host <= host && mid->host + mid->size > host) { in qemu_vfio_find_mapping()
589 void *host, size_t size, in qemu_vfio_add_mapping() argument
593 IOVAMapping m = {.host = host, .size = size, .iova = iova}; in qemu_vfio_add_mapping()
599 trace_qemu_vfio_new_mapping(s, host, size, index, iova); in qemu_vfio_add_mapping()
614 static int qemu_vfio_do_mapping(QEMUVFIOState *s, void *host, size_t size, in qemu_vfio_do_mapping() argument
621 .vaddr = (uintptr_t)host, in qemu_vfio_do_mapping()
624 trace_qemu_vfio_do_mapping(s, host, iova, size); in qemu_vfio_do_mapping()
666 if (!(s->mappings[i].host < s->mappings[i + 1].host)) { in qemu_vfio_verify_mappings()
671 if (!(s->mappings[i].host + s->mappings[i].size <= in qemu_vfio_verify_mappings()
672 s->mappings[i + 1].host)) { in qemu_vfio_verify_mappings()
745 /* Map [host, host + size) area into a contiguous IOVA address space, and store
750 int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size, in qemu_vfio_dma_map() argument
757 assert(QEMU_PTR_IS_ALIGNED(host, qemu_real_host_page_size())); in qemu_vfio_dma_map()
759 trace_qemu_vfio_dma_map(s, host, size, temporary, iova); in qemu_vfio_dma_map()
761 mapping = qemu_vfio_find_mapping(s, host, &index); in qemu_vfio_dma_map()
763 iova0 = mapping->iova + ((uint8_t *)host - (uint8_t *)mapping->host); in qemu_vfio_dma_map()
775 mapping = qemu_vfio_add_mapping(s, host, size, index + 1, iova0); in qemu_vfio_dma_map()
777 ret = qemu_vfio_do_mapping(s, host, size, iova0, errp); in qemu_vfio_dma_map()
787 ret = qemu_vfio_do_mapping(s, host, size, iova0, errp); in qemu_vfio_dma_map()
793 trace_qemu_vfio_dma_mapped(s, host, iova0, size); in qemu_vfio_dma_map()
821 void qemu_vfio_dma_unmap(QEMUVFIOState *s, void *host) in qemu_vfio_dma_unmap() argument
826 if (!host) { in qemu_vfio_dma_unmap()
830 trace_qemu_vfio_dma_unmap(s, host); in qemu_vfio_dma_unmap()
832 m = qemu_vfio_find_mapping(s, host, &index); in qemu_vfio_dma_unmap()