X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Feal%2Fwindows%2Feal_memory.c;h=2fd37d97085e51c964dfd912d627cf1462b83d5d;hb=4fd15c6af0d4e065227a27cda9ec0ca1a563dc67;hp=2cf5a5e649c951a975fc7420cf5223ce2162c1cd;hpb=99a2dd955fba6e4cc23b77d590a033650ced9c45;p=dpdk.git diff --git a/lib/eal/windows/eal_memory.c b/lib/eal/windows/eal_memory.c index 2cf5a5e649..2fd37d9708 100644 --- a/lib/eal/windows/eal_memory.c +++ b/lib/eal/windows/eal_memory.c @@ -198,6 +198,13 @@ exit: return ret; } +void +eal_mem_virt2iova_cleanup(void) +{ + if (virt2phys_device != INVALID_HANDLE_VALUE) + CloseHandle(virt2phys_device); +} + phys_addr_t rte_mem_virt2phy(const void *virt) { @@ -218,19 +225,17 @@ rte_mem_virt2phy(const void *virt) return phys.QuadPart; } -/* Windows currently only supports IOVA as PA. */ rte_iova_t rte_mem_virt2iova(const void *virt) { phys_addr_t phys; - if (virt2phys_device == INVALID_HANDLE_VALUE) - return RTE_BAD_IOVA; + if (rte_eal_iova_mode() == RTE_IOVA_VA) + return (rte_iova_t)virt; phys = rte_mem_virt2phy(virt); if (phys == RTE_BAD_PHYS_ADDR) return RTE_BAD_IOVA; - return (rte_iova_t)phys; } @@ -508,7 +513,7 @@ eal_mem_set_dump(void *virt, size_t size, bool dump) void * rte_mem_map(void *requested_addr, size_t size, int prot, int flags, - int fd, size_t offset) + int fd, uint64_t offset) { HANDLE file_handle = INVALID_HANDLE_VALUE; HANDLE mapping_handle = INVALID_HANDLE_VALUE;