Lines Matching refs:op
589 struct ioctl_gntdev_map_grant_ref op; in gntdev_ioctl_map_grant_ref() local
593 if (copy_from_user(&op, u, sizeof(op)) != 0) in gntdev_ioctl_map_grant_ref()
595 pr_debug("priv %p, add %d\n", priv, op.count); in gntdev_ioctl_map_grant_ref()
596 if (unlikely(op.count <= 0)) in gntdev_ioctl_map_grant_ref()
600 map = gntdev_alloc_map(priv, op.count); in gntdev_ioctl_map_grant_ref()
604 if (unlikely(atomic_add_return(op.count, &pages_mapped) > limit)) { in gntdev_ioctl_map_grant_ref()
611 sizeof(map->grants[0]) * op.count) != 0) { in gntdev_ioctl_map_grant_ref()
618 op.index = map->index << PAGE_SHIFT; in gntdev_ioctl_map_grant_ref()
621 if (copy_to_user(u, &op, sizeof(op)) != 0) in gntdev_ioctl_map_grant_ref()
630 struct ioctl_gntdev_unmap_grant_ref op; in gntdev_ioctl_unmap_grant_ref() local
634 if (copy_from_user(&op, u, sizeof(op)) != 0) in gntdev_ioctl_unmap_grant_ref()
636 pr_debug("priv %p, del %d+%d\n", priv, (int)op.index, (int)op.count); in gntdev_ioctl_unmap_grant_ref()
639 map = gntdev_find_map_index(priv, op.index >> PAGE_SHIFT, op.count); in gntdev_ioctl_unmap_grant_ref()
655 struct ioctl_gntdev_get_offset_for_vaddr op; in gntdev_ioctl_get_offset_for_vaddr() local
660 if (copy_from_user(&op, u, sizeof(op)) != 0) in gntdev_ioctl_get_offset_for_vaddr()
662 pr_debug("priv %p, offset for vaddr %lx\n", priv, (unsigned long)op.vaddr); in gntdev_ioctl_get_offset_for_vaddr()
665 vma = find_vma(current->mm, op.vaddr); in gntdev_ioctl_get_offset_for_vaddr()
673 op.offset = map->index << PAGE_SHIFT; in gntdev_ioctl_get_offset_for_vaddr()
674 op.count = map->count; in gntdev_ioctl_get_offset_for_vaddr()
680 if (rv == 0 && copy_to_user(u, &op, sizeof(op)) != 0) in gntdev_ioctl_get_offset_for_vaddr()
687 struct ioctl_gntdev_unmap_notify op; in gntdev_ioctl_notify() local
693 if (copy_from_user(&op, u, sizeof(op))) in gntdev_ioctl_notify()
696 if (op.action & ~(UNMAP_NOTIFY_CLEAR_BYTE|UNMAP_NOTIFY_SEND_EVENT)) in gntdev_ioctl_notify()
706 if (op.action & UNMAP_NOTIFY_SEND_EVENT) { in gntdev_ioctl_notify()
707 if (evtchn_get(op.event_channel_port)) in gntdev_ioctl_notify()
711 out_flags = op.action; in gntdev_ioctl_notify()
712 out_event = op.event_channel_port; in gntdev_ioctl_notify()
719 if (op.index >= begin && op.index < end) in gntdev_ioctl_notify()
726 if ((op.action & UNMAP_NOTIFY_CLEAR_BYTE) && in gntdev_ioctl_notify()
735 map->notify.flags = op.action; in gntdev_ioctl_notify()
736 map->notify.addr = op.index - (map->index << PAGE_SHIFT); in gntdev_ioctl_notify()
737 map->notify.event = op.event_channel_port; in gntdev_ioctl_notify()