[Spice-devel] [PATCH spice-common v3 5/5] Generate automatically most C message declarations
Frediano Ziglio
fziglio at redhat.com
Mon Mar 11 13:59:14 UTC 2019
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
common/messages.h | 495 +---------------------------------------------
spice.proto | 192 +++++++++---------
2 files changed, 102 insertions(+), 585 deletions(-)
diff --git a/common/messages.h b/common/messages.h
index 36ee59d..5cda1d1 100644
--- a/common/messages.h
+++ b/common/messages.h
@@ -42,10 +42,6 @@
SPICE_BEGIN_DECLS
-typedef struct SpiceMsgData {
- uint8_t data[0];
-} SpiceMsgData;
-
typedef struct SpiceMsgCompressedData {
uint8_t type;
uint32_t uncompressed_size;
@@ -53,438 +49,8 @@ typedef struct SpiceMsgCompressedData {
uint8_t *compressed_data;
} SpiceMsgCompressedData;
-typedef struct SpiceMsgEmpty {
- uint8_t padding;
-} SpiceMsgEmpty;
-
-typedef struct SpiceMsgInputsInit {
- uint32_t keyboard_modifiers;
-} SpiceMsgInputsInit;
-
-typedef struct SpiceMsgInputsKeyModifiers {
- uint32_t modifiers;
-} SpiceMsgInputsKeyModifiers;
-
-typedef struct SpiceMsgMainMultiMediaTime {
- uint32_t time;
-} SpiceMsgMainMultiMediaTime;
-
-typedef struct SpiceMigrationDstInfo {
- uint16_t port;
- uint16_t sport;
- uint32_t host_size;
- uint8_t *host_data;
- uint32_t cert_subject_size;
- uint8_t *cert_subject_data;
-} SpiceMigrationDstInfo;
-
-typedef struct SpiceMsgMainMigrationBegin {
- SpiceMigrationDstInfo dst_info;
-} SpiceMsgMainMigrationBegin;
-
-typedef struct SpiceMsgMainMigrateBeginSeamless {
- SpiceMigrationDstInfo dst_info;
- uint32_t src_mig_version;
-} SpiceMsgMainMigrateBeginSeamless;
-
-typedef struct SpiceMsgcMainMigrateDstDoSeamless {
- uint32_t src_version;
-} SpiceMsgcMainMigrateDstDoSeamless;
-
-typedef struct SpiceMsgMainMigrationSwitchHost {
- uint16_t port;
- uint16_t sport;
- uint32_t host_size;
- uint8_t *host_data;
- uint32_t cert_subject_size;
- uint8_t *cert_subject_data;
-} SpiceMsgMainMigrationSwitchHost;
-
-
-typedef struct SpiceMsgMigrate {
- uint32_t flags;
-} SpiceMsgMigrate;
-
-typedef struct SpiceResourceID {
- uint8_t type;
- uint64_t id;
-} SpiceResourceID;
-
-typedef struct SpiceResourceList {
- uint16_t count;
- SpiceResourceID resources[0];
-} SpiceResourceList;
-
-typedef struct SpiceMsgSetAck {
- uint32_t generation;
- uint32_t window;
-} SpiceMsgSetAck;
-
-typedef struct SpiceMsgcAckSync {
- uint32_t generation;
-} SpiceMsgcAckSync;
-
-typedef struct SpiceWaitForChannel {
- uint8_t channel_type;
- uint8_t channel_id;
- uint64_t message_serial;
-} SpiceWaitForChannel;
-
-typedef struct SpiceMsgWaitForChannels {
- uint8_t wait_count;
- SpiceWaitForChannel wait_list[0];
-} SpiceMsgWaitForChannels;
-
-typedef struct SpiceChannelId {
- uint8_t type;
- uint8_t id;
-} SpiceChannelId;
-
-typedef struct SpiceMsgMainInit {
- uint32_t session_id;
- uint32_t display_channels_hint;
- uint32_t supported_mouse_modes;
- uint32_t current_mouse_mode;
- uint32_t agent_connected;
- uint32_t agent_tokens;
- uint32_t multi_media_time;
- uint32_t ram_hint;
-} SpiceMsgMainInit;
-
-typedef struct SpiceMsgDisconnect {
- uint64_t time_stamp;
- uint32_t reason; // SPICE_ERR_?
-} SpiceMsgDisconnect;
-
-typedef struct SpiceMsgNotify {
- uint64_t time_stamp;
- uint32_t severity;
- uint32_t visibilty;
- uint32_t what;
- uint32_t message_len;
- uint8_t message[0];
-} SpiceMsgNotify;
-
-typedef struct SpiceMsgChannels {
- uint32_t num_of_channels;
- SpiceChannelId channels[0];
-} SpiceMsgChannels;
-
-typedef struct SpiceMsgMainName {
- uint32_t name_len;
- uint8_t name[0];
-} SpiceMsgMainName;
-
-typedef struct SpiceMsgMainUuid {
- uint8_t uuid[16];
-} SpiceMsgMainUuid;
-
-typedef struct SpiceMsgMainMouseMode {
- uint32_t supported_modes;
- uint32_t current_mode;
-} SpiceMsgMainMouseMode;
-
-typedef struct SpiceMsgPing {
- uint32_t id;
- uint64_t timestamp;
- void *data;
- uint32_t data_len;
-} SpiceMsgPing;
-
-typedef struct SpiceMsgMainAgentDisconnect {
- uint32_t error_code; // SPICE_ERR_?
-} SpiceMsgMainAgentDisconnect;
-
#define SPICE_AGENT_MAX_DATA_SIZE 2048
-typedef struct SpiceMsgMainAgentTokens {
- uint32_t num_tokens;
-} SpiceMsgMainAgentTokens, SpiceMsgcMainAgentTokens, SpiceMsgcMainAgentStart;
-
-typedef struct SpiceMsgMainAgentTokens SpiceMsgMainAgentConnectedTokens;
-
-typedef struct SpiceMsgcClientInfo {
- uint64_t cache_size;
-} SpiceMsgcClientInfo;
-
-typedef struct SpiceMsgcMainMouseModeRequest {
- uint32_t mode;
-} SpiceMsgcMainMouseModeRequest;
-
-typedef struct SpiceCursor {
- uint32_t flags;
- SpiceCursorHeader header;
- uint32_t data_size;
- uint8_t *data;
-} SpiceCursor;
-
-typedef struct SpiceMsgDisplayMode {
- uint32_t x_res;
- uint32_t y_res;
- uint32_t bits;
-} SpiceMsgDisplayMode;
-
-typedef struct SpiceMsgSurfaceCreate {
- uint32_t surface_id;
- uint32_t width;
- uint32_t height;
- uint32_t format;
- uint32_t flags;
-} SpiceMsgSurfaceCreate;
-
-typedef struct SpiceMsgSurfaceDestroy {
- uint32_t surface_id;
-} SpiceMsgSurfaceDestroy;
-
-typedef struct SpiceMsgDisplayBase {
- uint32_t surface_id;
- SpiceRect box;
- SpiceClip clip;
-} SpiceMsgDisplayBase;
-
-typedef struct SpiceMsgDisplayDrawFill {
- SpiceMsgDisplayBase base;
- SpiceFill data;
-} SpiceMsgDisplayDrawFill;
-
-typedef struct SpiceMsgDisplayDrawOpaque {
- SpiceMsgDisplayBase base;
- SpiceOpaque data;
-} SpiceMsgDisplayDrawOpaque;
-
-typedef struct SpiceMsgDisplayDrawCopy {
- SpiceMsgDisplayBase base;
- SpiceCopy data;
-} SpiceMsgDisplayDrawCopy;
-
-typedef struct SpiceMsgDisplayDrawTransparent {
- SpiceMsgDisplayBase base;
- SpiceTransparent data;
-} SpiceMsgDisplayDrawTransparent;
-
-typedef struct SpiceMsgDisplayDrawAlphaBlend {
- SpiceMsgDisplayBase base;
- SpiceAlphaBlend data;
-} SpiceMsgDisplayDrawAlphaBlend;
-
-typedef struct SpiceMsgDisplayDrawComposite {
- SpiceMsgDisplayBase base;
- SpiceComposite data;
-} SpiceMsgDisplayDrawComposite;
-
-typedef struct SpiceMsgDisplayCopyBits {
- SpiceMsgDisplayBase base;
- SpicePoint src_pos;
-} SpiceMsgDisplayCopyBits;
-
-typedef SpiceMsgDisplayDrawCopy SpiceMsgDisplayDrawBlend;
-
-typedef struct SpiceMsgDisplayDrawRop3 {
- SpiceMsgDisplayBase base;
- SpiceRop3 data;
-} SpiceMsgDisplayDrawRop3;
-
-typedef struct SpiceMsgDisplayDrawBlackness {
- SpiceMsgDisplayBase base;
- SpiceBlackness data;
-} SpiceMsgDisplayDrawBlackness;
-
-typedef struct SpiceMsgDisplayDrawWhiteness {
- SpiceMsgDisplayBase base;
- SpiceWhiteness data;
-} SpiceMsgDisplayDrawWhiteness;
-
-typedef struct SpiceMsgDisplayDrawInvers {
- SpiceMsgDisplayBase base;
- SpiceInvers data;
-} SpiceMsgDisplayDrawInvers;
-
-typedef struct SpiceMsgDisplayDrawStroke {
- SpiceMsgDisplayBase base;
- SpiceStroke data;
-} SpiceMsgDisplayDrawStroke;
-
-typedef struct SpiceMsgDisplayDrawText {
- SpiceMsgDisplayBase base;
- SpiceText data;
-} SpiceMsgDisplayDrawText;
-
-typedef struct SpiceMsgDisplayInvalOne {
- uint64_t id;
-} SpiceMsgDisplayInvalOne;
-
-typedef struct SpiceMsgDisplayStreamCreate {
- uint32_t surface_id;
- uint32_t id; /* Any number from 0 to SPICE_MAX_NUM_STREAMS - 1 */
- uint32_t flags;
- uint32_t codec_type;
- uint64_t stamp;
- uint32_t stream_width;
- uint32_t stream_height;
- uint32_t src_width;
- uint32_t src_height;
- SpiceRect dest;
- SpiceClip clip;
-} SpiceMsgDisplayStreamCreate;
-
-typedef struct SpiceStreamDataHeader {
- uint32_t id;
- uint32_t multi_media_time;
-} SpiceStreamDataHeader;
-
-typedef struct SpiceMsgDisplayStreamData {
- SpiceStreamDataHeader base;
- uint32_t data_size;
- uint8_t data[0];
-} SpiceMsgDisplayStreamData;
-
-typedef struct SpiceMsgDisplayStreamDataSized {
- SpiceStreamDataHeader base;
- uint32_t width;
- uint32_t height;
- SpiceRect dest;
- uint32_t data_size;
- uint8_t data[0];
-} SpiceMsgDisplayStreamDataSized;
-
-typedef struct SpiceMsgDisplayStreamClip {
- uint32_t id;
- SpiceClip clip;
-} SpiceMsgDisplayStreamClip;
-
-typedef struct SpiceMsgDisplayStreamDestroy {
- uint32_t id;
-} SpiceMsgDisplayStreamDestroy;
-
-typedef struct SpiceMsgDisplayStreamActivateReport {
- uint32_t stream_id;
- uint32_t unique_id;
- uint32_t max_window_size;
- uint32_t timeout_ms;
-} SpiceMsgDisplayStreamActivateReport;
-
-typedef struct SpiceMsgcDisplayStreamReport {
- uint32_t stream_id;
- uint32_t unique_id;
- uint32_t start_frame_mm_time;
- uint32_t end_frame_mm_time;
- uint32_t num_frames;
- uint32_t num_drops;
- int32_t last_frame_delay;
- uint32_t audio_delay;
-} SpiceMsgcDisplayStreamReport;
-
-typedef struct SpiceMsgcDisplayGlDrawDone {
-} SpiceMsgcDisplayGlDrawDone;
-
-typedef struct SpiceMsgCursorInit {
- SpicePoint16 position;
- uint16_t trail_length;
- uint16_t trail_frequency;
- uint8_t visible;
- SpiceCursor cursor;
-} SpiceMsgCursorInit;
-
-typedef struct SpiceMsgCursorSet {
- SpicePoint16 position;
- uint8_t visible;
- SpiceCursor cursor;
-} SpiceMsgCursorSet;
-
-typedef struct SpiceMsgCursorMove {
- SpicePoint16 position;
-} SpiceMsgCursorMove;
-
-typedef struct SpiceMsgCursorTrail {
- uint16_t length;
- uint16_t frequency;
-} SpiceMsgCursorTrail;
-
-typedef struct SpiceMsgcDisplayInit {
- uint8_t pixmap_cache_id;
- int64_t pixmap_cache_size; //in pixels
- uint8_t glz_dictionary_id;
- int32_t glz_dictionary_window_size; // in pixels
-} SpiceMsgcDisplayInit;
-
-typedef struct SpiceMsgcKeyDown {
- uint32_t code;
-} SpiceMsgcKeyDown;
-
-typedef struct SpiceMsgcKeyUp {
- uint32_t code;
-} SpiceMsgcKeyUp;
-
-typedef struct SpiceMsgcKeyModifiers {
- uint32_t modifiers;
-} SpiceMsgcKeyModifiers;
-
-typedef struct SpiceMsgcMouseMotion {
- int32_t dx;
- int32_t dy;
- uint32_t buttons_state;
-} SpiceMsgcMouseMotion;
-
-typedef struct SpiceMsgcMousePosition {
- uint32_t x;
- uint32_t y;
- uint32_t buttons_state;
- uint8_t display_id;
-} SpiceMsgcMousePosition;
-
-typedef struct SpiceMsgcMousePress {
- int32_t button;
- int32_t buttons_state;
-} SpiceMsgcMousePress;
-
-typedef struct SpiceMsgcMouseRelease {
- int32_t button;
- int32_t buttons_state;
-} SpiceMsgcMouseRelease;
-
-typedef struct SpiceMsgAudioVolume {
- uint8_t nchannels;
- uint16_t volume[0];
-} SpiceMsgAudioVolume;
-
-typedef struct SpiceMsgAudioMute {
- uint8_t mute;
-} SpiceMsgAudioMute;
-
-typedef struct SpiceMsgPlaybackMode {
- uint32_t time;
- uint32_t mode; //SPICE_AUDIO_DATA_MODE_?
- uint8_t *data;
- uint32_t data_size;
-} SpiceMsgPlaybackMode, SpiceMsgcRecordMode;
-
-typedef struct SpiceMsgPlaybackStart {
- uint32_t channels;
- uint32_t format; //SPICE_AUDIO_FMT_?
- uint32_t frequency;
- uint32_t time;
-} SpiceMsgPlaybackStart;
-
-typedef struct SpiceMsgPlaybackPacket {
- uint32_t time;
- uint8_t *data;
- uint32_t data_size;
-} SpiceMsgPlaybackPacket, SpiceMsgcRecordPacket;
-
-typedef struct SpiceMsgPlaybackLatency {
- uint32_t latency_ms;
-} SpiceMsgPlaybackLatency;
-
-typedef struct SpiceMsgRecordStart {
- uint32_t channels;
- uint32_t format; //SPICE_AUDIO_FMT_?
- uint32_t frequency;
-} SpiceMsgRecordStart;
-
-typedef struct SpiceMsgcRecordStartMark {
- uint32_t time;
-} SpiceMsgcRecordStartMark;
-
#ifdef USE_SMARTCARD
typedef struct SpiceMsgSmartcard {
VSCMsgType type;
@@ -503,63 +69,14 @@ typedef struct SpiceMsgcSmartcard {
} SpiceMsgcSmartcard;
#endif
-typedef struct SpiceMsgDisplayHead {
- uint32_t monitor_id;
- uint32_t surface_id;
- uint32_t width;
- uint32_t height;
- uint32_t x;
- uint32_t y;
- uint32_t flags;
-} SpiceHead;
-
-typedef struct SpiceMsgDisplayMonitorsConfig {
- uint16_t count;
- uint16_t max_allowed;
- 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;
-
-typedef struct SpiceMsgcDisplayPreferredVideoCodecType {
- uint8_t num_of_codecs;
- uint8_t codecs[0];
-} SpiceMsgcDisplayPreferredVideoCodecType;
-
-typedef struct SpiceMsgcDisplayPreferredCompression {
- uint8_t image_compression;
-} SpiceMsgcDisplayPreferredCompression;
-
-typedef struct SpiceMsgDisplayGlScanoutUnix {
- int drm_dma_buf_fd;
- uint32_t width;
- uint32_t height;
- uint32_t stride;
- uint32_t drm_fourcc_format;
- uint32_t flags;
-} SpiceMsgDisplayGlScanoutUnix;
-
-typedef struct SpiceMsgDisplayGlDraw {
- uint32_t x;
- uint32_t y;
- uint32_t w;
- uint32_t h;
-} SpiceMsgDisplayGlDraw;
-
#include <common/generated_messages.h>
+typedef SpiceMsgMainAgentTokens SpiceMsgcMainAgentTokens;
+typedef SpiceMsgMainAgentTokens SpiceMsgcMainAgentStart;
+typedef SpiceMsgDisplayDrawCopy SpiceMsgDisplayDrawBlend;
+typedef SpiceMsgPlaybackMode SpiceMsgcRecordMode;
+typedef SpiceMsgPlaybackPacket SpiceMsgcRecordPacket;
+
SPICE_END_DECLS
#endif // H_SPICE_COMMON_MESSAGES
diff --git a/spice.proto b/spice.proto
index 8148b2e..1f9f57b 100644
--- a/spice.proto
+++ b/spice.proto
@@ -106,11 +106,11 @@ flags16 mouse_mode {
};
message Empty {
-};
+} @declare;
message Data {
uint8 data[] @end @ctype(uint8_t);
-} @nocopy;
+} @nocopy @declare;
enum8 data_compression_type {
NONE,
@@ -138,36 +138,36 @@ struct ChannelWait {
uint8 channel_type;
uint8 channel_id;
uint64 message_serial;
-} @ctype(SpiceWaitForChannel);
+} @ctype(SpiceWaitForChannel) @declare;
channel BaseChannel {
server:
message {
migrate_flags flags;
- } migrate;
+ } @declare migrate;
Data migrate_data;
message {
uint32 generation;
uint32 window;
- } set_ack;
+ } @declare set_ack;
message {
uint32 id;
uint64 timestamp;
uint8 data[] @ctype(uint8_t) @as_ptr(data_len);
- } ping;
+ } @declare ping;
message {
uint8 wait_count;
ChannelWait wait_list[wait_count] @end;
- } wait_for_channels;
+ } @declare wait_for_channels;
message {
uint64 time_stamp;
link_err reason;
- } @ctype(SpiceMsgDisconnect) disconnecting;
+ } @ctype(SpiceMsgDisconnect) @declare disconnecting;
message {
uint64 time_stamp;
@@ -176,7 +176,7 @@ channel BaseChannel {
uint32 what; /* error_code/warn_code/info_code */
uint32 message_len;
uint8 message[message_len] @end @nomarshal;
- } notify;
+ } @declare notify;
Data list; /* the msg body is SpiceSubMessageList */
@@ -185,7 +185,7 @@ channel BaseChannel {
client:
message {
uint32 generation;
- } ack_sync;
+ } @declare ack_sync;
Empty ack;
@@ -207,7 +207,7 @@ channel BaseChannel {
struct ChannelId {
uint8 type;
uint8 id;
-};
+} @declare;
struct DstInfo {
uint16 port;
@@ -216,13 +216,13 @@ struct DstInfo {
uint8 *host_data[host_size] @zero_terminated @marshall @nonnull;
uint32 cert_subject_size;
uint8 *cert_subject_data[cert_subject_size] @zero_terminated @marshall;
-} @ctype(SpiceMigrationDstInfo);
+} @ctype(SpiceMigrationDstInfo) @declare;
channel MainChannel : BaseChannel {
server:
message {
DstInfo dst_info;
- } @ctype(SpiceMsgMainMigrationBegin) migrate_begin = 101;
+ } @ctype(SpiceMsgMainMigrationBegin) @declare migrate_begin = 101;
Empty migrate_cancel;
@@ -235,33 +235,33 @@ channel MainChannel : BaseChannel {
uint32 agent_tokens;
uint32 multi_media_time;
uint32 ram_hint;
- } init;
+ } @declare init;
message {
uint32 num_of_channels;
ChannelId channels[num_of_channels] @end;
- } @ctype(SpiceMsgChannels) channels_list;
+ } @ctype(SpiceMsgChannels) @declare channels_list;
message {
mouse_mode supported_modes;
mouse_mode current_mode @unique_flag;
- } mouse_mode;
+ } @declare mouse_mode;
message {
uint32 time;
- } @ctype(SpiceMsgMainMultiMediaTime) multi_media_time;
+ } @ctype(SpiceMsgMainMultiMediaTime) @declare multi_media_time;
Empty agent_connected;
message {
link_err error_code;
- } @ctype(SpiceMsgMainAgentDisconnect) agent_disconnected;
+ } @ctype(SpiceMsgMainAgentDisconnect) @declare agent_disconnected;
Data agent_data;
message {
uint32 num_tokens;
- } @ctype(SpiceMsgMainAgentTokens) agent_token;
+ } @ctype(SpiceMsgMainAgentTokens) @declare agent_token;
message {
uint16 port;
@@ -270,27 +270,27 @@ channel MainChannel : BaseChannel {
uint8 *host_data[host_size] @zero_terminated @marshall;
uint32 cert_subject_size;
uint8 *cert_subject_data[cert_subject_size] @zero_terminated @marshall;
- } @ctype(SpiceMsgMainMigrationSwitchHost) migrate_switch_host;
+ } @ctype(SpiceMsgMainMigrationSwitchHost) @declare migrate_switch_host;
Empty migrate_end;
message {
uint32 name_len;
uint8 name[name_len] @end;
- } name;
+ } @declare name;
message {
uint8 uuid[16];
- } uuid;
+ } @declare uuid;
message {
uint32 num_tokens;
- } agent_connected_tokens;
+ } @declare agent_connected_tokens;
message {
DstInfo dst_info;
uint32 src_mig_version;
- } migrate_begin_seamless;
+ } @declare migrate_begin_seamless;
Empty migrate_dst_seamless_ack;
Empty migrate_dst_seamless_nack;
@@ -298,7 +298,7 @@ channel MainChannel : BaseChannel {
client:
message {
uint64 cache_size;
- } @ctype(SpiceMsgcClientInfo) client_info = 101;
+ } @ctype(SpiceMsgcClientInfo) @declare client_info = 101;
Empty migrate_connected;
@@ -308,23 +308,23 @@ channel MainChannel : BaseChannel {
message {
mouse_mode mode;
- } mouse_mode_request;
+ } @declare mouse_mode_request;
message {
uint32 num_tokens;
- } agent_start;
+ } @ctype(SpiceMsgMainAgentTokens) @declare agent_start;
Data agent_data;
message {
uint32 num_tokens;
- } @ctype(SpiceMsgcMainAgentTokens) agent_token;
+ } @ctype(SpiceMsgMainAgentTokens) @declare agent_token;
Empty migrate_end;
message {
uint32 src_version;
- } migrate_dst_do_seamless;
+ } @declare migrate_dst_do_seamless;
Empty migrate_connected_seamless;
};
@@ -519,18 +519,18 @@ struct DisplayBase {
uint32 surface_id;
Rect box;
Clip clip;
-} @ctype(SpiceMsgDisplayBase);
+} @ctype(SpiceMsgDisplayBase) @declare;
struct ResourceID {
uint8 type; /* resource_type */
uint64 id;
-};
+} @declare;
struct WaitForChannel {
uint8 channel_type;
uint8 channel_id;
uint64 message_serial;
-};
+} @declare;
struct Palette {
uint64 unique;
@@ -693,7 +693,7 @@ struct String {
struct StreamDataHeader {
stream_id_t id;
uint32 multi_media_time;
-};
+} @declare;
struct Head {
uint32 monitor_id;
@@ -703,7 +703,7 @@ struct Head {
uint32 x;
uint32 y;
uint32 flags;
-};
+} @declare;
flags32 gl_scanout_flags {
Y0TOP
@@ -715,19 +715,19 @@ channel DisplayChannel : BaseChannel {
uint32 x_res;
uint32 y_res;
uint32 bits;
- } mode = 101;
+ } @declare mode = 101;
Empty mark;
Empty reset;
message {
DisplayBase base;
Point src_pos;
- } copy_bits;
+ } @declare copy_bits;
message {
uint16 count;
ResourceID resources[count] @end;
- } @ctype(SpiceResourceList) inval_list;
+ } @ctype(SpiceResourceList) @declare inval_list;
/* This message is used to invalidate the complete image cache
* on the client.
@@ -739,11 +739,11 @@ channel DisplayChannel : BaseChannel {
message {
uint8 wait_count;
WaitForChannel wait_list[wait_count] @end;
- } @ctype(SpiceMsgWaitForChannels) inval_all_pixmaps;
+ } @ctype(SpiceMsgWaitForChannels) @declare inval_all_pixmaps;
message {
uint64 id;
- } @ctype(SpiceMsgDisplayInvalOne) inval_palette;
+ } @ctype(SpiceMsgDisplayInvalOne) @declare inval_palette;
Empty inval_all_palettes;
@@ -759,22 +759,22 @@ channel DisplayChannel : BaseChannel {
uint32 src_height;
Rect dest;
Clip clip;
- } stream_create = 122;
+ } @declare stream_create = 122;
message {
StreamDataHeader base;
uint32 data_size;
uint8 data[data_size] @end @nomarshal;
- } stream_data;
+ } @declare stream_data;
message {
stream_id_t id;
Clip clip;
- } stream_clip;
+ } @declare stream_clip;
message {
stream_id_t id;
- } stream_destroy;
+ } @declare stream_destroy;
Empty stream_destroy_all;
@@ -785,7 +785,7 @@ channel DisplayChannel : BaseChannel {
ropd rop_descriptor;
QMask mask @outvar(mask);
} data;
- } draw_fill = 302;
+ } @declare draw_fill = 302;
message {
DisplayBase base;
@@ -797,7 +797,7 @@ channel DisplayChannel : BaseChannel {
image_scale_mode scale_mode;
QMask mask @outvar(mask);
} data;
- } draw_opaque;
+ } @declare draw_opaque;
message {
DisplayBase base;
@@ -808,7 +808,7 @@ channel DisplayChannel : BaseChannel {
image_scale_mode scale_mode;
QMask mask @outvar(mask);
} data;
- } draw_copy;
+ } @declare draw_copy;
message {
DisplayBase base;
@@ -819,28 +819,28 @@ channel DisplayChannel : BaseChannel {
image_scale_mode scale_mode;
QMask mask @outvar(mask);
} @ctype(SpiceCopy) data;
- } draw_blend;
+ } @ctype(SpiceMsgDisplayDrawCopy) draw_blend;
message {
DisplayBase base;
struct Blackness {
QMask mask @outvar(mask);
} data;
- } draw_blackness;
+ } @declare draw_blackness;
message {
DisplayBase base;
struct Whiteness {
QMask mask @outvar(mask);
} data;
- } draw_whiteness;
+ } @declare draw_whiteness;
message {
DisplayBase base;
struct Invers {
QMask mask @outvar(mask);
} data;
- } draw_invers;
+ } @declare draw_invers;
message {
DisplayBase base;
@@ -852,7 +852,7 @@ channel DisplayChannel : BaseChannel {
image_scale_mode scale_mode;
QMask mask @outvar(mask);
} data;
- } draw_rop3;
+ } @declare draw_rop3;
message {
DisplayBase base;
@@ -863,7 +863,7 @@ channel DisplayChannel : BaseChannel {
uint16 fore_mode;
uint16 back_mode;
} data;
- } draw_stroke;
+ } @declare draw_stroke;
message {
DisplayBase base;
@@ -875,7 +875,7 @@ channel DisplayChannel : BaseChannel {
uint16 fore_mode;
uint16 back_mode;
} data;
- } draw_text;
+ } @declare draw_text;
message {
DisplayBase base;
@@ -885,7 +885,7 @@ channel DisplayChannel : BaseChannel {
uint32 src_color;
uint32 true_color;
} data;
- } draw_transparent;
+ } @declare draw_transparent;
message {
DisplayBase base;
@@ -895,7 +895,7 @@ channel DisplayChannel : BaseChannel {
Image *src_bitmap;
Rect src_area;
} data;
- } draw_alpha_blend;
+ } @declare draw_alpha_blend;
message {
uint32 surface_id;
@@ -903,11 +903,11 @@ channel DisplayChannel : BaseChannel {
uint32 height;
surface_fmt format;
surface_flags flags;
- } @ctype(SpiceMsgSurfaceCreate) surface_create;
+ } @ctype(SpiceMsgSurfaceCreate) @declare surface_create;
message {
uint32 surface_id;
- } @ctype(SpiceMsgSurfaceDestroy) surface_destroy;
+ } @ctype(SpiceMsgSurfaceDestroy) @declare surface_destroy;
message {
StreamDataHeader base;
@@ -916,13 +916,13 @@ channel DisplayChannel : BaseChannel {
Rect dest;
uint32 data_size;
uint8 data[data_size] @end @nomarshal;
- } stream_data_sized;
+ } @declare stream_data_sized;
message {
uint16 count;
uint16 max_allowed;
Head heads[count] @end;
- } monitors_config;
+ } @declare monitors_config;
message {
DisplayBase base;
@@ -944,14 +944,14 @@ channel DisplayChannel : BaseChannel {
Point16 src_origin;
Point16 mask_origin;
} data;
- } draw_composite;
+ } @declare draw_composite;
message {
stream_id_t stream_id;
uint32 unique_id;
uint32 max_window_size;
uint32 timeout_ms;
- } stream_activate_report;
+ } @declare stream_activate_report;
message {
unix_fd drm_dma_buf_fd;
@@ -961,14 +961,14 @@ channel DisplayChannel : BaseChannel {
/* specifies the format of drm_dma_buf_fd defined in drm_fourcc.h */
uint32 drm_fourcc_format;
gl_scanout_flags flags;
- } gl_scanout_unix;
+ } @declare gl_scanout_unix;
message {
uint32 x;
uint32 y;
uint32 w;
uint32 h;
- } gl_draw;
+ } @declare gl_draw;
client:
message {
@@ -976,7 +976,7 @@ channel DisplayChannel : BaseChannel {
int64 pixmap_cache_size; //in pixels
uint8 glz_dictionary_id;
int32 glz_dictionary_window_size; // in pixels
- } init = 101;
+ } @declare init = 101;
message {
stream_id_t stream_id;
@@ -1000,19 +1000,19 @@ channel DisplayChannel : BaseChannel {
// the latency of the audio playback
// If there is no audio playback, set it to 0xffffffffu
uint32 audio_delay;
- } stream_report;
+ } @declare stream_report;
message {
image_compression image_compression;
- } preferred_compression;
+ } @declare preferred_compression;
message {
- } gl_draw_done;
+ } @declare gl_draw_done;
message {
uint8 num_of_codecs;
video_codec_type codecs[num_of_codecs] @end;
- } preferred_video_codec_type;
+ } @declare preferred_video_codec_type;
};
flags16 keyboard_modifier_flags {
@@ -1040,15 +1040,15 @@ channel InputsChannel : BaseChannel {
client:
message {
uint32 code;
- } @ctype(SpiceMsgcKeyDown) key_down = 101;
+ } @ctype(SpiceMsgcKeyDown) @declare key_down = 101;
message {
uint32 code;
- } @ctype(SpiceMsgcKeyUp) key_up;
+ } @ctype(SpiceMsgcKeyUp) @declare key_up;
message {
keyboard_modifier_flags modifiers;
- } @ctype(SpiceMsgcKeyModifiers) key_modifiers;
+ } @ctype(SpiceMsgcKeyModifiers) @declare key_modifiers;
Data key_scancode;
@@ -1056,33 +1056,33 @@ channel InputsChannel : BaseChannel {
int32 dx;
int32 dy;
mouse_button_mask buttons_state;
- } @ctype(SpiceMsgcMouseMotion) mouse_motion = 111;
+ } @ctype(SpiceMsgcMouseMotion) @declare mouse_motion = 111;
message {
uint32 x;
uint32 y;
mouse_button_mask buttons_state;
uint8 display_id;
- } @ctype(SpiceMsgcMousePosition) mouse_position;
+ } @ctype(SpiceMsgcMousePosition) @declare mouse_position;
message {
mouse_button button;
mouse_button_mask buttons_state;
- } @ctype(SpiceMsgcMousePress) mouse_press;
+ } @ctype(SpiceMsgcMousePress) @declare mouse_press;
message {
mouse_button button;
mouse_button_mask buttons_state;
- } @ctype(SpiceMsgcMouseRelease) mouse_release;
+ } @ctype(SpiceMsgcMouseRelease) @declare mouse_release;
server:
message {
keyboard_modifier_flags keyboard_modifiers;
- } init = 101;
+ } @declare init = 101;
message {
keyboard_modifier_flags modifiers;
- } key_modifiers;
+ } @declare key_modifiers;
Empty mouse_motion_ack = 111;
};
@@ -1119,7 +1119,7 @@ struct Cursor {
CursorHeader header;
} u @anon;
uint8 data[] @as_ptr(data_size);
-};
+} @declare;
channel CursorChannel : BaseChannel {
server:
@@ -1129,7 +1129,7 @@ channel CursorChannel : BaseChannel {
uint16 trail_frequency;
uint8 visible;
Cursor cursor;
- } init = 101;
+ } @declare init = 101;
Empty reset;
@@ -1137,22 +1137,22 @@ channel CursorChannel : BaseChannel {
Point16 position;
uint8 visible;
Cursor cursor;
- } set;
+ } @declare set;
message {
Point16 position;
- } move;
+ } @declare move;
Empty hide;
message {
uint16 length;
uint16 frequency;
- } trail;
+ } @declare trail;
message {
uint64 id;
- } @ctype(SpiceMsgDisplayInvalOne) inval_one;
+ } @ctype(SpiceMsgDisplayInvalOne) @declare inval_one;
Empty inval_all;
};
@@ -1172,31 +1172,31 @@ enum16 audio_fmt {
message AudioVolume {
uint8 nchannels;
uint16 volume[nchannels] @end;
-};
+} @declare;
message AudioMute {
uint8 mute;
-};
+} @declare;
channel PlaybackChannel : BaseChannel {
server:
message {
uint32 time;
uint8 data[] @as_ptr(data_size);
- } @ctype(SpiceMsgPlaybackPacket) data = 101;
+ } @ctype(SpiceMsgPlaybackPacket) @declare data = 101;
message {
uint32 time;
audio_data_mode mode;
uint8 data[] @as_ptr(data_size);
- } mode;
+ } @declare mode;
message {
uint32 channels;
audio_fmt format;
uint32 frequency;
uint32 time;
- } start;
+ } @declare start;
Empty stop;
AudioVolume volume;
@@ -1204,7 +1204,7 @@ channel PlaybackChannel : BaseChannel {
message {
uint32 latency_ms;
- } latency;
+ } @declare latency;
};
channel RecordChannel : BaseChannel {
@@ -1213,7 +1213,7 @@ channel RecordChannel : BaseChannel {
uint32 channels;
audio_fmt format;
uint32 frequency;
- } start = 101;
+ } @declare start = 101;
Empty stop;
AudioVolume volume;
@@ -1222,17 +1222,17 @@ channel RecordChannel : BaseChannel {
message {
uint32 time;
uint8 data[] @nomarshal @as_ptr(data_size);
- } @ctype(SpiceMsgcRecordPacket) data = 101;
+ } @ctype(SpiceMsgcPlaybackPacket) @declare data = 101;
message {
uint32 time;
audio_data_mode mode;
uint8 data[] @as_ptr(data_size);
- } mode;
+ } @ctype(SpiceMsgPlaybackMode) @declare mode;
message {
uint32 time;
- } start_mark;
+ } @declare start_mark;
};
channel TunnelChannel {
@@ -1338,16 +1338,16 @@ channel PortChannel : SpicevmcChannel {
client:
message {
uint8 event;
- } event = 201;
+ } @declare event = 201;
server:
message {
uint32 name_size;
uint8 *name[name_size] @zero_terminated @marshall @nonnull;
uint8 opened;
- } init = 201;
+ } @declare init = 201;
message {
uint8 event;
- } event;
+ } @declare event;
};
channel WebDAVChannel : PortChannel {
--
2.20.1
More information about the Spice-devel
mailing list