mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-common
synced 2026-08-08 17:45:17 +00:00
Add a "port" channel
A Spice port channel carry arbitrary data between the Spice client and the Spice server. It may be used to provide additional services on top of a Spice connection. For example, a channel can be associated with the qemu monitor for the client to interact with it, just like any qemu chardev. Or it may be used with various protocols, such as the Spice Controller. A port kind is identified simply by its fqdn, such as org.qemu.monitor, org.spice.spicy.test or org.ovirt.controller... The channel is based on Spicevmc which simply tunnels data between client and server. A few messages have been added: SPICE_MSG_PORT_INIT: Describes the port state and fqdn name, should be sent only once when the client connects. SPICE_MSG_PORT_EVENT: Server port event. SPICE_PORT_EVENT_OPENED and SPICE_PORT_EVENT_CLOSED are typical values when the chardev is opened or closed. SPICE_MSGC_PORT_EVENT: Client port event.
This commit is contained in:
parent
5f2e99c3da
commit
b46d36bc1c
@ -70,6 +70,7 @@ typedef struct {
|
||||
void (*msgc_smartcard_data)(SpiceMarshaller *m, SpiceMsgcSmartcard *msg, SpiceMarshaller **reader_name_out);
|
||||
void (*msgc_smartcard_reader_add)(SpiceMarshaller *m, VSCMsgReaderAdd *msg);
|
||||
#endif
|
||||
void (*msgc_port_event)(SpiceMarshaller *m, SpiceMsgcPortEvent *msg);
|
||||
} SpiceMessageMarshallers;
|
||||
|
||||
SpiceMessageMarshallers *spice_message_marshallers_get(void);
|
||||
|
||||
@ -594,6 +594,20 @@ typedef struct SpiceMsgDisplayMonitorsConfig {
|
||||
SpiceHead heads[0];
|
||||
} SpiceMsgDisplayMonitorsConfig;
|
||||
|
||||
typedef struct SpiceMsgPortInit {
|
||||
uint32_t name_size;
|
||||
uint8_t *name;
|
||||
uint8_t opened;
|
||||
} SpiceMsgPortInit;
|
||||
|
||||
typedef struct SpiceMsgPortEvent {
|
||||
uint8_t event;
|
||||
} SpiceMsgPortEvent;
|
||||
|
||||
typedef struct SpiceMsgcPortEvent {
|
||||
uint8_t event;
|
||||
} SpiceMsgcPortEvent;
|
||||
|
||||
SPICE_END_DECLS
|
||||
|
||||
#endif /* _H_SPICE_PROTOCOL */
|
||||
|
||||
17
spice.proto
17
spice.proto
@ -1309,6 +1309,22 @@ client:
|
||||
channel UsbredirChannel : SpicevmcChannel {
|
||||
};
|
||||
|
||||
channel PortChannel : SpicevmcChannel {
|
||||
client:
|
||||
message {
|
||||
uint8 event;
|
||||
} event = 201;
|
||||
server:
|
||||
message {
|
||||
uint32 name_size;
|
||||
uint8 *name[name_size] @zero_terminated @marshall @nonnull;
|
||||
uint8 opened;
|
||||
} init = 201;
|
||||
message {
|
||||
uint8 event;
|
||||
} event;
|
||||
};
|
||||
|
||||
protocol Spice {
|
||||
MainChannel main = 1;
|
||||
DisplayChannel display;
|
||||
@ -1319,4 +1335,5 @@ protocol Spice {
|
||||
TunnelChannel tunnel;
|
||||
SmartcardChannel smartcard;
|
||||
UsbredirChannel usbredir;
|
||||
PortChannel port;
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user