Browse Source
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABCgAGBQJfkRSjAAoJEEy22O7T6HE4w4UP/RHNNgRzPWB7kJaiCDGrqGVK FSMqUKTkzieIEvW7baVaY19KY2z5HB9Mtna6Ogl6BXdMbmwwaxdMtzHc9RySlLyP iUA9iFqDjYbbFtanFEQjv/181Dr/Ib3AgW4muQi/BysvAu9GmFQuRlK07w3KR+QR 0HXYmrKqpnQxrM0s3h9XwT2VKRYEk8X3fcsQypTyiuqqFXFveIwoFl0XtcU8kq8K D+BI/nRZRr+wQG2fW0JjRPRxiUPSAUJgMRqJhPdZ+55enfaxCUTThpw9UVRa8vsr g7SY6vadGbqyxq45kyc56p7oc5gxeUbTXklrJqz4blBhl/AnAZyjVMOhBqz3+Sgl DORyjrz+M4Wyb/nzlh0HsuZYJmHH3tNgFEruPbyPT4LTpFZ8yUuThNUTl8r6r5aE mJkRW9U1xeSrsdiw7vJv+gfxC4J37EMry0OdcL6fcixZSEXaDT/9E+MMhz9UOAC1 cGTg7fBN4sc/6oifqURz3vMJF1NcSocqPg0rvbkOCAzlf5TzRD07A6lgzLclemyi XpKp0qbfE9esLAj5/FPZHkOSGKApo3WzdtExrc8aGIRqE3y1FNUG0hY9RTHEi2po vWUEmneTo08Ly+t/COBikOUCGwZAZDIr9v7dxZBBmcmvqRrhbzHAr+JM1y0Unfy1 /3dNMlA2qsjbezkDzO1U =5tJo -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/kraxel/tags/modules-20201022-pull-request' into staging modules: build spice and opengl as module. # gpg: Signature made Thu 22 Oct 2020 06:12: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-20201022-pull-request: opengl: build opengl helper code modular opengl: build egl-headless display modular spice: flip modules switch modules: add spice dependencies modules: dependencies infrastructure spice: load module when enabled on the cmdline spice: wire up monitor in QemuSpiceOps. spice: move display_add_client() to QemuSpiceOps. spice: move auth functions to QemuSpiceOps. spice: move add_interface() to QemuSpiceOps. spice: move display_init() to QemuSpiceOps. spice: move qemu_spice_init() to QemuSpiceOps. spice: add QemuSpiceOps, move migrate_info spice: add module helpers Signed-off-by: Peter Maydell <peter.maydell@linaro.org>remotes/github/master
12 changed files with 232 additions and 72 deletions
@ -0,0 +1,44 @@ |
|||
/*
|
|||
* Copyright (C) 2010 Red Hat, Inc. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License as |
|||
* published by the Free Software Foundation; either version 2 or |
|||
* (at your option) version 3 of the License. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
#ifndef QEMU_SPICE_MODULE_H |
|||
#define QEMU_SPICE_MODULE_H |
|||
|
|||
#ifdef CONFIG_SPICE |
|||
#include <spice.h> |
|||
#endif |
|||
|
|||
typedef struct SpiceInfo SpiceInfo; |
|||
|
|||
struct QemuSpiceOps { |
|||
void (*init)(void); |
|||
void (*display_init)(void); |
|||
int (*migrate_info)(const char *h, int p, int t, const char *s); |
|||
int (*set_passwd)(const char *passwd, |
|||
bool fail_if_connected, bool disconnect_if_connected); |
|||
int (*set_pw_expire)(time_t expires); |
|||
int (*display_add_client)(int csock, int skipauth, int tls); |
|||
#ifdef CONFIG_SPICE |
|||
int (*add_interface)(SpiceBaseInstance *sin); |
|||
SpiceInfo* (*qmp_query)(Error **errp); |
|||
#endif |
|||
}; |
|||
|
|||
extern int using_spice; |
|||
extern struct QemuSpiceOps qemu_spice; |
|||
|
|||
#endif |
|||
@ -0,0 +1,85 @@ |
|||
/*
|
|||
* spice module support, also spice stubs. |
|||
* |
|||
* Copyright (C) 2010 Red Hat, Inc. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License as |
|||
* published by the Free Software Foundation; either version 2 or |
|||
* (at your option) version 3 of the License. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
#include "qemu/osdep.h" |
|||
#include "qemu/error-report.h" |
|||
#include "qapi/error.h" |
|||
#include "qapi/qapi-types-ui.h" |
|||
#include "qapi/qapi-commands-ui.h" |
|||
#include "ui/qemu-spice-module.h" |
|||
|
|||
int using_spice; |
|||
|
|||
static void qemu_spice_init_stub(void) |
|||
{ |
|||
} |
|||
|
|||
static void qemu_spice_display_init_stub(void) |
|||
{ |
|||
/* This must never be called if CONFIG_SPICE is disabled */ |
|||
error_report("spice support is disabled"); |
|||
abort(); |
|||
} |
|||
|
|||
static int qemu_spice_migrate_info_stub(const char *h, int p, int t, |
|||
const char *s) |
|||
{ |
|||
return -1; |
|||
} |
|||
|
|||
static int qemu_spice_set_passwd_stub(const char *passwd, |
|||
bool fail_if_connected, |
|||
bool disconnect_if_connected) |
|||
{ |
|||
return -1; |
|||
} |
|||
|
|||
static int qemu_spice_set_pw_expire_stub(time_t expires) |
|||
{ |
|||
return -1; |
|||
} |
|||
|
|||
static int qemu_spice_display_add_client_stub(int csock, int skipauth, |
|||
int tls) |
|||
{ |
|||
return -1; |
|||
} |
|||
|
|||
struct QemuSpiceOps qemu_spice = { |
|||
.init = qemu_spice_init_stub, |
|||
.display_init = qemu_spice_display_init_stub, |
|||
.migrate_info = qemu_spice_migrate_info_stub, |
|||
.set_passwd = qemu_spice_set_passwd_stub, |
|||
.set_pw_expire = qemu_spice_set_pw_expire_stub, |
|||
.display_add_client = qemu_spice_display_add_client_stub, |
|||
}; |
|||
|
|||
#ifdef CONFIG_SPICE |
|||
|
|||
SpiceInfo *qmp_query_spice(Error **errp) |
|||
{ |
|||
if (!qemu_spice.qmp_query) { |
|||
SpiceInfo *info = g_new0(SpiceInfo, 1); |
|||
info->enabled = false; |
|||
return info; |
|||
} |
|||
return qemu_spice.qmp_query(errp); |
|||
} |
|||
|
|||
#endif |
|||
Loading…
Reference in new issue