Lines Matching refs:args

36 kvm_arch_irqfd_allowed(struct kvm *kvm, struct kvm_irqfd *args)
303 kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args)
315 if (!kvm_arch_irqfd_allowed(kvm, args))
323 irqfd->gsi = args->gsi;
329 f = fdget(args->fd);
343 if (args->flags & KVM_IRQFD_FLAG_RESAMPLE) {
346 resamplefd = eventfd_ctx_fdget(args->resamplefd);
534 kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args)
539 eventfd = eventfd_ctx_fdget(args->fd);
546 if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) {
574 kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args)
576 if (args->flags & ~(KVM_IRQFD_FLAG_DEASSIGN | KVM_IRQFD_FLAG_RESAMPLE))
579 if (args->flags & KVM_IRQFD_FLAG_DEASSIGN)
580 return kvm_irqfd_deassign(kvm, args);
582 return kvm_irqfd_assign(kvm, args);
825 struct kvm_ioeventfd *args)
832 eventfd = eventfd_ctx_fdget(args->fd);
843 p->addr = args->addr;
845 p->length = args->len;
849 if (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH)
850 p->datamatch = args->datamatch;
888 struct kvm_ioeventfd *args)
896 eventfd = eventfd_ctx_fdget(args->fd);
900 wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);
907 p->addr != args->addr ||
908 p->length != args->len ||
912 if (!p->wildcard && p->datamatch != args->datamatch)
930 static int kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
932 enum kvm_bus bus_idx = ioeventfd_bus_from_flags(args->flags);
933 int ret = kvm_deassign_ioeventfd_idx(kvm, bus_idx, args);
935 if (!args->len && bus_idx == KVM_MMIO_BUS)
936 kvm_deassign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args);
942 kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
947 bus_idx = ioeventfd_bus_from_flags(args->flags);
949 switch (args->len) {
961 if (args->addr + args->len < args->addr)
965 if (args->flags & ~KVM_IOEVENTFD_VALID_FLAG_MASK)
969 if (!args->len && (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH))
972 ret = kvm_assign_ioeventfd_idx(kvm, bus_idx, args);
979 if (!args->len && bus_idx == KVM_MMIO_BUS) {
980 ret = kvm_assign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args);
988 kvm_deassign_ioeventfd_idx(kvm, bus_idx, args);
994 kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
996 if (args->flags & KVM_IOEVENTFD_FLAG_DEASSIGN)
997 return kvm_deassign_ioeventfd(kvm, args);
999 return kvm_assign_ioeventfd(kvm, args);