• Home
  • Raw
  • Download

Lines Matching refs:args

36 kvm_arch_irqfd_allowed(struct kvm *kvm, struct kvm_irqfd *args)  in kvm_arch_irqfd_allowed()  argument
282 kvm_irqfd_assign(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd_assign() argument
294 if (!kvm_arch_irqfd_allowed(kvm, args)) in kvm_irqfd_assign()
302 irqfd->gsi = args->gsi; in kvm_irqfd_assign()
308 f = fdget(args->fd); in kvm_irqfd_assign()
322 if (args->flags & KVM_IRQFD_FLAG_RESAMPLE) { in kvm_irqfd_assign()
325 resamplefd = eventfd_ctx_fdget(args->resamplefd); in kvm_irqfd_assign()
527 kvm_irqfd_deassign(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd_deassign() argument
532 eventfd = eventfd_ctx_fdget(args->fd); in kvm_irqfd_deassign()
539 if (irqfd->eventfd == eventfd && irqfd->gsi == args->gsi) { in kvm_irqfd_deassign()
567 kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args) in kvm_irqfd() argument
569 if (args->flags & ~(KVM_IRQFD_FLAG_DEASSIGN | KVM_IRQFD_FLAG_RESAMPLE)) in kvm_irqfd()
572 if (args->flags & KVM_IRQFD_FLAG_DEASSIGN) in kvm_irqfd()
573 return kvm_irqfd_deassign(kvm, args); in kvm_irqfd()
575 return kvm_irqfd_assign(kvm, args); in kvm_irqfd()
787 struct kvm_ioeventfd *args) in kvm_assign_ioeventfd_idx() argument
794 eventfd = eventfd_ctx_fdget(args->fd); in kvm_assign_ioeventfd_idx()
805 p->addr = args->addr; in kvm_assign_ioeventfd_idx()
807 p->length = args->len; in kvm_assign_ioeventfd_idx()
811 if (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH) in kvm_assign_ioeventfd_idx()
812 p->datamatch = args->datamatch; in kvm_assign_ioeventfd_idx()
850 struct kvm_ioeventfd *args) in kvm_deassign_ioeventfd_idx() argument
857 eventfd = eventfd_ctx_fdget(args->fd); in kvm_deassign_ioeventfd_idx()
864 bool wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH); in kvm_deassign_ioeventfd_idx()
868 p->addr != args->addr || in kvm_deassign_ioeventfd_idx()
869 p->length != args->len || in kvm_deassign_ioeventfd_idx()
873 if (!p->wildcard && p->datamatch != args->datamatch) in kvm_deassign_ioeventfd_idx()
892 static int kvm_deassign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_deassign_ioeventfd() argument
894 enum kvm_bus bus_idx = ioeventfd_bus_from_flags(args->flags); in kvm_deassign_ioeventfd()
895 int ret = kvm_deassign_ioeventfd_idx(kvm, bus_idx, args); in kvm_deassign_ioeventfd()
897 if (!args->len && bus_idx == KVM_MMIO_BUS) in kvm_deassign_ioeventfd()
898 kvm_deassign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args); in kvm_deassign_ioeventfd()
904 kvm_assign_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_assign_ioeventfd() argument
909 bus_idx = ioeventfd_bus_from_flags(args->flags); in kvm_assign_ioeventfd()
911 switch (args->len) { in kvm_assign_ioeventfd()
923 if (args->addr + args->len < args->addr) in kvm_assign_ioeventfd()
927 if (args->flags & ~KVM_IOEVENTFD_VALID_FLAG_MASK) in kvm_assign_ioeventfd()
931 if (!args->len && (args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH)) in kvm_assign_ioeventfd()
934 ret = kvm_assign_ioeventfd_idx(kvm, bus_idx, args); in kvm_assign_ioeventfd()
941 if (!args->len && bus_idx == KVM_MMIO_BUS) { in kvm_assign_ioeventfd()
942 ret = kvm_assign_ioeventfd_idx(kvm, KVM_FAST_MMIO_BUS, args); in kvm_assign_ioeventfd()
950 kvm_deassign_ioeventfd_idx(kvm, bus_idx, args); in kvm_assign_ioeventfd()
956 kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args) in kvm_ioeventfd() argument
958 if (args->flags & KVM_IOEVENTFD_FLAG_DEASSIGN) in kvm_ioeventfd()
959 return kvm_deassign_ioeventfd(kvm, args); in kvm_ioeventfd()
961 return kvm_assign_ioeventfd(kvm, args); in kvm_ioeventfd()