Lines Matching refs:asce
20 union asce {
259 unsigned long asce : 64; /* Address-Space-Control Element */
380 static int ar_translation(struct kvm_vcpu *vcpu, union asce *asce, u8 ar,
398 asce->val = vcpu->arch.sie_block->gcr[1];
401 asce->val = vcpu->arch.sie_block->gcr[7];
465 asce->val = aste.asce;
572 static int get_vcpu_asce(struct kvm_vcpu *vcpu, union asce *asce,
579 asce->val = 0;
580 asce->r = 1;
589 asce->val = vcpu->arch.sie_block->gcr[1];
592 asce->val = vcpu->arch.sie_block->gcr[7];
595 asce->val = vcpu->arch.sie_block->gcr[13];
598 rc = ar_translation(vcpu, asce, ar, mode);
616 * @asce: effective asce
633 unsigned long *gpa, const union asce asce,
649 if (asce.r)
651 ptr = asce.origin * PAGE_SIZE;
652 switch (asce.dt) {
654 if (vaddr.rfx01 > asce.tl)
661 if (vaddr.rsx01 > asce.tl)
668 if (vaddr.rtx01 > asce.tl)
675 if (vaddr.sx01 > asce.tl)
680 switch (asce.dt) {
728 if (rtte.cr && asce.p && edat2)
756 if (ste.cs && asce.p)
803 const union asce asce)
810 if (psw_bits(*psw).dat && asce.p)
845 union asce asce)
855 override = override && !(psw_bits(*psw).dat && asce.p);
879 enum gacc_mode mode, union asce asce, gpa_t gpa,
907 if (fetch_prot_override_applicable(vcpu, mode, asce) &&
925 * @asce: address-space-control element to use for translation
932 * The translation is performed as if done by the cpu for the given @asce, @ar,
954 const union asce asce, enum gacc_mode mode,
964 lap_enabled = low_address_protection_enabled(vcpu, asce);
972 rc = guest_translate(vcpu, ga, &gpa, asce, mode, &prot);
984 rc = vcpu_check_access_key(vcpu, access_key, mode, asce, gpa, ga,
1076 union asce asce;
1084 rc = get_vcpu_asce(vcpu, &asce, ga, ar, mode);
1093 try_fetch_prot_override = fetch_prot_override_applicable(vcpu, mode, asce);
1095 need_ipte_lock = psw_bits(*psw).dat && !asce.r;
1108 rc = guest_range_to_gpas(vcpu, ga, ar, gpas, len, asce, mode, 0);
1292 union asce asce;
1296 rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode);
1299 return guest_range_to_gpas(vcpu, gva, ar, gpa, 1, asce, mode,
1315 union asce asce;
1318 rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode);
1322 rc = guest_range_to_gpas(vcpu, gva, ar, NULL, length, asce, mode,
1387 union asce asce;
1397 asce.val = sg->orig_asce;
1398 ptr = asce.origin * PAGE_SIZE;
1399 if (asce.r) {
1402 asce.dt = ASCE_TYPE_REGION1;
1404 switch (asce.dt) {
1406 if (vaddr.rfx01 > asce.tl && !*fake)
1412 if (vaddr.rsx01 > asce.tl)
1418 if (vaddr.rtx01 > asce.tl)
1424 if (vaddr.sx01 > asce.tl)
1429 switch (asce.dt) {
1503 if (rtte.cr && asce.p && sg->edat_level >= 2)
1541 if (ste.cs && asce.p)