 fcfe761680
			
		
	
	
		fcfe761680
		
	
	
	
	
		
			
			Widens the pc and saved_insn fields of hvf_sw_breakpoint from target_ulong to vaddr. Other hvf_* functions accessing hvf_sw_breakpoint are also widened to match. Signed-off-by: Anton Johansson <anjo@rev.ng> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230807155706.9580-3-anjo@rev.ng> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * QEMU Hypervisor.framework support
 | |
|  *
 | |
|  * This work is licensed under the terms of the GNU GPL, version 2.  See
 | |
|  * the COPYING file in the top-level directory.
 | |
|  *
 | |
|  * Contributions after 2012-01-13 are licensed under the terms of the
 | |
|  * GNU GPL, version 2 or (at your option) any later version.
 | |
|  */
 | |
| 
 | |
| #include "qemu/osdep.h"
 | |
| #include "qemu/error-report.h"
 | |
| #include "sysemu/hvf.h"
 | |
| #include "sysemu/hvf_int.h"
 | |
| 
 | |
| void assert_hvf_ok(hv_return_t ret)
 | |
| {
 | |
|     if (ret == HV_SUCCESS) {
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     switch (ret) {
 | |
|     case HV_ERROR:
 | |
|         error_report("Error: HV_ERROR");
 | |
|         break;
 | |
|     case HV_BUSY:
 | |
|         error_report("Error: HV_BUSY");
 | |
|         break;
 | |
|     case HV_BAD_ARGUMENT:
 | |
|         error_report("Error: HV_BAD_ARGUMENT");
 | |
|         break;
 | |
|     case HV_NO_RESOURCES:
 | |
|         error_report("Error: HV_NO_RESOURCES");
 | |
|         break;
 | |
|     case HV_NO_DEVICE:
 | |
|         error_report("Error: HV_NO_DEVICE");
 | |
|         break;
 | |
|     case HV_UNSUPPORTED:
 | |
|         error_report("Error: HV_UNSUPPORTED");
 | |
|         break;
 | |
| #if defined(MAC_OS_VERSION_11_0) && \
 | |
|     MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_VERSION_11_0
 | |
|     case HV_DENIED:
 | |
|         error_report("Error: HV_DENIED");
 | |
|         break;
 | |
| #endif
 | |
|     default:
 | |
|         error_report("Unknown Error");
 | |
|     }
 | |
| 
 | |
|     abort();
 | |
| }
 | |
| 
 | |
| struct hvf_sw_breakpoint *hvf_find_sw_breakpoint(CPUState *cpu, vaddr pc)
 | |
| {
 | |
|     struct hvf_sw_breakpoint *bp;
 | |
| 
 | |
|     QTAILQ_FOREACH(bp, &hvf_state->hvf_sw_breakpoints, entry) {
 | |
|         if (bp->pc == pc) {
 | |
|             return bp;
 | |
|         }
 | |
|     }
 | |
|     return NULL;
 | |
| }
 | |
| 
 | |
| int hvf_sw_breakpoints_active(CPUState *cpu)
 | |
| {
 | |
|     return !QTAILQ_EMPTY(&hvf_state->hvf_sw_breakpoints);
 | |
| }
 | |
| 
 | |
| int hvf_update_guest_debug(CPUState *cpu)
 | |
| {
 | |
|     hvf_arch_update_guest_debug(cpu);
 | |
|     return 0;
 | |
| }
 |