Lines Matching defs:trap
16 struct kvm_cpu_trap *trap)
25 fault_addr = (trap->htval << 2) | (trap->stval & 0x3);
31 (trap->scause == EXC_STORE_GUEST_PAGE_FAULT && !writable)) {
32 switch (trap->scause) {
36 trap->htinst);
40 trap->htinst);
47 (trap->scause == EXC_STORE_GUEST_PAGE_FAULT) ? true : false,
61 * @trap: Output pointer to trap details
66 struct kvm_cpu_trap *trap)
68 register unsigned long taddr asm("a0") = (unsigned long)trap;
100 if (trap->scause == EXC_LOAD_PAGE_FAULT)
101 trap->scause = EXC_INST_PAGE_FAULT;
134 * kvm_riscv_vcpu_trap_redirect -- Redirect trap to Guest
137 * @trap: Trap details
140 struct kvm_cpu_trap *trap)
161 ncsr_write(CSR_VSCAUSE, trap->scause);
162 ncsr_write(CSR_VSTVAL, trap->stval);
163 ncsr_write(CSR_VSEPC, trap->sepc);
172 static inline int vcpu_redirect(struct kvm_vcpu *vcpu, struct kvm_cpu_trap *trap)
177 kvm_riscv_vcpu_trap_redirect(vcpu, trap);
188 struct kvm_cpu_trap *trap)
193 if (trap->scause & CAUSE_IRQ_FLAG)
199 switch (trap->scause) {
203 ret = vcpu_redirect(vcpu, trap);
208 ret = vcpu_redirect(vcpu, trap);
213 ret = vcpu_redirect(vcpu, trap);
218 ret = vcpu_redirect(vcpu, trap);
223 ret = vcpu_redirect(vcpu, trap);
226 ret = vcpu_redirect(vcpu, trap);
230 ret = kvm_riscv_vcpu_virtual_insn(vcpu, run, trap);
236 ret = gstage_page_fault(vcpu, run, trap);
258 trap->scause, trap->stval, trap->htval, trap->htinst);