Lines Matching defs:args
1813 static long kvm_s390_get_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1819 if (args->flags != 0)
1827 if (args->count < 1 || args->count > KVM_S390_SKEYS_MAX)
1830 keys = kvmalloc_array(args->count, sizeof(uint8_t), GFP_KERNEL);
1836 for (i = 0; i < args->count; i++) {
1837 hva = gfn_to_hva(kvm, args->start_gfn + i);
1851 r = copy_to_user((uint8_t __user *)args->skeydata_addr, keys,
1852 sizeof(uint8_t) * args->count);
1861 static long kvm_s390_set_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1868 if (args->flags != 0)
1872 if (args->count < 1 || args->count > KVM_S390_SKEYS_MAX)
1875 keys = kvmalloc_array(args->count, sizeof(uint8_t), GFP_KERNEL);
1879 r = copy_from_user(keys, (uint8_t __user *)args->skeydata_addr,
1880 sizeof(uint8_t) * args->count);
1894 while (i < args->count) {
1896 hva = gfn_to_hva(kvm, args->start_gfn + i);
1969 static int kvm_s390_peek_cmma(struct kvm *kvm, struct kvm_s390_cmma_log *args,
1972 unsigned long pgstev, hva, cur_gfn = args->start_gfn;
1974 args->count = 0;
1975 while (args->count < bufsize) {
1982 return args->count ? 0 : -EFAULT;
1985 res[args->count++] = (pgstev >> 24) & 0x43;
2021 static int kvm_s390_get_cmma(struct kvm *kvm, struct kvm_s390_cmma_log *args,
2031 cur_gfn = kvm_s390_next_dirty_cmma(slots, args->start_gfn);
2033 args->count = 0;
2034 args->start_gfn = cur_gfn;
2040 while (args->count < bufsize) {
2050 res[args->count++] = (pgstev >> 24) & 0x43;
2059 (next_gfn - args->start_gfn >= bufsize))
2081 struct kvm_s390_cmma_log *args)
2090 if (args->flags & ~KVM_S390_CMMA_PEEK)
2093 peek = !!(args->flags & KVM_S390_CMMA_PEEK);
2097 bufsize = min(args->count, KVM_S390_CMMA_SIZE_MAX);
2099 memset(args, 0, sizeof(*args));
2104 memset(args, 0, sizeof(*args));
2115 ret = kvm_s390_peek_cmma(kvm, args, values, bufsize);
2117 ret = kvm_s390_get_cmma(kvm, args, values, bufsize);
2122 args->remaining = atomic64_read(&kvm->arch.cmma_dirty_pages);
2124 args->remaining = 0;
2126 if (copy_to_user((void __user *)args->values, values, args->count))
2139 const struct kvm_s390_cmma_log *args)
2145 mask = args->mask;
2150 if (args->flags != 0)
2153 if (args->count > KVM_S390_CMMA_SIZE_MAX)
2156 if (args->count == 0)
2159 bits = vmalloc(array_size(sizeof(*bits), args->count));
2163 r = copy_from_user(bits, (void __user *)args->values, args->count);
2171 for (i = 0; i < args->count; i++) {
2172 hva = gfn_to_hva(kvm, args->start_gfn + i);
2435 struct kvm_s390_skeys args;
2438 if (copy_from_user(&args, argp,
2441 r = kvm_s390_get_skeys(kvm, &args);
2445 struct kvm_s390_skeys args;
2448 if (copy_from_user(&args, argp,
2451 r = kvm_s390_set_skeys(kvm, &args);
2455 struct kvm_s390_cmma_log args;
2458 if (copy_from_user(&args, argp, sizeof(args)))
2461 r = kvm_s390_get_cmma_bits(kvm, &args);
2464 r = copy_to_user(argp, &args, sizeof(args));
2471 struct kvm_s390_cmma_log args;
2474 if (copy_from_user(&args, argp, sizeof(args)))
2477 r = kvm_s390_set_cmma_bits(kvm, &args);
2482 struct kvm_pv_cmd args;
2491 if (copy_from_user(&args, argp, sizeof(args))) {
2495 if (args.flags) {
2500 r = kvm_s390_handle_pv(kvm, &args);
2502 if (copy_to_user(argp, &args, sizeof(args))) {