mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
6f8c63fbd7
This patch adds support for connection events to spice. The events are quite simliar to the vnc events. Unlike vnc spice uses multiple tcp channels though. qemu will report every single tcp connection (aka spice channel). If you want track spice sessions only you can filter for the main channel (channel-type == 1). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
65 lines
1.7 KiB
C
65 lines
1.7 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_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);
|
|
|
|
typedef void (MonitorCompletion)(void *opaque, QObject *ret_data);
|
|
|
|
void monitor_set_error(Monitor *mon, QError *qerror);
|
|
|
|
#endif /* !MONITOR_H */
|