mirror of
				https://git.proxmox.com/git/qemu
				synced 2025-10-26 05:20:22 +00:00 
			
		
		
		
	 eb6e8ea5c3
			
		
	
	
		eb6e8ea5c3
		
	
	
	
	
		
			
			This allows clients to read and write device model properties through QMP. QAPI doesn't support Visitor types yet and these commands are special in that they don't work with fixed types. I've added a documentation stub to qapi-schema.json so we can keep consistency there. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef MONITOR_H
 | |
| #define MONITOR_H
 | |
| 
 | |
| #include "qemu-common.h"
 | |
| #include "qemu-char.h"
 | |
| #include "qerror.h"
 | |
| #include "qdict.h"
 | |
| #include "block.h"
 | |
| 
 | |
| extern Monitor *cur_mon;
 | |
| extern Monitor *default_mon;
 | |
| 
 | |
| /* flags for monitor_init */
 | |
| #define MONITOR_IS_DEFAULT    0x01
 | |
| #define MONITOR_USE_READLINE  0x02
 | |
| #define MONITOR_USE_CONTROL   0x04
 | |
| #define MONITOR_USE_PRETTY    0x08
 | |
| 
 | |
| /* flags for monitor commands */
 | |
| #define MONITOR_CMD_ASYNC       0x0001
 | |
| 
 | |
| /* QMP events */
 | |
| typedef enum MonitorEvent {
 | |
|     QEVENT_SHUTDOWN,
 | |
|     QEVENT_RESET,
 | |
|     QEVENT_POWERDOWN,
 | |
|     QEVENT_STOP,
 | |
|     QEVENT_RESUME,
 | |
|     QEVENT_VNC_CONNECTED,
 | |
|     QEVENT_VNC_INITIALIZED,
 | |
|     QEVENT_VNC_DISCONNECTED,
 | |
|     QEVENT_BLOCK_IO_ERROR,
 | |
|     QEVENT_RTC_CHANGE,
 | |
|     QEVENT_WATCHDOG,
 | |
|     QEVENT_SPICE_CONNECTED,
 | |
|     QEVENT_SPICE_INITIALIZED,
 | |
|     QEVENT_SPICE_DISCONNECTED,
 | |
|     QEVENT_MAX,
 | |
| } MonitorEvent;
 | |
| 
 | |
| int monitor_cur_is_qmp(void);
 | |
| 
 | |
| void monitor_protocol_event(MonitorEvent event, QObject *data);
 | |
| void monitor_init(CharDriverState *chr, int flags);
 | |
| 
 | |
| int monitor_suspend(Monitor *mon);
 | |
| void monitor_resume(Monitor *mon);
 | |
| 
 | |
| int monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs,
 | |
|                                 BlockDriverCompletionFunc *completion_cb,
 | |
|                                 void *opaque);
 | |
| int monitor_read_block_device_key(Monitor *mon, const char *device,
 | |
|                                   BlockDriverCompletionFunc *completion_cb,
 | |
|                                   void *opaque);
 | |
| 
 | |
| int monitor_get_fd(Monitor *mon, const char *fdname);
 | |
| 
 | |
| void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
 | |
|     GCC_FMT_ATTR(2, 0);
 | |
| void monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
 | |
| void monitor_print_filename(Monitor *mon, const char *filename);
 | |
| void monitor_flush(Monitor *mon);
 | |
| int monitor_set_cpu(int cpu_index);
 | |
| int monitor_get_cpu_index(void);
 | |
| 
 | |
| typedef void (MonitorCompletion)(void *opaque, QObject *ret_data);
 | |
| 
 | |
| void monitor_set_error(Monitor *mon, QError *qerror);
 | |
| 
 | |
| int qmp_qom_set(Monitor *mon, const QDict *qdict, QObject **ret);
 | |
| 
 | |
| int qmp_qom_get(Monitor *mon, const QDict *qdict, QObject **ret);
 | |
| 
 | |
| #endif /* !MONITOR_H */
 |