Lines Matching defs:gpa

590 static int deref_table(struct kvm *kvm, unsigned long gpa, unsigned long *val)
592 return kvm_read_guest(kvm, gpa, val, sizeof(*val));
599 * @gpa: points to where guest physical (absolute) address should be stored
607 * an addressing exception is indicated and @gpa will not be changed.
609 * Returns: - zero on success; @gpa contains the resulting absolute address
617 unsigned long *gpa, const union asce asce,
776 *gpa = raddr.addr;
800 enum gacc_mode mode, gpa_t gpa)
810 hva = gfn_to_hva(kvm, gpa_to_gfn(gpa));
863 enum gacc_mode mode, union asce asce, gpa_t gpa,
877 hva = gfn_to_hva(vcpu->kvm, gpa_to_gfn(gpa));
914 * such that the concatenation of page fragments starting at each gpa make up
925 * When deriving the boundaries of a fragment from a gpa, all but the last
946 unsigned long gpa;
956 rc = guest_translate(vcpu, ga, &gpa, asce, mode, &prot);
960 gpa = kvm_s390_real_to_abs(vcpu, ga);
961 if (!kvm_is_gpa_in_memslot(vcpu->kvm, gpa)) {
968 rc = vcpu_check_access_key(vcpu, access_key, mode, asce, gpa, ga,
973 *gpas++ = gpa;
981 static int access_guest_page(struct kvm *kvm, enum gacc_mode mode, gpa_t gpa,
984 const unsigned int offset = offset_in_page(gpa);
985 const gfn_t gfn = gpa_to_gfn(gpa);
996 access_guest_page_with_key(struct kvm *kvm, enum gacc_mode mode, gpa_t gpa,
1005 gfn = gpa >> PAGE_SHIFT;
1017 hva += offset_in_page(gpa);
1029 int access_guest_abs_with_key(struct kvm *kvm, gpa_t gpa, void *data,
1032 int offset = offset_in_page(gpa);
1038 rc = access_guest_page_with_key(kvm, mode, gpa, data, fragment_len, access_key);
1044 gpa += fragment_len;
1134 unsigned long gpa;
1138 gpa = kvm_s390_real_to_abs(vcpu, gra);
1139 fragment_len = min(PAGE_SIZE - offset_in_page(gpa), len);
1140 rc = access_guest_page(vcpu->kvm, mode, gpa, data, fragment_len);
1151 * @gpa: Absolute guest address of the location to be changed.
1154 * @old_addr: Pointer to old value. If the location at @gpa contains this value,
1156 * *@old_addr contains the value at @gpa before the attempt to
1158 * @new: The value to place at @gpa.
1162 * Atomically exchange the value at @gpa by @new, if it contains *@old.
1172 int cmpxchg_guest_abs_with_key(struct kvm *kvm, gpa_t gpa, int len,
1176 gfn_t gfn = gpa_to_gfn(gpa);
1182 if (!IS_ALIGNED(gpa, len))
1196 hva += offset_in_page(gpa);
1262 * @gpa: Guest physical address
1273 unsigned long *gpa, enum gacc_mode mode,
1283 return guest_range_to_gpas(vcpu, gva, ar, gpa, 1, asce, mode,
1316 * @gpa: guest physical address
1321 int check_gpa_range(struct kvm *kvm, unsigned long gpa, unsigned long length,
1328 fragment_len = min(PAGE_SIZE - offset_in_page(gpa), length);
1329 rc = vm_check_access_key(kvm, access_key, mode, gpa);
1331 gpa += fragment_len;