Lines Matching refs:args
284 kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd_assign() argument
301 irqfd->gsi = args->gsi; in kvm_irqfd_assign()
307 f = fdget(args->fd); in kvm_irqfd_assign()
321 if (args->flags & KVM_IRQFD_FLAG_RESAMPLE) { in kvm_irqfd_assign()
324 resamplefd = eventfd_ctx_fdget(args->resamplefd); in kvm_irqfd_assign()
522 kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd_deassign() argument
527 eventfd = eventfd_ctx_fdget(args->fd); in kvm_irqfd_deassign()
534 if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) { in kvm_irqfd_deassign()
562 kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd() argument
564 if (args->flags & ~(KVM_IRQFD_FLAG_DEASSIGN | KVM_IRQFD_FLAG_RESAMPLE)) in kvm_irqfd()
567 if (args->flags & KVM_IRQFD_FLAG_DEASSIGN) in kvm_irqfd()
568 return kvm_irqfd_deassign(kvm, args); in kvm_irqfd()
570 return kvm_irqfd_assign(kvm, args); in kvm_irqfd()
782 struct kvm_ioeventfd *args) in kvm_assign_ioeventfd_idx() argument
789 eventfd = eventfd_ctx_fdget(args->fd); in kvm_assign_ioeventfd_idx()
800 p->addr = args->addr; in kvm_assign_ioeventfd_idx()
802 p->length = args->len; in kvm_assign_ioeventfd_idx()
806 if (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH) in kvm_assign_ioeventfd_idx()
807 p->datamatch = args->datamatch; in kvm_assign_ioeventfd_idx()
845 struct kvm_ioeventfd *args) in kvm_deassign_ioeventfd_idx() argument
851 eventfd = eventfd_ctx_fdget(args->fd); in kvm_deassign_ioeventfd_idx()
858 bool wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH); in kvm_deassign_ioeventfd_idx()
862 p->addr != args->addr || in kvm_deassign_ioeventfd_idx()
863 p->length != args->len || in kvm_deassign_ioeventfd_idx()
867 if (!p->wildcard && p->datamatch != args->datamatch) in kvm_deassign_ioeventfd_idx()
884 static int kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_deassign_ioeventfd() argument
886 enum kvm_bus bus_idx = ioeventfd_bus_from_flags(args->flags); in kvm_deassign_ioeventfd()
887 int ret = kvm_deassign_ioeventfd_idx(kvm, bus_idx, args); in kvm_deassign_ioeventfd()
889 if (!args->len && bus_idx == KVM_MMIO_BUS) in kvm_deassign_ioeventfd()
890 kvm_deassign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args); in kvm_deassign_ioeventfd()
896 kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_assign_ioeventfd() argument
901 bus_idx = ioeventfd_bus_from_flags(args->flags); in kvm_assign_ioeventfd()
903 switch (args->len) { in kvm_assign_ioeventfd()
915 if (args->addr + args->len < args->addr) in kvm_assign_ioeventfd()
919 if (args->flags & ~KVM_IOEVENTFD_VALID_FLAG_MASK) in kvm_assign_ioeventfd()
923 if (!args->len && (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH)) in kvm_assign_ioeventfd()
926 ret = kvm_assign_ioeventfd_idx(kvm, bus_idx, args); in kvm_assign_ioeventfd()
933 if (!args->len && bus_idx == KVM_MMIO_BUS) { in kvm_assign_ioeventfd()
934 ret = kvm_assign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args); in kvm_assign_ioeventfd()
942 kvm_deassign_ioeventfd_idx(kvm, bus_idx, args); in kvm_assign_ioeventfd()
948 kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_ioeventfd() argument
950 if (args->flags & KVM_IOEVENTFD_FLAG_DEASSIGN) in kvm_ioeventfd()
951 return kvm_deassign_ioeventfd(kvm, args); in kvm_ioeventfd()
953 return kvm_assign_ioeventfd(kvm, args); in kvm_ioeventfd()