1a8b991b5SMarkus Armbruster #ifndef CHARDEV_SPICE_H 2a8b991b5SMarkus Armbruster #define CHARDEV_SPICE_H 324fa7da3SMarc-André Lureau 424fa7da3SMarc-André Lureau #include <spice.h> 524fa7da3SMarc-André Lureau #include "chardev/char-fe.h" 6*db1015e9SEduardo Habkost #include "qom/object.h" 724fa7da3SMarc-André Lureau 8*db1015e9SEduardo Habkost struct SpiceChardev { 924fa7da3SMarc-André Lureau Chardev parent; 1024fa7da3SMarc-André Lureau 1124fa7da3SMarc-André Lureau SpiceCharDeviceInstance sin; 1224fa7da3SMarc-André Lureau bool active; 1324fa7da3SMarc-André Lureau bool blocked; 1424fa7da3SMarc-André Lureau const uint8_t *datapos; 1524fa7da3SMarc-André Lureau int datalen; 1624fa7da3SMarc-André Lureau QLIST_ENTRY(SpiceChardev) next; 17*db1015e9SEduardo Habkost }; 18*db1015e9SEduardo Habkost typedef struct SpiceChardev SpiceChardev; 1924fa7da3SMarc-André Lureau 2024fa7da3SMarc-André Lureau #define TYPE_CHARDEV_SPICE "chardev-spice" 2124fa7da3SMarc-André Lureau #define TYPE_CHARDEV_SPICEVMC "chardev-spicevmc" 2224fa7da3SMarc-André Lureau #define TYPE_CHARDEV_SPICEPORT "chardev-spiceport" 2324fa7da3SMarc-André Lureau 2424fa7da3SMarc-André Lureau #define SPICE_CHARDEV(obj) OBJECT_CHECK(SpiceChardev, (obj), TYPE_CHARDEV_SPICE) 2524fa7da3SMarc-André Lureau 2624fa7da3SMarc-André Lureau void qemu_chr_open_spice_port(Chardev *chr, ChardevBackend *backend, 2724fa7da3SMarc-André Lureau bool *be_opened, Error **errp); 2824fa7da3SMarc-André Lureau 2924fa7da3SMarc-André Lureau #endif 30