mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 18:44:58 -06:00
modules: misc fixes & tweaks.
modules: build spice chardevs as module. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABCgAGBQJfiEYvAAoJEEy22O7T6HE4i7MP/j1wCGxhNIR6GnKqLZf7Gvka Sx6rQDoKGh+OSVA5PRsc3pxCIt0taXjU9zkEbr+mDixoCfReUFLfjUncD0YHYc1o p430QpnJJwnt1Ked5OYrspY+vJTEEwVEP6TqMVLH9tEKbBwrSSgZyy40zWtUZVe4 Xjx2Z1HmjQ0vQXKwOE3GxSw/7xUgwh/NTSy2UKTACE35MXxBb9AqY4gCnoFjEdok vdbuHxcEdQZq0XU6bTAPBaTtBAMwdcGsc3gXyjOGwnpqL7FLO+AX2iNIpZ18efg2 u9qIEdFSpd9NcinamXaNSTqLMCNMR5il35aS1moHJsbP57/SX8iV0D+Zlnqqvgfn U5ulYddUVpJnbeoZnrWmt9B5urTaD3KXtYTgapnVaFeBsENPZXnFwZ8iY+Ko405A DfM345i/h2/0kiSaOYYaC1zXZUWwoGju7BM5+HzuD9uD7ET4IAiCGXWJP1c6C0G5 cxwP/PHgEOOleAmdptDFycQbtiszqcQBf7sXs6qmC4P56AaNJ9zrh4xAsm8zfFVq DF4aesPh71qZmkGVSycx+e1+kJO+ffeFbQjNkWDCnRuwC5w4KZEQQv3KByShESaB lsMVfnh6LeUw47aOom0cDt1WfIjaFG2MzIWvs3MIWZNPWelUn496LVkHbT9+KMX5 9cRNesEm1NyMFqIVLRi5 =UuQI -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/kraxel/tags/modules-20201015-pull-request' into staging modules: misc fixes & tweaks. modules: build spice chardevs as module. # gpg: Signature made Thu 15 Oct 2020 13:53:03 BST # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full] # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/modules-20201015-pull-request: chardev/spice: build spice chardevs as module meson: add spice dependency to core spice source files. meson: add spice_headers dependency. chardev/spice: simplify chardev setup chardev/spice: make qemu_chr_open_spice_port static ui/spice-app: don't use qemu_chr_open_spice_port directly modules: update qom object module comment module: silence errors for module_load_qom_all(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
6214addcc6
14 changed files with 68 additions and 70 deletions
|
@ -14,7 +14,7 @@ softmmu_ss.add(files(
|
|||
))
|
||||
|
||||
softmmu_ss.add(when: 'CONFIG_LINUX', if_true: files('input-linux.c'))
|
||||
softmmu_ss.add(when: 'CONFIG_SPICE', if_true: files('spice-core.c', 'spice-input.c', 'spice-display.c'))
|
||||
softmmu_ss.add(when: [spice, 'CONFIG_SPICE'], if_true: files('spice-core.c', 'spice-input.c', 'spice-display.c'))
|
||||
softmmu_ss.add(when: cocoa, if_true: files('cocoa.m'))
|
||||
|
||||
vnc_ss = ss.source_set()
|
||||
|
|
|
@ -44,11 +44,15 @@ static char *sock_path;
|
|||
struct VCChardev {
|
||||
SpiceChardev parent;
|
||||
};
|
||||
typedef struct VCChardev VCChardev;
|
||||
|
||||
struct VCChardevClass {
|
||||
ChardevClass parent;
|
||||
void (*parent_open)(Chardev *chr, ChardevBackend *backend,
|
||||
bool *be_opened, Error **errp);
|
||||
};
|
||||
|
||||
#define TYPE_CHARDEV_VC "chardev-vc"
|
||||
DECLARE_INSTANCE_CHECKER(VCChardev, VC_CHARDEV,
|
||||
TYPE_CHARDEV_VC)
|
||||
OBJECT_DECLARE_TYPE(VCChardev, VCChardevClass, CHARDEV_VC)
|
||||
|
||||
static ChardevBackend *
|
||||
chr_spice_backend_new(void)
|
||||
|
@ -66,6 +70,7 @@ static void vc_chr_open(Chardev *chr,
|
|||
bool *be_opened,
|
||||
Error **errp)
|
||||
{
|
||||
VCChardevClass *vc = CHARDEV_VC_GET_CLASS(chr);
|
||||
ChardevBackend *be;
|
||||
const char *fqdn = NULL;
|
||||
|
||||
|
@ -80,7 +85,7 @@ static void vc_chr_open(Chardev *chr,
|
|||
be = chr_spice_backend_new();
|
||||
be->u.spiceport.data->fqdn = fqdn ?
|
||||
g_strdup(fqdn) : g_strdup_printf("org.qemu.console.%s", chr->label);
|
||||
qemu_chr_open_spice_port(chr, be, be_opened, errp);
|
||||
vc->parent_open(chr, be, be_opened, errp);
|
||||
qapi_free_ChardevBackend(be);
|
||||
}
|
||||
|
||||
|
@ -91,8 +96,11 @@ static void vc_chr_set_echo(Chardev *chr, bool echo)
|
|||
|
||||
static void char_vc_class_init(ObjectClass *oc, void *data)
|
||||
{
|
||||
VCChardevClass *vc = CHARDEV_VC_CLASS(oc);
|
||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||
|
||||
vc->parent_open = cc->open;
|
||||
|
||||
cc->parse = qemu_chr_parse_vc;
|
||||
cc->open = vc_chr_open;
|
||||
cc->chr_set_echo = vc_chr_set_echo;
|
||||
|
@ -103,6 +111,7 @@ static const TypeInfo char_vc_type_info = {
|
|||
.parent = TYPE_CHARDEV_SPICEPORT,
|
||||
.instance_size = sizeof(VCChardev),
|
||||
.class_init = char_vc_class_init,
|
||||
.class_size = sizeof(VCChardevClass),
|
||||
};
|
||||
|
||||
static void spice_app_atexit(void)
|
||||
|
@ -120,7 +129,6 @@ static void spice_app_atexit(void)
|
|||
static void spice_app_display_early_init(DisplayOptions *opts)
|
||||
{
|
||||
QemuOpts *qopts;
|
||||
ChardevBackend *be = chr_spice_backend_new();
|
||||
GError *err = NULL;
|
||||
|
||||
if (opts->has_full_screen) {
|
||||
|
@ -165,6 +173,15 @@ static void spice_app_display_early_init(DisplayOptions *opts)
|
|||
qemu_opt_set(qopts, "gl", opts->has_gl ? "on" : "off", &error_abort);
|
||||
display_opengl = opts->has_gl;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void spice_app_display_init(DisplayState *ds, DisplayOptions *opts)
|
||||
{
|
||||
ChardevBackend *be = chr_spice_backend_new();
|
||||
QemuOpts *qopts;
|
||||
GError *err = NULL;
|
||||
gchar *uri;
|
||||
|
||||
be->u.spiceport.data->fqdn = g_strdup("org.qemu.monitor.qmp.0");
|
||||
qemu_chardev_new("org.qemu.monitor.qmp", TYPE_CHARDEV_SPICEPORT,
|
||||
be, NULL, &error_abort);
|
||||
|
@ -174,13 +191,6 @@ static void spice_app_display_early_init(DisplayOptions *opts)
|
|||
qemu_opt_set(qopts, "mode", "control", &error_abort);
|
||||
|
||||
qapi_free_ChardevBackend(be);
|
||||
}
|
||||
|
||||
static void spice_app_display_init(DisplayState *ds, DisplayOptions *opts)
|
||||
{
|
||||
GError *err = NULL;
|
||||
gchar *uri;
|
||||
|
||||
uri = g_strjoin("", "spice+unix://", app_dir, "/", "spice.sock", NULL);
|
||||
info_report("Launching display with URI: %s", uri);
|
||||
g_app_info_launch_default_for_uri(uri, NULL, &err);
|
||||
|
|
|
@ -812,8 +812,6 @@ void qemu_spice_init(void)
|
|||
g_free(x509_cert_file);
|
||||
g_free(x509_cacert_file);
|
||||
|
||||
qemu_spice_register_ports();
|
||||
|
||||
#ifdef HAVE_SPICE_GL
|
||||
if (qemu_opt_get_bool(opts, "gl", 0)) {
|
||||
if ((port != 0) || (tls_port != 0)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue