KVM
Functions
adjust_pc.h File Reference
#include <asm/kvm_emulate.h>
#include <asm/kvm_host.h>
Include dependency graph for adjust_pc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static void kvm_skip_instr (struct kvm_vcpu *vcpu)
 
static void __kvm_skip_instr (struct kvm_vcpu *vcpu)
 
static void kvm_skip_host_instr (void)
 

Function Documentation

◆ __kvm_skip_instr()

static void __kvm_skip_instr ( struct kvm_vcpu *  vcpu)
inlinestatic

Definition at line 33 of file adjust_pc.h.

34 {
35  *vcpu_pc(vcpu) = read_sysreg_el2(SYS_ELR);
36  vcpu_gp_regs(vcpu)->pstate = read_sysreg_el2(SYS_SPSR);
37 
38  kvm_skip_instr(vcpu);
39 
40  write_sysreg_el2(vcpu_gp_regs(vcpu)->pstate, SYS_SPSR);
41  write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
42 }
static void kvm_skip_instr(struct kvm_vcpu *vcpu)
Definition: adjust_pc.h:16
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kvm_skip_host_instr()

static void kvm_skip_host_instr ( void  )
inlinestatic

Definition at line 48 of file adjust_pc.h.

49 {
50  write_sysreg_el2(read_sysreg_el2(SYS_ELR) + 4, SYS_ELR);
51 }
Here is the caller graph for this function:

◆ kvm_skip_instr()

static void kvm_skip_instr ( struct kvm_vcpu *  vcpu)
inlinestatic

Definition at line 16 of file adjust_pc.h.

17 {
18  if (vcpu_mode_is_32bit(vcpu)) {
19  kvm_skip_instr32(vcpu);
20  } else {
21  *vcpu_pc(vcpu) += 4;
22  *vcpu_cpsr(vcpu) &= ~PSR_BTYPE_MASK;
23  }
24 
25  /* advance the singlestep state machine */
26  *vcpu_cpsr(vcpu) &= ~DBG_SPSR_SS;
27 }
void kvm_skip_instr32(struct kvm_vcpu *vcpu)
Definition: aarch32.c:126
Here is the call graph for this function:
Here is the caller graph for this function: