Lines Matching defs: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);
548 kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args)
553 eventfd = eventfd_ctx_fdget(args->fd);
560 if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) {
588 kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args)
590 if (args->flags & ~(KVM_IRQFD_FLAG_DEASSIGN | KVM_IRQFD_FLAG_RESAMPLE))
593 if (args->flags & KVM_IRQFD_FLAG_DEASSIGN)
594 return kvm_irqfd_deassign(kvm, args);
596 return kvm_irqfd_assign(kvm, args);
839 struct kvm_ioeventfd *args)
846 eventfd = eventfd_ctx_fdget(args->fd);
857 p->addr = args->addr;
859 p->length = args->len;
863 if (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH)
864 p->datamatch = args->datamatch;
902 struct kvm_ioeventfd *args)
910 eventfd = eventfd_ctx_fdget(args->fd);
914 wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);
921 p->addr != args->addr ||
922 p->length != args->len ||
926 if (!p->wildcard && p->datamatch != args->datamatch)
944 static int kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
946 enum kvm_bus bus_idx = ioeventfd_bus_from_flags(args->flags);
947 int ret = kvm_deassign_ioeventfd_idx(kvm, bus_idx, args);
949 if (!args->len && bus_idx == KVM_MMIO_BUS)
950 kvm_deassign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args);
956 kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
961 bus_idx = ioeventfd_bus_from_flags(args->flags);
963 switch (args->len) {
975 if (args->addr + args->len < args->addr)
979 if (args->flags & ~KVM_IOEVENTFD_VALID_FLAG_MASK)
983 if (!args->len && (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH))
986 ret = kvm_assign_ioeventfd_idx(kvm, bus_idx, args);
993 if (!args->len && bus_idx == KVM_MMIO_BUS) {
994 ret = kvm_assign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args);
1002 kvm_deassign_ioeventfd_idx(kvm, bus_idx, args);
1008 kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args)
1010 if (args->flags & KVM_IOEVENTFD_FLAG_DEASSIGN)
1011 return kvm_deassign_ioeventfd(kvm, args);
1013 return kvm_assign_ioeventfd(kvm, args);