diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-05-18 15:32:35 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2010-05-19 11:22:08 +0200 |
commit | 9204a5903ab7a2cc39f1c078ce503d337a815be0 (patch) | |
tree | 5204865baefd62bdfd03a6e9f459db9b437ac849 /server/spice-experimental.h | |
parent | 981abd3fee93efb4578e1ae6442ea4b320a710a9 (diff) |
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.
Diffstat (limited to 'server/spice-experimental.h')
-rw-r--r-- | server/spice-experimental.h | 63 |
1 files changed, 63 insertions, 0 deletions
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); + |