xref: /qemu/include/chardev/spice.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
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