Leading underscores are ill-advised because such identifiers are reserved. Trailing underscores are merely ugly. Strip both. Our header guards commonly end in _H. Normalize the exceptions. Macros should be ALL_CAPS. Normalize the exception. Done with scripts/clean-header-guards.pl. include/hw/xen/interface/ and tools/virtiofsd/ left alone, because these were imported from Xen and libfuse respectively. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20220506134911.2856099-3-armbru@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
		
			
				
	
	
		
			149 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * QEMU DBus display
 | 
						|
 *
 | 
						|
 * Copyright (c) 2021 Marc-André Lureau <marcandre.lureau@redhat.com>
 | 
						|
 *
 | 
						|
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
						|
 * of this software and associated documentation files (the "Software"), to deal
 | 
						|
 * in the Software without restriction, including without limitation the rights
 | 
						|
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
						|
 * copies of the Software, and to permit persons to whom the Software is
 | 
						|
 * furnished to do so, subject to the following conditions:
 | 
						|
 *
 | 
						|
 * The above copyright notice and this permission notice shall be included in
 | 
						|
 * all copies or substantial portions of the Software.
 | 
						|
 *
 | 
						|
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
						|
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
						|
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 | 
						|
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
						|
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
						|
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
						|
 * THE SOFTWARE.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef UI_DBUS_H
 | 
						|
#define UI_DBUS_H
 | 
						|
 | 
						|
#include "chardev/char-socket.h"
 | 
						|
#include "qemu/dbus.h"
 | 
						|
#include "qom/object.h"
 | 
						|
#include "ui/console.h"
 | 
						|
#include "ui/clipboard.h"
 | 
						|
 | 
						|
#include "dbus-display1.h"
 | 
						|
 | 
						|
typedef struct DBusClipboardRequest {
 | 
						|
    GDBusMethodInvocation *invocation;
 | 
						|
    QemuClipboardType type;
 | 
						|
    guint timeout_id;
 | 
						|
} DBusClipboardRequest;
 | 
						|
 | 
						|
struct DBusDisplay {
 | 
						|
    Object parent;
 | 
						|
 | 
						|
    DisplayGLMode gl_mode;
 | 
						|
    bool p2p;
 | 
						|
    char *dbus_addr;
 | 
						|
    char *audiodev;
 | 
						|
    DisplayGLCtx glctx;
 | 
						|
 | 
						|
    GDBusConnection *bus;
 | 
						|
    GDBusObjectManagerServer *server;
 | 
						|
    QemuDBusDisplay1VM *iface;
 | 
						|
    GPtrArray *consoles;
 | 
						|
    GCancellable *add_client_cancellable;
 | 
						|
 | 
						|
    QemuClipboardPeer clipboard_peer;
 | 
						|
    QemuDBusDisplay1Clipboard *clipboard;
 | 
						|
    QemuDBusDisplay1Clipboard *clipboard_proxy;
 | 
						|
    DBusClipboardRequest clipboard_request[QEMU_CLIPBOARD_SELECTION__COUNT];
 | 
						|
 | 
						|
    Notifier notifier;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_DBUS_DISPLAY "dbus-display"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(DBusDisplay, DBUS_DISPLAY)
 | 
						|
 | 
						|
void dbus_display_notifier_add(Notifier *notifier);
 | 
						|
 | 
						|
#define DBUS_DISPLAY_TYPE_CONSOLE dbus_display_console_get_type()
 | 
						|
G_DECLARE_FINAL_TYPE(DBusDisplayConsole,
 | 
						|
                     dbus_display_console,
 | 
						|
                     DBUS_DISPLAY,
 | 
						|
                     CONSOLE,
 | 
						|
                     GDBusObjectSkeleton)
 | 
						|
 | 
						|
DBusDisplayConsole *
 | 
						|
dbus_display_console_new(DBusDisplay *display, QemuConsole *con);
 | 
						|
 | 
						|
int
 | 
						|
dbus_display_console_get_index(DBusDisplayConsole *ddc);
 | 
						|
 | 
						|
 | 
						|
extern const DisplayChangeListenerOps dbus_console_dcl_ops;
 | 
						|
 | 
						|
#define DBUS_DISPLAY_TYPE_LISTENER dbus_display_listener_get_type()
 | 
						|
G_DECLARE_FINAL_TYPE(DBusDisplayListener,
 | 
						|
                     dbus_display_listener,
 | 
						|
                     DBUS_DISPLAY,
 | 
						|
                     LISTENER,
 | 
						|
                     GObject)
 | 
						|
 | 
						|
DBusDisplayListener *
 | 
						|
dbus_display_listener_new(const char *bus_name,
 | 
						|
                          GDBusConnection *conn,
 | 
						|
                          DBusDisplayConsole *console);
 | 
						|
 | 
						|
DBusDisplayConsole *
 | 
						|
dbus_display_listener_get_console(DBusDisplayListener *ddl);
 | 
						|
 | 
						|
const char *
 | 
						|
dbus_display_listener_get_bus_name(DBusDisplayListener *ddl);
 | 
						|
 | 
						|
extern const DisplayChangeListenerOps dbus_gl_dcl_ops;
 | 
						|
extern const DisplayChangeListenerOps dbus_dcl_ops;
 | 
						|
 | 
						|
#define TYPE_CHARDEV_DBUS "chardev-dbus"
 | 
						|
 | 
						|
typedef struct DBusChardevClass {
 | 
						|
    SocketChardevClass parent_class;
 | 
						|
 | 
						|
    void (*parent_chr_be_event)(Chardev *s, QEMUChrEvent event);
 | 
						|
} DBusChardevClass;
 | 
						|
 | 
						|
DECLARE_CLASS_CHECKERS(DBusChardevClass, DBUS_CHARDEV,
 | 
						|
                       TYPE_CHARDEV_DBUS)
 | 
						|
 | 
						|
typedef struct DBusChardev {
 | 
						|
    SocketChardev parent;
 | 
						|
 | 
						|
    bool exported;
 | 
						|
    QemuDBusDisplay1Chardev *iface;
 | 
						|
} DBusChardev;
 | 
						|
 | 
						|
DECLARE_INSTANCE_CHECKER(DBusChardev, DBUS_CHARDEV, TYPE_CHARDEV_DBUS)
 | 
						|
 | 
						|
#define CHARDEV_IS_DBUS(chr) \
 | 
						|
    object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_DBUS)
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    DBUS_DISPLAY_CHARDEV_OPEN,
 | 
						|
    DBUS_DISPLAY_CHARDEV_CLOSE,
 | 
						|
} DBusDisplayEventType;
 | 
						|
 | 
						|
typedef struct DBusDisplayEvent {
 | 
						|
    DBusDisplayEventType type;
 | 
						|
    union {
 | 
						|
        DBusChardev *chardev;
 | 
						|
    };
 | 
						|
} DBusDisplayEvent;
 | 
						|
 | 
						|
void dbus_display_notify(DBusDisplayEvent *event);
 | 
						|
 | 
						|
void dbus_chardev_init(DBusDisplay *dpy);
 | 
						|
 | 
						|
void dbus_clipboard_init(DBusDisplay *dpy);
 | 
						|
 | 
						|
#endif /* UI_DBUS_H */
 |