Lines Matching refs:args

305 kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args)  in kvm_irqfd_assign()  argument
322 irqfd->gsi = args->gsi; in kvm_irqfd_assign()
328 f = fdget(args->fd); in kvm_irqfd_assign()
342 if (args->flags & KVM_IRQFD_FLAG_RESAMPLE) { in kvm_irqfd_assign()
345 resamplefd = eventfd_ctx_fdget(args->resamplefd); in kvm_irqfd_assign()
526 kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd_deassign() argument
531 eventfd = eventfd_ctx_fdget(args->fd); in kvm_irqfd_deassign()
538 if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) { in kvm_irqfd_deassign()
566 kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd() argument
568 if (args->flags & ~(KVM_IRQFD_FLAG_DEASSIGN | KVM_IRQFD_FLAG_RESAMPLE)) in kvm_irqfd()
571 if (args->flags & KVM_IRQFD_FLAG_DEASSIGN) in kvm_irqfd()
572 return kvm_irqfd_deassign(kvm, args); in kvm_irqfd()
574 return kvm_irqfd_assign(kvm, args); in kvm_irqfd()
776 struct kvm_ioeventfd *args) in kvm_assign_ioeventfd_idx() argument
783 eventfd = eventfd_ctx_fdget(args->fd); in kvm_assign_ioeventfd_idx()
794 p->addr = args->addr; in kvm_assign_ioeventfd_idx()
796 p->length = args->len; in kvm_assign_ioeventfd_idx()
800 if (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH) in kvm_assign_ioeventfd_idx()
801 p->datamatch = args->datamatch; in kvm_assign_ioeventfd_idx()
839 struct kvm_ioeventfd *args) in kvm_deassign_ioeventfd_idx() argument
845 eventfd = eventfd_ctx_fdget(args->fd); in kvm_deassign_ioeventfd_idx()
852 bool wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH); in kvm_deassign_ioeventfd_idx()
856 p->addr != args->addr || in kvm_deassign_ioeventfd_idx()
857 p->length != args->len || in kvm_deassign_ioeventfd_idx()
861 if (!p->wildcard && p->datamatch != args->datamatch) in kvm_deassign_ioeventfd_idx()
878 static int kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_deassign_ioeventfd() argument
880 enum kvm_bus bus_idx = ioeventfd_bus_from_flags(args->flags); in kvm_deassign_ioeventfd()
881 int ret = kvm_deassign_ioeventfd_idx(kvm, bus_idx, args); in kvm_deassign_ioeventfd()
883 if (!args->len && bus_idx == KVM_MMIO_BUS) in kvm_deassign_ioeventfd()
884 kvm_deassign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args); in kvm_deassign_ioeventfd()
890 kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_assign_ioeventfd() argument
895 bus_idx = ioeventfd_bus_from_flags(args->flags); in kvm_assign_ioeventfd()
897 switch (args->len) { in kvm_assign_ioeventfd()
909 if (args->addr + args->len < args->addr) in kvm_assign_ioeventfd()
913 if (args->flags & ~KVM_IOEVENTFD_VALID_FLAG_MASK) in kvm_assign_ioeventfd()
917 if (!args->len && in kvm_assign_ioeventfd()
918 args->flags & (KVM_IOEVENTFD_FLAG_PIO | in kvm_assign_ioeventfd()
922 ret = kvm_assign_ioeventfd_idx(kvm, bus_idx, args); in kvm_assign_ioeventfd()
929 if (!args->len && bus_idx == KVM_MMIO_BUS) { in kvm_assign_ioeventfd()
930 ret = kvm_assign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args); in kvm_assign_ioeventfd()
938 kvm_deassign_ioeventfd_idx(kvm, bus_idx, args); in kvm_assign_ioeventfd()
944 kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_ioeventfd() argument
946 if (args->flags & KVM_IOEVENTFD_FLAG_DEASSIGN) in kvm_ioeventfd()
947 return kvm_deassign_ioeventfd(kvm, args); in kvm_ioeventfd()
949 return kvm_assign_ioeventfd(kvm, args); in kvm_ioeventfd()