 1d3e745f7a
			
		
	
	
		1d3e745f7a
		
	
	
	
	
		
			
			These are only usable in system mode where we control the timer. For user-mode make them NOPs. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20250304222439.2035603-29-alex.bennee@linaro.org>
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * QEMU Plugin API - user-mode only implementations
 | |
|  *
 | |
|  * This provides the APIs that have a user-mode specific
 | |
|  * implementations or are only relevant to user-mode.
 | |
|  *
 | |
|  * Copyright (C) 2017, Emilio G. Cota <cota@braap.org>
 | |
|  * Copyright (C) 2019-2025, Linaro
 | |
|  *
 | |
|  * SPDX-License-Identifier: GPL-2.0-or-later
 | |
|  */
 | |
| 
 | |
| #include "qemu/osdep.h"
 | |
| #include "qemu/plugin.h"
 | |
| #include "exec/log.h"
 | |
| 
 | |
| /*
 | |
|  * Virtual Memory queries - these are all NOPs for user-mode which
 | |
|  * only ever has visibility of virtual addresses.
 | |
|  */
 | |
| 
 | |
| struct qemu_plugin_hwaddr *qemu_plugin_get_hwaddr(qemu_plugin_meminfo_t info,
 | |
|                                                   uint64_t vaddr)
 | |
| {
 | |
|     return NULL;
 | |
| }
 | |
| 
 | |
| bool qemu_plugin_hwaddr_is_io(const struct qemu_plugin_hwaddr *haddr)
 | |
| {
 | |
|     return false;
 | |
| }
 | |
| 
 | |
| uint64_t qemu_plugin_hwaddr_phys_addr(const struct qemu_plugin_hwaddr *haddr)
 | |
| {
 | |
|     return 0;
 | |
| }
 | |
| 
 | |
| const char *qemu_plugin_hwaddr_device_name(const struct qemu_plugin_hwaddr *h)
 | |
| {
 | |
|     return g_intern_static_string("Invalid");
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Time control - for user mode the only real time is wall clock time
 | |
|  * so realistically all you can do in user mode is slow down execution
 | |
|  * which doesn't require the ability to mess with the clock.
 | |
|  */
 | |
| 
 | |
| const void *qemu_plugin_request_time_control(void)
 | |
| {
 | |
|     return NULL;
 | |
| }
 | |
| 
 | |
| void qemu_plugin_update_ns(const void *handle, int64_t new_time)
 | |
| {
 | |
|     qemu_log_mask(LOG_UNIMP, "user-mode can't control time");
 | |
| }
 |