uploaded original spice-server-0.12.4 and celt-0.5.1.3
[sdk/emulator/libs/spice-server.git] / server / spice-experimental.h
1 #ifndef __SPICE_EXPERIMENTAL_H__
2 #define __SPICE_EXPERIMENTAL_H__
3
4 #include "spice.h"
5
6 /* tunnel interface */
7
8 #define SPICE_INTERFACE_NET_WIRE "net_wire"
9 #define SPICE_INTERFACE_NET_WIRE_MAJOR 1
10 #define SPICE_INTERFACE_NET_WIRE_MINOR 1
11 typedef struct SpiceNetWireInterface SpiceNetWireInterface;
12 typedef struct SpiceNetWireInstance SpiceNetWireInstance;
13 typedef struct SpiceNetWireState SpiceNetWireState;
14
15 struct SpiceNetWireInterface {
16     SpiceBaseInterface base;
17
18     struct in_addr (*get_ip)(SpiceNetWireInstance *sin);
19     int (*can_send_packet)(SpiceNetWireInstance *sin);
20     void (*send_packet)(SpiceNetWireInstance *sin, const uint8_t *pkt, int len);
21 };
22
23 struct SpiceNetWireInstance {
24     SpiceBaseInstance base;
25     SpiceNetWireState *st;
26 };
27
28 void spice_server_net_wire_recv_packet(SpiceNetWireInstance *sin,
29                                        const uint8_t *pkt, int len);
30
31 /* spice seamless client migration (broken) */
32 enum {
33     SPICE_MIGRATE_CLIENT_NONE = 1,
34     SPICE_MIGRATE_CLIENT_WAITING,
35     SPICE_MIGRATE_CLIENT_READY,
36 };
37
38 int spice_server_migrate_client_state(SpiceServer *s);
39
40 #endif // __SPICE_EXPERIMENTAL_H__