From nobody Fri May 17 09:01:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1627418686; cv=none; d=zohomail.com; s=zohoarc; b=jt21l/pTlDW8f+sSH6LrC7hbW/pdRbt5zC0XsSTRzKvPhZnKbLcYg1EWRB0B75fEdjgyVOTQqT0s5abhRmEu/SXhARkmdu4vbr5Ou1gICUTnAdxYrTbKkf8kjk3hl/OjuItfsRWY7w04x5fDWQS6CD6i1qSgHAO8oTPncQYLaz0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1627418686; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9d6gfoZxYgBNbt9fSr3gTvhM0n8xYZyWqIyN0lRy3ek=; b=Rd2oPgBQvGtQQsPpyBtj1C4k3u5eG/Sa7lyD05kOU4ypEnydEX7vLxslV/VOD7apD8RAPWabpLr5Hx8Qz0j/V1TupnMILnQ3RxnsylBpIm5rJuMS6Ge3VFNrN23zn3cfJ7TsCLPrClBomCujJw3rTKckqOiydiaMdblwtJALPdQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1627418686905776.3725359556489; Tue, 27 Jul 2021 13:44:46 -0700 (PDT) Received: from localhost ([::1]:49616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m8TwT-0002qr-L7 for importer@patchew.org; Tue, 27 Jul 2021 16:44:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47890) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8TtC-00064P-En for qemu-devel@nongnu.org; Tue, 27 Jul 2021 16:41:23 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:43801) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m8Tt7-00054q-SX for qemu-devel@nongnu.org; Tue, 27 Jul 2021 16:41:22 -0400 Received: by mail-wr1-x42d.google.com with SMTP id h14so8717342wrx.10 for ; Tue, 27 Jul 2021 13:41:17 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id h16sm4276302wre.52.2021.07.27.13.41.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 13:41:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9d6gfoZxYgBNbt9fSr3gTvhM0n8xYZyWqIyN0lRy3ek=; b=t/6VRPAAcRCsRCcppAnE2K1fKnyaZ6bfhrZOTY0IzJKTulfoJAwX0Otpp8STZ9qX6+ i+w4It7jGNFxxMEUjoYUTCyxUzUUkkGSQXYymb5oYLO6g42ZOa4UDj7FyDuLTOrjBjW4 SFdv/MSXVxkJFoQTKV4HQufDIQvcr+0wShUFMlYeFSz6xs+RL/gthen+JiZqj62fFtGo vpt1/9rHemtfuqnIqPXzbm3gqj1ua69p6jT9oivrgSiuj0PvIz4iXraGNCdiiIgaTGkG 9V4Yq5oRC+etxj7Be03gOmONGE+KieMvHDdv4t8P//V4wdCltYsQs+WIEaETGBtZjo3z itfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9d6gfoZxYgBNbt9fSr3gTvhM0n8xYZyWqIyN0lRy3ek=; b=sBVTvY1Fd8OgMQzYAvDo3vfGjBsWadUpx9j1ijPIgfVOvvUPBGEKkAiCCNQAz95zaV euYN9BHl42hpxjXdwWgvJD8yu+rFFb53tM4MpzP37AfMMyxGFWfU0/BghsQT9Lid+bhx sJUFrqXuP1N5AZ+RiPfdE9MR7QYz2PjHr3aDhcJrU8yQ2/WrrdLRb5/QXZ+n2lIn/Iao KnUZdjr/H3uLUZli9B8VNJ62FPYeSRRNGcqZ5A+WsBXfvU16h1grruEqcq01AgWWkTBA YAsEUEXyeRBSFQdk9a2KMA277fseRMgWuIm6xr90gSXl0s51FB4y/Hr9GAAi4QIjUFnr +kTw== X-Gm-Message-State: AOAM531Ojh4KqvgQPzbAALzkzQ2fxlZH0gx+9jrjnj0TFS4nwbTpwqmj eKMQZNJMc+WlvvOSbtrpd7z468Ap1aJ12A== X-Google-Smtp-Source: ABdhPJxtGbSerCJwVctcQtgodckSxoq5hNbmMvnOKNKR9T0r2/hxGeHS26BQ5kq90UqN5jSVgD/WJw== X-Received: by 2002:adf:e409:: with SMTP id g9mr27813342wrm.66.1627418475751; Tue, 27 Jul 2021 13:41:15 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 1/3] docs: Move the protocol part of barrier.txt into interop Date: Tue, 27 Jul 2021 21:41:10 +0100 Message-Id: <20210727204112.12579-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210727204112.12579-1-peter.maydell@linaro.org> References: <20210727204112.12579-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1627418687693100001 Content-Type: text/plain; charset="utf-8" Most of docs/barrier.txt is describing the protocol implemented by the input-barrier device. Move this into the interop section of the manual, and rstify it. Signed-off-by: Peter Maydell Reviewed-by: Laurent Vivier Reviewed-by: Paolo Bonzini --- docs/barrier.txt | 318 ----------------------------- docs/interop/barrier.rst | 426 +++++++++++++++++++++++++++++++++++++++ docs/interop/index.rst | 1 + 3 files changed, 427 insertions(+), 318 deletions(-) create mode 100644 docs/interop/barrier.rst diff --git a/docs/barrier.txt b/docs/barrier.txt index b21d15015d9..376d0b2d709 100644 --- a/docs/barrier.txt +++ b/docs/barrier.txt @@ -45,324 +45,6 @@ =20 (qemu) object_del barrier0 (qemu) object_add input-barrier,id=3Dbarrier0,name=3DVM-1 - -* Message format - - Message format between the server and client is in two parts: - - 1- the payload length is a 32bit integer in network endianness, - 2- the payload - - The payload starts with a 4byte string (without NUL) which is the - command. The first command between the server and the client - is the only command not encoded on 4 bytes ("Barrier"). - The remaining part of the payload is decoded according to the command. - -* Protocol Description (from barrier/src/lib/barrier/protocol_types.h) - - - barrierCmdHello "Barrier" - - Direction: server -> client - Parameters: { int16_t minor, int16_t major } - Description: - - Say hello to client - minor =3D protocol major version number supported by server - major =3D protocol minor version number supported by server - - - barrierCmdHelloBack "Barrier" - - Direction: client ->server - Parameters: { int16_t minor, int16_t major, char *name} - Description: - - Respond to hello from server - minor =3D protocol major version number supported by client - major =3D protocol minor version number supported by client - name =3D client name - - - barrierCmdDInfo "DINF" - - Direction: client ->server - Parameters: { int16_t x_origin, int16_t y_origin, int16_t width, int= 16_t height, int16_t x, int16_t y} - Description: - - The client screen must send this message in response to the - barrierCmdQInfo message. It must also send this message when the - screen's resolution changes. In this case, the client screen sh= ould - ignore any barrierCmdDMouseMove messages until it receives a - barrierCmdCInfoAck in order to prevent attempts to move the mous= e off - the new screen area. - - - barrierCmdCNoop "CNOP" - - Direction: client -> server - Parameters: None - Description: - - No operation - - - barrierCmdCClose "CBYE" - - Direction: server -> client - Parameters: None - Description: - - Close connection - - - barrierCmdCEnter "CINN" - - Direction: server -> client - Parameters: { int16_t x, int16_t y, int32_t seq, int16_t modifier } - Description: - - Enter screen. - x,y =3D entering screen absolute coordinates - seq =3D sequence number, which is used to order messages be= tween - screens. the secondary screen must return this number - with some messages - modifier =3D modifier key mask. this will have bits set for each - toggle modifier key that is activated on entry to the - screen. the secondary screen should adjust its toggle - modifiers to reflect that state. - - - barrierCmdCLeave "COUT" - - Direction: server -> client - Parameters: None - Description: - - Leaving screen. the secondary screen should send clipboard data= in - response to this message for those clipboards that it has grabbed - (i.e. has sent a barrierCmdCClipboard for and has not received a - barrierCmdCClipboard for with a greater sequence number) and that - were grabbed or have changed since the last leave. - - - barrierCmdCClipboard "CCLP" - - Direction: server -> client - Parameters: { int8_t id, int32_t seq } - Description: - - Grab clipboard. Sent by screen when some other app on that screen - grabs a clipboard. - id =3D the clipboard identifier - seq =3D sequence number. Client must use the sequence number pas= sed in - the most recent barrierCmdCEnter. the server always sends= 0. - - - barrierCmdCScreenSaver "CSEC" - - Direction: server -> client - Parameters: { int8_t started } - Description: - - Screensaver change. - started =3D Screensaver on primary has started (1) or closed (0) - - - barrierCmdCResetOptions "CROP" - - Direction: server -> client - Parameters: None - Description: - - Reset options. Client should reset all of its options to their - defaults. - - - barrierCmdCInfoAck "CIAK" - - Direction: server -> client - Parameters: None - Description: - - Resolution change acknowledgment. Sent by server in response to a - client screen's barrierCmdDInfo. This is sent for every - barrierCmdDInfo, whether or not the server had sent a barrierCmd= QInfo. - - - barrierCmdCKeepAlive "CALV" - - Direction: server -> client - Parameters: None - Description: - - Keep connection alive. Sent by the server periodically to verify - that connections are still up and running. clients must reply in - kind on receipt. if the server gets an error sending the messag= e or - does not receive a reply within a reasonable time then the server - disconnects the client. if the client doesn't receive these (or= any - message) periodically then it should disconnect from the server.= the - appropriate interval is defined by an option. - - - barrierCmdDKeyDown "DKDN" - - Direction: server -> client - Parameters: { int16_t keyid, int16_t modifier [,int16_t button] } - Description: - - Key pressed. - keyid =3D X11 key id - modified =3D modified mask - button =3D X11 Xkb keycode (optional) - - - barrierCmdDKeyRepeat "DKRP" - - Direction: server -> client - Parameters: { int16_t keyid, int16_t modifier, int16_t repeat [,int1= 6_t button] } - Description: - - Key auto-repeat. - keyid =3D X11 key id - modified =3D modified mask - repeat =3D number of repeats - button =3D X11 Xkb keycode (optional) - - - barrierCmdDKeyUp "DKUP" - - Direction: server -> client - Parameters: { int16_t keyid, int16_t modifier [,int16_t button] } - Description: - - Key released. - keyid =3D X11 key id - modified =3D modified mask - button =3D X11 Xkb keycode (optional) - - - barrierCmdDMouseDown "DMDN" - - Direction: server -> client - Parameters: { int8_t button } - Description: - - Mouse button pressed. - button =3D button id - - - barrierCmdDMouseUp "DMUP" - - Direction: server -> client - Parameters: { int8_t button } - Description: - - Mouse button release. - button =3D button id - - - barrierCmdDMouseMove "DMMV" - - Direction: server -> client - Parameters: { int16_t x, int16_t y } - Description: - - Absolute mouse moved. - x,y =3D absolute screen coordinates - - - barrierCmdDMouseRelMove "DMRM" - - Direction: server -> client - Parameters: { int16_t x, int16_t y } - Description: - - Relative mouse moved. - x,y =3D r relative screen coordinates - - - barrierCmdDMouseWheel "DMWM" - - Direction: server -> client - Parameters: { int16_t x , int16_t y } or { int16_t y } - Description: - - Mouse scroll. The delta should be +120 for one tick forward (away - from the user) or right and -120 for one tick backward (toward t= he - user) or left. - x =3D x delta - y =3D y delta - - - barrierCmdDClipboard "DCLP" - - Direction: server -> client - Parameters: { int8_t id, int32_t seq, int8_t mark, char *data } - Description: - - Clipboard data. - id =3D clipboard id - seq =3D sequence number. The sequence number is 0 when sent by t= he - server. Client screens should use the/ sequence number fr= om - the most recent barrierCmdCEnter. - - - barrierCmdDSetOptions "DSOP" - - Direction: server -> client - Parameters: { int32 t nb, { int32_t id, int32_t val }[] } - Description: - - Set options. Client should set the given option/value pairs. - nb =3D numbers of { id, val } entries - id =3D option id - val =3D option new value - - - barrierCmdDFileTransfer "DFTR" - - Direction: server -> client - Parameters: { int8_t mark, char *content } - Description: - - Transfer file data. - mark =3D 0 means the content followed is the file size - 1 means the content followed is the chunk data - 2 means the file transfer is finished - - - barrierCmdDDragInfo "DDRG" int16_t char * - - Direction: server -> client - Parameters: { int16_t nb, char *content } - Description: - - Drag information. - nb =3D number of dragging objects - content =3D object's directory - - - barrierCmdQInfo "QINF" - - Direction: server -> client - Parameters: None - Description: - - Query screen info - Client should reply with a barrierCmdDInfo - - - barrierCmdEIncompatible "EICV" - - Direction: server -> client - Parameters: { int16_t nb, major *minor } - Description: - - Incompatible version. - major =3D major version - minor =3D minor version - - - barrierCmdEBusy "EBSY" - - Direction: server -> client - Parameters: None - Description: - - Name provided when connecting is already in use. - - - barrierCmdEUnknown "EUNK" - - Direction: server -> client - Parameters: None - Description: - - Unknown client. Name provided when connecting is not in primary's - screen configuration map. - - - barrierCmdEBad "EBAD" - - Direction: server -> client - Parameters: None - Description: - - Protocol violation. Server should disconnect after sending this - message. - * TO DO =20 - Enable SSL diff --git a/docs/interop/barrier.rst b/docs/interop/barrier.rst new file mode 100644 index 00000000000..055f2c1aef3 --- /dev/null +++ b/docs/interop/barrier.rst @@ -0,0 +1,426 @@ +Barrier client protocol +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +QEMU's ``input-barrier`` device implements the client end of +the KVM (Keyboard-Video-Mouse) software +`Barrier `__. + +This document briefly describes the protocol as we implement it. + +Message format +-------------- + +Message format between the server and client is in two parts: + +#. the payload length, a 32bit integer in network endianness +#. the payload + +The payload starts with a 4byte string (without NUL) which is the +command. The first command between the server and the client +is the only command not encoded on 4 bytes ("Barrier"). +The remaining part of the payload is decoded according to the command. + +Protocol Description +-------------------- + +This comes from ``barrier/src/lib/barrier/protocol_types.h``. + +barrierCmdHello "Barrier" +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t minor, int16_t major }`` +Description: + Say hello to client + + ``minor`` =3D protocol major version number supported by server + + ``major`` =3D protocol minor version number supported by server + +barrierCmdHelloBack "Barrier" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + client ->server +Parameters: + ``{ int16_t minor, int16_t major, char *name}`` +Description: + Respond to hello from server + + ``minor`` =3D protocol major version number supported by client + + ``major`` =3D protocol minor version number supported by client + + ``name`` =3D client name + +barrierCmdDInfo "DINF" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + client ->server +Parameters: + ``{ int16_t x_origin, int16_t y_origin, int16_t width, int16_t height, i= nt16_t x, int16_t y}`` +Description: + The client screen must send this message in response to the + barrierCmdQInfo message. It must also send this message when the + screen's resolution changes. In this case, the client screen should + ignore any barrierCmdDMouseMove messages until it receives a + barrierCmdCInfoAck in order to prevent attempts to move the mouse off + the new screen area. + +barrierCmdCNoop "CNOP" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + client -> server +Parameters: + None +Description: + No operation + +barrierCmdCClose "CBYE" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Close connection + +barrierCmdCEnter "CINN" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t x, int16_t y, int32_t seq, int16_t modifier }`` +Description: + Enter screen. + + ``x``, ``y`` =3D entering screen absolute coordinates + + ``seq`` =3D sequence number, which is used to order messages between + screens. the secondary screen must return this number + with some messages + + ``modifier`` =3D modifier key mask. this will have bits set for each + toggle modifier key that is activated on entry to the + screen. the secondary screen should adjust its toggle + modifiers to reflect that state. + +barrierCmdCLeave "COUT" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Leaving screen. the secondary screen should send clipboard data in + response to this message for those clipboards that it has grabbed + (i.e. has sent a barrierCmdCClipboard for and has not received a + barrierCmdCClipboard for with a greater sequence number) and that + were grabbed or have changed since the last leave. + +barrierCmdCClipboard "CCLP" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int8_t id, int32_t seq }`` +Description: + Grab clipboard. Sent by screen when some other app on that screen + grabs a clipboard. + + ``id`` =3D the clipboard identifier + + ``seq`` =3D sequence number. Client must use the sequence number passed = in + the most recent barrierCmdCEnter. the server always sends 0. + +barrierCmdCScreenSaver "CSEC" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int8_t started }`` +Description: + Screensaver change. + + ``started`` =3D Screensaver on primary has started (1) or closed (0) + +barrierCmdCResetOptions "CROP" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Reset options. Client should reset all of its options to their + defaults. + +barrierCmdCInfoAck "CIAK" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Resolution change acknowledgment. Sent by server in response to a + client screen's barrierCmdDInfo. This is sent for every + barrierCmdDInfo, whether or not the server had sent a barrierCmdQInfo. + +barrierCmdCKeepAlive "CALV" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Keep connection alive. Sent by the server periodically to verify + that connections are still up and running. clients must reply in + kind on receipt. if the server gets an error sending the message or + does not receive a reply within a reasonable time then the server + disconnects the client. if the client doesn't receive these (or any + message) periodically then it should disconnect from the server. the + appropriate interval is defined by an option. + +barrierCmdDKeyDown "DKDN" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t keyid, int16_t modifier [,int16_t button] }`` +Description: + Key pressed. + + ``keyid`` =3D X11 key id + + ``modified`` =3D modified mask + + ``button`` =3D X11 Xkb keycode (optional) + +barrierCmdDKeyRepeat "DKRP" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t keyid, int16_t modifier, int16_t repeat [,int16_t button] }`` +Description: + Key auto-repeat. + + ``keyid`` =3D X11 key id + + ``modified`` =3D modified mask + + ``repeat`` =3D number of repeats + + ``button`` =3D X11 Xkb keycode (optional) + +barrierCmdDKeyUp "DKUP" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t keyid, int16_t modifier [,int16_t button] }`` +Description: + Key released. + + ``keyid`` =3D X11 key id + + ``modified`` =3D modified mask + + ``button`` =3D X11 Xkb keycode (optional) + +barrierCmdDMouseDown "DMDN" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int8_t button }`` +Description: + Mouse button pressed. + + ``button`` =3D button id + +barrierCmdDMouseUp "DMUP" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int8_t button }`` +Description: + Mouse button release. + + ``button`` =3D button id + +barrierCmdDMouseMove "DMMV" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t x, int16_t y }`` +Description: + Absolute mouse moved. + + ``x``, ``y`` =3D absolute screen coordinates + +barrierCmdDMouseRelMove "DMRM" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t x, int16_t y }`` +Description: + Relative mouse moved. + + ``x``, ``y`` =3D r relative screen coordinates + +barrierCmdDMouseWheel "DMWM" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t x , int16_t y }`` or ``{ int16_t y }`` +Description: + Mouse scroll. The delta should be +120 for one tick forward (away + from the user) or right and -120 for one tick backward (toward the + user) or left. + + ``x`` =3D x delta + + ``y`` =3D y delta + +barrierCmdDClipboard "DCLP" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int8_t id, int32_t seq, int8_t mark, char *data }`` +Description: + Clipboard data. + + ``id`` =3D clipboard id + + ``seq`` =3D sequence number. The sequence number is 0 when sent by the + server. Client screens should use the/ sequence number from + the most recent barrierCmdCEnter. + +barrierCmdDSetOptions "DSOP" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int32 t nb, { int32_t id, int32_t val }[] }`` +Description: + Set options. Client should set the given option/value pairs. + + ``nb`` =3D numbers of ``{ id, val }`` entries + + ``id`` =3D option id + + ``val`` =3D option new value + +barrierCmdDFileTransfer "DFTR" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int8_t mark, char *content }`` +Description: + Transfer file data. + + * ``mark`` =3D 0 means the content followed is the file size + * 1 means the content followed is the chunk data + * 2 means the file transfer is finished + +barrierCmdDDragInfo "DDRG" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t nb, char *content }`` +Description: + Drag information. + + ``nb`` =3D number of dragging objects + + ``content`` =3D object's directory + +barrierCmdQInfo "QINF" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Query screen info + + Client should reply with a barrierCmdDInfo + +barrierCmdEIncompatible "EICV" +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + ``{ int16_t nb, major *minor }`` +Description: + Incompatible version. + + ``major`` =3D major version + + ``minor`` =3D minor version + +barrierCmdEBusy "EBSY" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Name provided when connecting is already in use. + +barrierCmdEUnknown "EUNK" +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Unknown client. Name provided when connecting is not in primary's + screen configuration map. + +barrierCmdEBad "EBAD" +^^^^^^^^^^^^^^^^^^^^^^^ + +Direction: + server -> client +Parameters: + None +Description: + Protocol violation. Server should disconnect after sending this + message. + diff --git a/docs/interop/index.rst b/docs/interop/index.rst index b1bab81e2ee..f9801a9c202 100644 --- a/docs/interop/index.rst +++ b/docs/interop/index.rst @@ -7,6 +7,7 @@ are useful for making QEMU interoperate with other software. .. toctree:: :maxdepth: 2 =20 + barrier bitmaps dbus dbus-vmstate --=20 2.20.1 From nobody Fri May 17 09:01:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1627418578; cv=none; d=zohomail.com; s=zohoarc; b=nv5U8LSPQsU+J6Q/u2JinF69j2Z19OqrYF2i/2dbcgFltiRYDceB/tuuRA4YPnf3cbx/Riy0WtsyrjDlrFBwqOq8jjqqMIHDuUVWefK6DEwZnDSfCpyA1MQhNJ4cTkbd6ASDuUxEaFQzb+ugYpv9+VkBi7AcU9+Mnvs0Sm6sRT0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1627418578; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VcnYq3eD55Uy8c+Us62gnxQHgFPVpGFNIkhFMkhcYog=; b=PdODbbASr801gf2GmjtfRcNPs+x6usfXLW08Umv6QuWLkUzLbawy2s3DGcWYyEZxUK0z79pl3rO1dkutfRtQP2snOnXmV2Lw6Wbw1O4YynhapHsTWl6KgSj5j59RYnb2lHDGr0ugSNdMedE9ebNUdUGj1kCJ97ljAQsYBEK/sTw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1627418578709684.4475116378044; Tue, 27 Jul 2021 13:42:58 -0700 (PDT) Received: from localhost ([::1]:45032 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m8Tuj-0008EJ-Ko for importer@patchew.org; Tue, 27 Jul 2021 16:42:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47878) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8TtB-000630-3J for qemu-devel@nongnu.org; Tue, 27 Jul 2021 16:41:21 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:44653) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m8Tt7-00054s-Sz for qemu-devel@nongnu.org; Tue, 27 Jul 2021 16:41:20 -0400 Received: by mail-wr1-x42e.google.com with SMTP id z4so4792702wrv.11 for ; Tue, 27 Jul 2021 13:41:17 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id h16sm4276302wre.52.2021.07.27.13.41.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 13:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VcnYq3eD55Uy8c+Us62gnxQHgFPVpGFNIkhFMkhcYog=; b=o18IXIMahWe4d85bKA4JjiqEFVSQqmlG3xRw+KIh5FeC/Z9MiebZsKikFrZe6evVXp +wuae/ZlXQh3qL1hj+2x1Y1yC+T6/DQCdIwJ8ZGsd81smkFT41gbcMXyrufHtUbU9Ydq qKzxO09YYF0xfWYA/r3vChmY/CQT2ELTUmXSkjZWvotZhW4jjbq0cdYY8LsbM4sRNkPt nQ4xFB3HjWeLGbSllx2x5XnO+k9PjKKjOcZg3gqlbIvx89UgRXzp7z2uBEOxTflDqA/j 8tlHnQXQqTnCb86jIZqcuyRgrW8oHb7+oC1uvVqYkK28LbnCQ34ss1OqQtSArVcgGXIj MlBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VcnYq3eD55Uy8c+Us62gnxQHgFPVpGFNIkhFMkhcYog=; b=gvl+JPdyNFt5FJau3kWJamygpxxI0uSHa91x8E2NTwD5e0c/FbdoURLRichk4Hmdx1 ibtJYUPdD/hDoyLH8sw0wVpL7NrKDDsNOaeRCy2MHsUK6EjxhR18buEbiUsLkE1UElHE 62GmCy8QAJepOQ7XkOBuCZe532nk+lxLxXMyt7N1pdJ1TiTV/PeOCKF8XDVkv9IQFeMf zlovXu8O8LBNsuNn8X7RsZhOIIMQ8gvRKzs3x848SbotU9UC+s+dAJFFKctuduF6xfPJ jJv82Whp5hGwQax6einRzGfS5RJizJAyzSrHjTfX5RLxt0/u5QCgjBAPho4hTpj237l7 9YPw== X-Gm-Message-State: AOAM533pE/77xngiFMqb56seS0ztEhwjWLONkdWLajfAFvEef7gxuQd5 x1/7qgFSsDlsFL3gV1rQy0ZVGCvawKJ0Pw== X-Google-Smtp-Source: ABdhPJzxfUi0ZYCqKnpkGUYZiEwuyjnbkozX08d11/33sA6fjPLCB81Xs5Vh7vxV2i70HOc+8WmyDw== X-Received: by 2002:a5d:49c8:: with SMTP id t8mr3176104wrs.365.1627418476442; Tue, 27 Jul 2021 13:41:16 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 2/3] ui/input-barrier: Move TODOs from barrier.txt to a comment Date: Tue, 27 Jul 2021 21:41:11 +0100 Message-Id: <20210727204112.12579-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210727204112.12579-1-peter.maydell@linaro.org> References: <20210727204112.12579-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42e.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1627418580552100002 Content-Type: text/plain; charset="utf-8" docs/barrier.txt has a couple of TODO notes about things to be implemented in this device; move them into a comment in the source code. Signed-off-by: Peter Maydell Reviewed-by: Laurent Vivier Reviewed-by: Paolo Bonzini Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- docs/barrier.txt | 4 ---- ui/input-barrier.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/barrier.txt b/docs/barrier.txt index 376d0b2d709..54cb5fd8efc 100644 --- a/docs/barrier.txt +++ b/docs/barrier.txt @@ -45,8 +45,4 @@ =20 (qemu) object_del barrier0 (qemu) object_add input-barrier,id=3Dbarrier0,name=3DVM-1 -* TO DO - - - Enable SSL - - Manage SetOptions/ResetOptions commands =20 diff --git a/ui/input-barrier.c b/ui/input-barrier.c index 81b8d04ec8d..2d57ca70791 100644 --- a/ui/input-barrier.c +++ b/ui/input-barrier.c @@ -3,6 +3,11 @@ * * This work is licensed under the terms of the GNU GPL, version 2 or late= r. * See the COPYING file in the top-level directory. + * + * TODO: + * + * - Enable SSL + * - Manage SetOptions/ResetOptions commands */ =20 #include "qemu/osdep.h" --=20 2.20.1 From nobody Fri May 17 09:01:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1627418582; cv=none; d=zohomail.com; s=zohoarc; b=LIs+FYIxEynYx1aQwZSDCXSsfUohWO668PXhP2++3H6x5KiR8ibSETenbvHIXdw/rI6oFAGmn+anSTLA6a3pquj3wrRT8Iwe/Y5ldjleEUAsDSHGdc4QsFEtyI/4GRA31/cBFXJJDi2hMe54nwkbVSkmKO/d5ggSxSy+fcF4M+o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1627418582; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Xjc6qbYEkUxvCWIP95+CKztLYP2Wu1QJjbcbEUgKUfQ=; b=nsYMFv4z0ciITq4CiJkCkEcCi8JpnYupjgJ5LN5m1RXJAgartXPaDVnn9S0oTxsphG8bvxxYstkHN0kZ07gup0kpD49VXArcmT4dLVnSwtbeRkffOVsBtoDkb/qpHzI2pneR+rnl+EmCekUmKtVF+Xm/Jnwyd7OroxFD9Y3qgwk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1627418582839156.20897896840688; Tue, 27 Jul 2021 13:43:02 -0700 (PDT) Received: from localhost ([::1]:45316 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m8Tun-0008PR-Ld for importer@patchew.org; Tue, 27 Jul 2021 16:43:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8TtA-00062w-H6 for qemu-devel@nongnu.org; Tue, 27 Jul 2021 16:41:21 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:46716) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m8Tt8-00055H-Go for qemu-devel@nongnu.org; Tue, 27 Jul 2021 16:41:20 -0400 Received: by mail-wr1-x432.google.com with SMTP id c16so6824708wrp.13 for ; Tue, 27 Jul 2021 13:41:18 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id h16sm4276302wre.52.2021.07.27.13.41.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 13:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Xjc6qbYEkUxvCWIP95+CKztLYP2Wu1QJjbcbEUgKUfQ=; b=Po55Q4E/YH79msJrPO/X0jhBUaMvk0oKjJhRE+mniSwMntNq0WmN1q1aJWoX0m7UmC 1CuTqADnv8bq1pEU4TSYdyV2i0WbL+A0/zeH5kidbvde646Wv3hDv3JDrDcHpuXCmb8i qXDpdS15TnBpvkfskW2qbD0KPrlOQxhGaZvWtDcjFgcZncLNgC6w702VIGtJT/0jyxxC QanSjoLvEOIQVdm7JpT8lBpKPgVvbWSJZdqdV3OmmTmiExqGCuGku37YC+wZBafrFZL4 qf64RhAQWEkQth4AqHh2rDKTuHdZMfDsLaU/rjxEZk3ZQlSVImznWpx/Ut2J1HhGFwTv tc6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Xjc6qbYEkUxvCWIP95+CKztLYP2Wu1QJjbcbEUgKUfQ=; b=jeGujHelmWsGi67BufYVdiCHpheODMbBmEmH/L2q/RZ9uVjN4nBpPFb5g9XRgA/7gH SHVe0ceTAmfb6JzR6D0F8K2sOQyNAVHxQnMRO1n5IH/ZHAqzEmrXA7OaYqn+3L5wF0hb vD3/BEZINAxIn+MhtQEIN8pnPJE/JHfoEXUqzcjQA49SDfKhehcpCUE393SMiNDKG0pO +XDB5NbeOJ+V+6kSYKVAVal7UYE6rsE3Kr2RKrCXCG0tNzEjhV2GFjM91Mq07RFORc+g 1D3sH4tUtBox1tv4qzg409G8EuPt0MS3m5AGnpsM1CaAIX6mu/4ZrQkuH0Q32GOuNYpD F5hA== X-Gm-Message-State: AOAM533WPk/Poj5QpGGjFkSKCiZlHRbXxxuq8o5Uds/z598ZzfB+U5gN PbcLjW7MZm9dE9s6RhUL2afFnknbs2F5qw== X-Google-Smtp-Source: ABdhPJwhC5Ljuevn2ugi7qK1Rhj0S+ImZCfoAjVXmh06xmNvsmBU3oWFdaeOj+YErOXKm1tawzH1GQ== X-Received: by 2002:a5d:65c1:: with SMTP id e1mr15638488wrw.320.1627418477173; Tue, 27 Jul 2021 13:41:17 -0700 (PDT) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PATCH 3/3] docs: Move user-facing barrier docs into system manual Date: Tue, 27 Jul 2021 21:41:12 +0100 Message-Id: <20210727204112.12579-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210727204112.12579-1-peter.maydell@linaro.org> References: <20210727204112.12579-1-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1627418584867100001 Content-Type: text/plain; charset="utf-8" The remaining text in docs/barrier.txt is user-facing description of what the device is and how to use it. Move this into the system manual and rstify it. Signed-off-by: Peter Maydell Reviewed-by: Laurent Vivier Reviewed-by: Paolo Bonzini --- docs/barrier.txt | 48 ----------------------------------------- docs/system/barrier.rst | 44 +++++++++++++++++++++++++++++++++++++ docs/system/index.rst | 1 + 3 files changed, 45 insertions(+), 48 deletions(-) delete mode 100644 docs/barrier.txt create mode 100644 docs/system/barrier.rst diff --git a/docs/barrier.txt b/docs/barrier.txt deleted file mode 100644 index 54cb5fd8efc..00000000000 --- a/docs/barrier.txt +++ /dev/null @@ -1,48 +0,0 @@ - QEMU Barrier Client - - -* About - - Barrier is a KVM (Keyboard-Video-Mouse) software forked from Symless's - synergy 1.9 codebase. - - See https://github.com/debauchee/barrier - -* QEMU usage - - Generally, mouse and keyboard are grabbed through the QEMU video - interface emulation. - - But when we want to use a video graphic adapter via a PCI passthrough - there is no way to provide the keyboard and mouse inputs to the VM - except by plugging a second set of mouse and keyboard to the host - or by installing a KVM software in the guest OS. - - The QEMU Barrier client avoids this by implementing directly the Barri= er - protocol into QEMU. - - This protocol is enabled by adding an input-barrier object to QEMU. - - Syntax: input-barrier,id=3D,name=3D - [,server=3D][,port=3D] - [,x-origin=3D][,y-origin=3D] - [,width=3D][,height=3D] - - The object can be added on the QEMU command line, for instance with: - - ... -object input-barrier,id=3Dbarrier0,name=3DVM-1 ... - - where VM-1 is the name the display configured int the Barrier server - on the host providing the mouse and the keyboard events. - - by default is "localhost", port is 24800, - and are set to 0, and to - 1920 and 1080. - - If Barrier server is stopped QEMU needs to be reconnected manually, - by removing and re-adding the input-barrier object, for instance - with the help of the HMP monitor: - - (qemu) object_del barrier0 - (qemu) object_add input-barrier,id=3Dbarrier0,name=3DVM-1 - diff --git a/docs/system/barrier.rst b/docs/system/barrier.rst new file mode 100644 index 00000000000..a15742b5bc9 --- /dev/null +++ b/docs/system/barrier.rst @@ -0,0 +1,44 @@ +QEMU Barrier Client +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Generally, mouse and keyboard are grabbed through the QEMU video +interface emulation. + +But when we want to use a video graphic adapter via a PCI passthrough +there is no way to provide the keyboard and mouse inputs to the VM +except by plugging a second set of mouse and keyboard to the host +or by installing a KVM software in the guest OS. + +The QEMU Barrier client avoids this by implementing directly the Barrier +protocol into QEMU. + +`Barrier `__ +is a KVM (Keyboard-Video-Mouse) software forked from Symless's +synergy 1.9 codebase. + +This protocol is enabled by adding an input-barrier object to QEMU. + +Syntax:: + + input-barrier,id=3D,name=3D + [,server=3D][,port=3D] + [,x-origin=3D][,y-origin=3D] + [,width=3D][,height=3D] + +The object can be added on the QEMU command line, for instance with:: + + -object input-barrier,id=3Dbarrier0,name=3DVM-1 + +where VM-1 is the name the display configured int the Barrier server +on the host providing the mouse and the keyboard events. + +by default ```` is ``localhost``, +```` is ``24800``, ```` and ```` are set to ``0`= `, +```` and ```` to ``1920`` and ``1080``. + +If Barrier server is stopped QEMU needs to be reconnected manually, +by removing and re-adding the input-barrier object, for instance +with the help of the HMP monitor:: + + (qemu) object_del barrier0 + (qemu) object_add input-barrier,id=3Dbarrier0,name=3DVM-1 diff --git a/docs/system/index.rst b/docs/system/index.rst index 650409d1566..7b9276c05f0 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -20,6 +20,7 @@ or Hypervisor.Framework. linuxboot generic-loader guest-loader + barrier vnc-security tls secrets --=20 2.20.1