Lines Matching defs:vaddr
91 void **vaddr);
92 int (*unmap)(struct xenbus_device *dev, void *vaddr);
369 * @vaddr: pointer to starting virtual address of the ring
375 * zeroes. The virtual address of the ring is stored at @vaddr and the
376 * grant references are stored in the @grefs array. In case of error @vaddr
379 int xenbus_setup_ring(struct xenbus_device *dev, gfp_t gfp, void **vaddr,
388 addr = *vaddr = alloc_pages_exact(ring_size, gfp | __GFP_ZERO);
389 if (!*vaddr) {
404 if (is_vmalloc_addr(*vaddr))
419 if (*vaddr)
420 free_pages_exact(*vaddr, ring_size);
423 *vaddr = NULL;
431 * @vaddr: starting virtual address of the ring
438 void xenbus_teardown_ring(void **vaddr, unsigned int nr_pages,
450 if (*vaddr)
451 free_pages_exact(*vaddr, nr_pages * XEN_PAGE_SIZE);
452 *vaddr = NULL;
506 * @vaddr: pointer to address to be filled out by mapping
511 * sets *vaddr to that address. Returns 0 on success, and -errno on
516 unsigned int nr_grefs, void **vaddr)
521 *vaddr = NULL;
534 err = ring_ops->map(dev, info, gnt_refs, nr_grefs, vaddr);
648 unsigned long vaddr = (unsigned long)gfn_to_virt(gfn);
650 info->phys_addrs[info->idx] = vaddr;
651 info->addrs[info->idx] = vaddr;
660 void **vaddr)
696 *vaddr = addr;
717 * @vaddr: addr to unmap
726 int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr)
728 return ring_ops->unmap(dev, vaddr);
745 void **vaddr)
771 *vaddr = area->addr;
785 static int xenbus_unmap_ring_pv(struct xenbus_device *dev, void *vaddr)
796 if (node->pv.area->addr == vaddr) {
807 "can't find mapped virtual address %p", vaddr);
815 addr = (unsigned long)vaddr + (XEN_PAGE_SIZE * i);
871 static int xenbus_unmap_ring_hvm(struct xenbus_device *dev, void *vaddr)
884 if (addr == vaddr) {
895 "can't find mapped virtual address %p", vaddr);
908 vunmap(vaddr);
912 WARN(1, "Leaking %p, size %u page(s)\n", vaddr, nr_pages);