Lines Matching defs:vcpu
38 * @vcpu - guest virtual cpu
44 static inline unsigned long kvm_s390_real_to_abs(struct kvm_vcpu *vcpu,
47 return _kvm_s390_real_to_abs(kvm_s390_get_prefix(vcpu), gra);
75 * @vcpu: guest virtual cpu
78 * Convert a guest vcpu logical address to a guest vcpu effective address by
79 * applying the rules of the vcpu's addressing mode defined by PSW bits 31
82 * Depending on the vcpu's addressing mode the upper 40 bits (24 bit addressing
86 static inline unsigned long kvm_s390_logical_to_effective(struct kvm_vcpu *vcpu,
89 return _kvm_s390_logical_to_effective(&vcpu->arch.sie_block->gpsw, ga);
94 * which shall only be used to access the lowcore of a vcpu.
98 * At a later point guest vcpu lowcore access should happen via pinned
104 * put_guest_lc - write a simple variable to a guest vcpu's lowcore
105 * @vcpu: virtual cpu
107 * @gra: vcpu's destination guest real address
109 * Copies a simple value from kernel space to a guest vcpu's lowcore.
111 * must be located in the vcpu's lowcore. Otherwise the result is undefined.
120 #define put_guest_lc(vcpu, x, gra) \
122 struct kvm_vcpu *__vcpu = (vcpu); \
132 * write_guest_lc - copy data from kernel space to guest vcpu's lowcore
133 * @vcpu: virtual cpu
134 * @gra: vcpu's source guest real address
138 * Copy data from kernel space to guest vcpu's lowcore. The entire range must
139 * be located within the vcpu's lowcore, otherwise the result is undefined.
149 int write_guest_lc(struct kvm_vcpu *vcpu, unsigned long gra, void *data,
152 unsigned long gpa = gra + kvm_s390_get_prefix(vcpu);
154 return kvm_write_guest(vcpu->kvm, gpa, data, len);
158 * read_guest_lc - copy data from guest vcpu's lowcore to kernel space
159 * @vcpu: virtual cpu
160 * @gra: vcpu's source guest real address
164 * Copy data from guest vcpu's lowcore to kernel space. The entire range must
165 * be located within the vcpu's lowcore, otherwise the result is undefined.
175 int read_guest_lc(struct kvm_vcpu *vcpu, unsigned long gra, void *data,
178 unsigned long gpa = gra + kvm_s390_get_prefix(vcpu);
180 return kvm_read_guest(vcpu->kvm, gpa, data, len);
189 int guest_translate_address_with_key(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
193 int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar,
202 int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
206 int access_guest_real(struct kvm_vcpu *vcpu, unsigned long gra,
214 * @vcpu: virtual cpu
222 * In order to copy data to guest space the PSW of the vcpu is inspected:
233 * This function modifies the 'struct kvm_s390_pgm_info pgm' member of @vcpu.
259 int write_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
262 return access_guest_with_key(vcpu, ga, ar, data, len, GACC_STORE,
268 * @vcpu: virtual cpu
278 int write_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
281 u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key;
283 return write_guest_with_key(vcpu, ga, ar, data, len, access_key);
288 * @vcpu: virtual cpu
301 int read_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
304 return access_guest_with_key(vcpu, ga, ar, data, len, GACC_FETCH,
310 * @vcpu: virtual cpu
322 int read_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data,
325 u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key;
327 return read_guest_with_key(vcpu, ga, ar, data, len, access_key);
332 * @vcpu: virtual cpu
345 int read_guest_instr(struct kvm_vcpu *vcpu, unsigned long ga, void *data,
348 u8 access_key = psw_bits(vcpu->arch.sie_block->gpsw).key;
350 return access_guest_with_key(vcpu, ga, 0, data, len, GACC_IFETCH,
356 * @vcpu: virtual cpu
371 int write_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data,
374 return kvm_write_guest(vcpu->kvm, gpa, data, len);
379 * @vcpu: virtual cpu
394 int read_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data,
397 return kvm_read_guest(vcpu->kvm, gpa, data, len);
402 * @vcpu: virtual cpu
417 int write_guest_real(struct kvm_vcpu *vcpu, unsigned long gra, void *data,
420 return access_guest_real(vcpu, gra, data, len, 1);
425 * @vcpu: virtual cpu
440 int read_guest_real(struct kvm_vcpu *vcpu, unsigned long gra, void *data,
443 return access_guest_real(vcpu, gra, data, len, 0);
449 int kvm_s390_check_low_addr_prot_real(struct kvm_vcpu *vcpu, unsigned long gra);
455 int kvm_s390_shadow_fault(struct kvm_vcpu *vcpu, struct gmap *shadow,