Lines Matching full:cs
42 unsigned long kvm_arch_vcpu_id(CPUState *cs) in kvm_arch_vcpu_id() argument
44 return cs->cpu_index; in kvm_arch_vcpu_id()
64 int kvm_arch_init_vcpu(CPUState *cs) in kvm_arch_init_vcpu() argument
66 CPUMIPSState *env = cpu_env(cs); in kvm_arch_init_vcpu()
69 qemu_add_vm_change_state_handler(kvm_mips_update_state, cs); in kvm_arch_init_vcpu()
72 ret = kvm_vcpu_enable_cap(cs, KVM_CAP_MIPS_FPU, 0, 0); in kvm_arch_init_vcpu()
81 ret = kvm_vcpu_enable_cap(cs, KVM_CAP_MIPS_MSA, 0, 0); in kvm_arch_init_vcpu()
93 int kvm_arch_destroy_vcpu(CPUState *cs) in kvm_arch_destroy_vcpu() argument
114 int kvm_arch_insert_sw_breakpoint(CPUState *cs, struct kvm_sw_breakpoint *bp) in kvm_arch_insert_sw_breakpoint() argument
120 int kvm_arch_remove_sw_breakpoint(CPUState *cs, struct kvm_sw_breakpoint *bp) in kvm_arch_remove_sw_breakpoint() argument
134 void kvm_arch_pre_run(CPUState *cs, struct kvm_run *run) in kvm_arch_pre_run() argument
136 MIPSCPU *cpu = MIPS_CPU(cs); in kvm_arch_pre_run()
142 if ((cs->interrupt_request & CPU_INTERRUPT_HARD) && in kvm_arch_pre_run()
146 r = kvm_vcpu_ioctl(cs, KVM_INTERRUPT, &intr); in kvm_arch_pre_run()
149 __func__, cs->cpu_index, intr.irq); in kvm_arch_pre_run()
156 MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run *run) in kvm_arch_post_run() argument
161 int kvm_arch_process_async_events(CPUState *cs) in kvm_arch_process_async_events() argument
163 return cs->halted; in kvm_arch_process_async_events()
166 int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) in kvm_arch_handle_exit() argument
182 bool kvm_arch_stop_on_emulation_error(CPUState *cs) in kvm_arch_stop_on_emulation_error() argument
194 CPUState *cs = CPU(cpu); in kvm_mips_set_interrupt() local
207 kvm_vcpu_ioctl(cs, KVM_INTERRUPT, &intr); in kvm_mips_set_interrupt()
214 CPUState *cs = current_cpu; in kvm_mips_set_ipi_interrupt() local
230 kvm_vcpu_ioctl(cs, KVM_INTERRUPT, &intr); in kvm_mips_set_ipi_interrupt()
278 static inline int kvm_mips_put_one_reg(CPUState *cs, uint64_t reg_id, in kvm_mips_put_one_reg() argument
286 return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &cp0reg); in kvm_mips_put_one_reg()
289 static inline int kvm_mips_put_one_ureg(CPUState *cs, uint64_t reg_id, in kvm_mips_put_one_ureg() argument
297 return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &cp0reg); in kvm_mips_put_one_ureg()
300 static inline int kvm_mips_put_one_ulreg(CPUState *cs, uint64_t reg_id, in kvm_mips_put_one_ulreg() argument
309 return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &cp0reg); in kvm_mips_put_one_ulreg()
312 static inline int kvm_mips_put_one_reg64(CPUState *cs, uint64_t reg_id, in kvm_mips_put_one_reg64() argument
320 return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &cp0reg); in kvm_mips_put_one_reg64()
323 static inline int kvm_mips_put_one_ureg64(CPUState *cs, uint64_t reg_id, in kvm_mips_put_one_ureg64() argument
331 return kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, &cp0reg); in kvm_mips_put_one_ureg64()
334 static inline int kvm_mips_get_one_reg(CPUState *cs, uint64_t reg_id, in kvm_mips_get_one_reg() argument
342 return kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); in kvm_mips_get_one_reg()
345 static inline int kvm_mips_get_one_ureg(CPUState *cs, uint64_t reg_id, in kvm_mips_get_one_ureg() argument
353 return kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); in kvm_mips_get_one_ureg()
356 static inline int kvm_mips_get_one_ulreg(CPUState *cs, uint64_t reg_id, in kvm_mips_get_one_ulreg() argument
366 ret = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); in kvm_mips_get_one_ulreg()
373 static inline int kvm_mips_get_one_reg64(CPUState *cs, uint64_t reg_id, in kvm_mips_get_one_reg64() argument
381 return kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); in kvm_mips_get_one_reg64()
384 static inline int kvm_mips_get_one_ureg64(CPUState *cs, uint64_t reg_id, in kvm_mips_get_one_ureg64() argument
392 return kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, &cp0reg); in kvm_mips_get_one_ureg64()
430 static inline int kvm_mips_change_one_reg(CPUState *cs, uint64_t reg_id, in kvm_mips_change_one_reg() argument
436 err = kvm_mips_get_one_reg(cs, reg_id, &tmp); in kvm_mips_change_one_reg()
448 return kvm_mips_put_one_reg(cs, reg_id, &tmp); in kvm_mips_change_one_reg()
460 static int kvm_mips_save_count(CPUState *cs) in kvm_mips_save_count() argument
462 CPUMIPSState *env = cpu_env(cs); in kvm_mips_save_count()
467 err = kvm_mips_get_one_ureg64(cs, KVM_REG_MIPS_COUNT_CTL, &count_ctl); in kvm_mips_save_count()
473 err = kvm_mips_put_one_ureg64(cs, KVM_REG_MIPS_COUNT_CTL, &count_ctl); in kvm_mips_save_count()
481 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CAUSE, &env->CP0_Cause); in kvm_mips_save_count()
488 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_COUNT, &env->CP0_Count); in kvm_mips_save_count()
501 static int kvm_mips_restore_count(CPUState *cs) in kvm_mips_restore_count() argument
503 CPUMIPSState *env = cpu_env(cs); in kvm_mips_restore_count()
508 err_dc = kvm_mips_get_one_ureg64(cs, KVM_REG_MIPS_COUNT_CTL, &count_ctl); in kvm_mips_restore_count()
515 err = kvm_mips_put_one_ureg64(cs, KVM_REG_MIPS_COUNT_CTL, &count_ctl); in kvm_mips_restore_count()
523 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_CAUSE, &env->CP0_Cause); in kvm_mips_restore_count()
530 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_COUNT, &env->CP0_Count); in kvm_mips_restore_count()
539 err = kvm_mips_put_one_ureg64(cs, KVM_REG_MIPS_COUNT_CTL, &count_ctl); in kvm_mips_restore_count()
554 CPUState *cs = opaque; in kvm_mips_update_state() local
563 if (!cs->vcpu_dirty) { in kvm_mips_update_state()
564 ret = kvm_mips_save_count(cs); in kvm_mips_update_state()
572 ret = kvm_mips_put_one_ureg64(cs, KVM_REG_MIPS_COUNT_RESUME, in kvm_mips_update_state()
579 if (!cs->vcpu_dirty) { in kvm_mips_update_state()
580 ret = kvm_mips_restore_count(cs); in kvm_mips_update_state()
588 static int kvm_mips_put_fpu_registers(CPUState *cs, int level) in kvm_mips_put_fpu_registers() argument
590 CPUMIPSState *env = cpu_env(cs); in kvm_mips_put_fpu_registers()
598 err = kvm_mips_put_one_ureg(cs, KVM_REG_MIPS_FCR_IR, in kvm_mips_put_fpu_registers()
605 err = kvm_mips_put_one_ureg(cs, KVM_REG_MIPS_FCR_CSR, in kvm_mips_put_fpu_registers()
620 err = kvm_mips_put_one_ureg64(cs, KVM_REG_MIPS_FPR_64(i), in kvm_mips_put_fpu_registers()
623 err = kvm_mips_get_one_ureg(cs, KVM_REG_MIPS_FPR_32(i), in kvm_mips_put_fpu_registers()
638 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_MSA_IR, in kvm_mips_put_fpu_registers()
645 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_MSA_CSR, in kvm_mips_put_fpu_registers()
655 err = kvm_mips_put_one_reg64(cs, KVM_REG_MIPS_VEC_128(i), in kvm_mips_put_fpu_registers()
667 static int kvm_mips_get_fpu_registers(CPUState *cs) in kvm_mips_get_fpu_registers() argument
669 CPUMIPSState *env = cpu_env(cs); in kvm_mips_get_fpu_registers()
676 err = kvm_mips_get_one_ureg(cs, KVM_REG_MIPS_FCR_IR, in kvm_mips_get_fpu_registers()
682 err = kvm_mips_get_one_ureg(cs, KVM_REG_MIPS_FCR_CSR, in kvm_mips_get_fpu_registers()
699 err = kvm_mips_get_one_ureg64(cs, KVM_REG_MIPS_FPR_64(i), in kvm_mips_get_fpu_registers()
702 err = kvm_mips_get_one_ureg(cs, KVM_REG_MIPS_FPR_32(i), in kvm_mips_get_fpu_registers()
716 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_MSA_IR, in kvm_mips_get_fpu_registers()
722 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_MSA_CSR, in kvm_mips_get_fpu_registers()
734 err = kvm_mips_get_one_reg64(cs, KVM_REG_MIPS_VEC_128(i), in kvm_mips_get_fpu_registers()
747 static int kvm_mips_put_cp0_registers(CPUState *cs, int level) in kvm_mips_put_cp0_registers() argument
749 CPUMIPSState *env = cpu_env(cs); in kvm_mips_put_cp0_registers()
754 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_INDEX, &env->CP0_Index); in kvm_mips_put_cp0_registers()
759 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_RANDOM, &env->CP0_Random); in kvm_mips_put_cp0_registers()
764 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_CONTEXT, in kvm_mips_put_cp0_registers()
770 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_USERLOCAL, in kvm_mips_put_cp0_registers()
776 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_PAGEMASK, in kvm_mips_put_cp0_registers()
782 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_PAGEGRAIN, in kvm_mips_put_cp0_registers()
788 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_PWBASE, in kvm_mips_put_cp0_registers()
794 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_PWFIELD, in kvm_mips_put_cp0_registers()
800 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_PWSIZE, in kvm_mips_put_cp0_registers()
806 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_WIRED, &env->CP0_Wired); in kvm_mips_put_cp0_registers()
811 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_PWCTL, &env->CP0_PWCtl); in kvm_mips_put_cp0_registers()
816 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_HWRENA, &env->CP0_HWREna); in kvm_mips_put_cp0_registers()
821 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_BADVADDR, in kvm_mips_put_cp0_registers()
830 err = kvm_mips_restore_count(cs); in kvm_mips_put_cp0_registers()
836 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_ENTRYHI, in kvm_mips_put_cp0_registers()
842 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_COMPARE, in kvm_mips_put_cp0_registers()
848 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_STATUS, &env->CP0_Status); in kvm_mips_put_cp0_registers()
853 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_EPC, &env->CP0_EPC); in kvm_mips_put_cp0_registers()
858 err = kvm_mips_put_one_reg(cs, KVM_REG_MIPS_CP0_PRID, &env->CP0_PRid); in kvm_mips_put_cp0_registers()
863 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_EBASE, &env->CP0_EBase); in kvm_mips_put_cp0_registers()
868 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG, in kvm_mips_put_cp0_registers()
875 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG1, in kvm_mips_put_cp0_registers()
882 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG2, in kvm_mips_put_cp0_registers()
889 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG3, in kvm_mips_put_cp0_registers()
896 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG4, in kvm_mips_put_cp0_registers()
903 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG5, in kvm_mips_put_cp0_registers()
910 err = kvm_mips_change_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG6, in kvm_mips_put_cp0_registers()
917 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_XCONTEXT, in kvm_mips_put_cp0_registers()
923 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_ERROREPC, in kvm_mips_put_cp0_registers()
929 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH1, in kvm_mips_put_cp0_registers()
935 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH2, in kvm_mips_put_cp0_registers()
941 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH3, in kvm_mips_put_cp0_registers()
947 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH4, in kvm_mips_put_cp0_registers()
953 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH5, in kvm_mips_put_cp0_registers()
959 err = kvm_mips_put_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH6, in kvm_mips_put_cp0_registers()
969 static int kvm_mips_get_cp0_registers(CPUState *cs) in kvm_mips_get_cp0_registers() argument
971 CPUMIPSState *env = cpu_env(cs); in kvm_mips_get_cp0_registers()
974 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_INDEX, &env->CP0_Index); in kvm_mips_get_cp0_registers()
979 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_RANDOM, &env->CP0_Random); in kvm_mips_get_cp0_registers()
984 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_CONTEXT, in kvm_mips_get_cp0_registers()
990 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_USERLOCAL, in kvm_mips_get_cp0_registers()
996 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_PAGEMASK, in kvm_mips_get_cp0_registers()
1002 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_PAGEGRAIN, in kvm_mips_get_cp0_registers()
1008 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_PWBASE, in kvm_mips_get_cp0_registers()
1014 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_PWFIELD, in kvm_mips_get_cp0_registers()
1020 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_PWSIZE, in kvm_mips_get_cp0_registers()
1026 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_WIRED, &env->CP0_Wired); in kvm_mips_get_cp0_registers()
1031 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_PWCTL, &env->CP0_PWCtl); in kvm_mips_get_cp0_registers()
1036 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_HWRENA, &env->CP0_HWREna); in kvm_mips_get_cp0_registers()
1041 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_BADVADDR, in kvm_mips_get_cp0_registers()
1047 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_ENTRYHI, in kvm_mips_get_cp0_registers()
1053 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_COMPARE, in kvm_mips_get_cp0_registers()
1059 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_STATUS, &env->CP0_Status); in kvm_mips_get_cp0_registers()
1067 err = kvm_mips_save_count(cs); in kvm_mips_get_cp0_registers()
1073 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_EPC, &env->CP0_EPC); in kvm_mips_get_cp0_registers()
1078 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_PRID, &env->CP0_PRid); in kvm_mips_get_cp0_registers()
1083 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_EBASE, &env->CP0_EBase); in kvm_mips_get_cp0_registers()
1088 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG, &env->CP0_Config0); in kvm_mips_get_cp0_registers()
1093 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG1, &env->CP0_Config1); in kvm_mips_get_cp0_registers()
1098 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG2, &env->CP0_Config2); in kvm_mips_get_cp0_registers()
1103 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG3, &env->CP0_Config3); in kvm_mips_get_cp0_registers()
1108 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG4, &env->CP0_Config4); in kvm_mips_get_cp0_registers()
1113 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG5, &env->CP0_Config5); in kvm_mips_get_cp0_registers()
1118 err = kvm_mips_get_one_reg(cs, KVM_REG_MIPS_CP0_CONFIG6, &env->CP0_Config6); in kvm_mips_get_cp0_registers()
1123 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_XCONTEXT, in kvm_mips_get_cp0_registers()
1129 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_ERROREPC, in kvm_mips_get_cp0_registers()
1135 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH1, in kvm_mips_get_cp0_registers()
1141 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH2, in kvm_mips_get_cp0_registers()
1147 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH3, in kvm_mips_get_cp0_registers()
1153 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH4, in kvm_mips_get_cp0_registers()
1159 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH5, in kvm_mips_get_cp0_registers()
1165 err = kvm_mips_get_one_ulreg(cs, KVM_REG_MIPS_CP0_KSCRATCH6, in kvm_mips_get_cp0_registers()
1175 int kvm_arch_put_registers(CPUState *cs, int level, Error **errp) in kvm_arch_put_registers() argument
1177 CPUMIPSState *env = cpu_env(cs); in kvm_arch_put_registers()
1191 ret = kvm_vcpu_ioctl(cs, KVM_SET_REGS, ®s); in kvm_arch_put_registers()
1197 ret = kvm_mips_put_cp0_registers(cs, level); in kvm_arch_put_registers()
1202 ret = kvm_mips_put_fpu_registers(cs, level); in kvm_arch_put_registers()
1210 int kvm_arch_get_registers(CPUState *cs, Error **errp) in kvm_arch_get_registers() argument
1212 CPUMIPSState *env = cpu_env(cs); in kvm_arch_get_registers()
1218 ret = kvm_vcpu_ioctl(cs, KVM_GET_REGS, ®s); in kvm_arch_get_registers()
1232 kvm_mips_get_cp0_registers(cs); in kvm_arch_get_registers()
1233 kvm_mips_get_fpu_registers(cs); in kvm_arch_get_registers()