From 9204a5903ab7a2cc39f1c078ce503d337a815be0 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 18 May 2010 15:32:35 +0200 Subject: add spice-experimental.h Supposed to be used for work-in-progress bits, where interfaces are not finalized yet. Moved over vdi port interface, tunnel interface and spice client migration functions. --- server/spice-experimental.h | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 server/spice-experimental.h (limited to 'server/spice-experimental.h') diff --git a/server/spice-experimental.h b/server/spice-experimental.h new file mode 100644 index 00000000..0b732bc8 --- /dev/null +++ b/server/spice-experimental.h @@ -0,0 +1,63 @@ +/* vdi port interface */ + +#define SPICE_INTERFACE_VDI_PORT "vdi_port" +#define SPICE_INTERFACE_VDI_PORT_MAJOR 1 +#define SPICE_INTERFACE_VDI_PORT_MINOR 1 +typedef struct SpiceVDIPortInterface SpiceVDIPortInterface; +typedef struct SpiceVDIPortInstance SpiceVDIPortInstance; +typedef struct SpiceVDIPortState SpiceVDIPortState; + +struct SpiceVDIPortInterface { + SpiceBaseInterface base; + + void (*state)(SpiceVDIPortInstance *sin, int connected); + int (*write)(SpiceVDIPortInstance *sin, const uint8_t *buf, int len); + int (*read)(SpiceVDIPortInstance *sin, uint8_t *buf, int len); +}; + +struct SpiceVDIPortInstance { + SpiceBaseInstance base; + SpiceVDIPortState *st; +}; + +void spice_server_vdi_port_wakeup(SpiceVDIPortInstance *sin); + +/* tunnel interface */ + +#define SPICE_INTERFACE_NET_WIRE "net_wire" +#define SPICE_INTERFACE_NET_WIRE_MAJOR 1 +#define SPICE_INTERFACE_NET_WIRE_MINOR 1 +typedef struct SpiceNetWireInterface SpiceNetWireInterface; +typedef struct SpiceNetWireInstance SpiceNetWireInstance; +typedef struct SpiceNetWireState SpiceNetWireState; + +struct NetWireInterface { + SpiceBaseInterface base; + + struct in_addr (*get_ip)(SpiceNetWireInterface *sin); + int (*can_send_packet)(SpiceNetWireInterface *sin); + void (*send_packet)(SpiceNetWireInterface *sin, const uint8_t *pkt, int len); +}; + +struct SpiceNetWireInstance { + SpiceBaseInstance base; + SpiceNetWireState *st; +}; + +void spice_server_net_wire_recv_packet(SpiceNetWireInstance *sin, + const uint8_t *pkt, int len); + +/* spice client migration */ + +enum { + SPICE_MIGRATE_CLIENT_NONE = 1, + SPICE_MIGRATE_CLIENT_WAITING, + SPICE_MIGRATE_CLIENT_READY, +}; + +int spice_server_migrate_info(SpiceServer *s, const char* dest, int port, int secure_port, + const char* cert_subject); +int spice_server_migrate_start(SpiceServer *s); +int spice_server_migrate_client_state(SpiceServer *s); +int spice_server_migrate_end(SpiceServer *s, int completed); + -- cgit