]> git.proxmox.com Git - mirror_qemu.git/blame - ui/input-barrier.h
iotests: Test two stream jobs in a single iothread
[mirror_qemu.git] / ui / input-barrier.h
CommitLineData
6105683d
LV
1/*
2 * SPDX-License-Identifier: GPL-2.0-or-later
3 *
4 * This work is licensed under the terms of the GNU GPL, version 2 or later.
5 * See the COPYING file in the top-level directory.
6 */
7
8#ifndef UI_INPUT_BARRIER_H
9#define UI_INPUT_BARRIER_H
10
11/* Barrier protocol */
12#define BARRIER_VERSION_MAJOR 1
13#define BARRIER_VERSION_MINOR 6
14
15enum barrierCmd {
16 barrierCmdCNoop,
17 barrierCmdCClose,
18 barrierCmdCEnter,
19 barrierCmdCLeave,
20 barrierCmdCClipboard,
21 barrierCmdCScreenSaver,
22 barrierCmdCResetOptions,
23 barrierCmdCInfoAck,
24 barrierCmdCKeepAlive,
25 barrierCmdDKeyDown,
26 barrierCmdDKeyRepeat,
27 barrierCmdDKeyUp,
28 barrierCmdDMouseDown,
29 barrierCmdDMouseUp,
30 barrierCmdDMouseMove,
31 barrierCmdDMouseRelMove,
32 barrierCmdDMouseWheel,
33 barrierCmdDClipboard,
34 barrierCmdDInfo,
35 barrierCmdDSetOptions,
36 barrierCmdDFileTransfer,
37 barrierCmdDDragInfo,
38 barrierCmdQInfo,
39 barrierCmdEIncompatible,
40 barrierCmdEBusy,
41 barrierCmdEUnknown,
42 barrierCmdEBad,
43 /* connection sequence */
44 barrierCmdHello,
45 barrierCmdHelloBack,
46};
47
48enum {
49 barrierButtonNone,
50 barrierButtonLeft,
51 barrierButtonMiddle,
52 barrierButtonRight,
53 barrierButtonExtra0
54};
55
56struct barrierVersion {
57 int16_t major;
58 int16_t minor;
59};
60
61struct barrierMouseButton {
62 int8_t buttonid;
63};
64
65struct barrierEnter {
66 int16_t x;
67 int16_t y;
68 int32_t seqn;
69 int16_t modifier;
70};
71
72struct barrierMousePos {
73 int16_t x;
74 int16_t y;
75};
76
77struct barrierKey {
78 int16_t keyid;
79 int16_t modifier;
80 int16_t button;
81};
82
83struct barrierRepeat {
84 int16_t keyid;
85 int16_t modifier;
86 int16_t repeat;
87 int16_t button;
88};
89
90#define BARRIER_MAX_OPTIONS 32
91struct barrierSet {
92 int nb;
93 struct {
94 int id;
95 char nul;
96 int value;
97 } option[BARRIER_MAX_OPTIONS];
98};
99
100struct barrierMsg {
101 enum barrierCmd cmd;
102 union {
103 struct barrierVersion version;
104 struct barrierMouseButton mousebutton;
105 struct barrierMousePos mousepos;
106 struct barrierEnter enter;
107 struct barrierKey key;
108 struct barrierRepeat repeat;
109 struct barrierSet set;
110 };
111};
112#endif