diff options
Diffstat (limited to 'proto')
-rw-r--r-- | proto/xcb-proto/autogen.sh | 11 | ||||
-rw-r--r-- | proto/xcb-proto/configure.ac | 2 | ||||
-rw-r--r-- | proto/xcb-proto/src/bigreq.xml | 14 | ||||
-rw-r--r-- | proto/xcb-proto/src/composite.xml | 122 | ||||
-rw-r--r-- | proto/xcb-proto/src/damage.xml | 106 | ||||
-rw-r--r-- | proto/xcb-proto/src/dpms.xml | 19 | ||||
-rw-r--r-- | proto/xcb-proto/src/dri3.xml | 14 | ||||
-rw-r--r-- | proto/xcb-proto/src/present.xml | 30 | ||||
-rw-r--r-- | proto/xcb-proto/src/screensaver.xml | 30 | ||||
-rw-r--r-- | proto/xcb-proto/src/shm.xml | 214 | ||||
-rw-r--r-- | proto/xcb-proto/src/xfixes.xml | 25 |
11 files changed, 563 insertions, 24 deletions
diff --git a/proto/xcb-proto/autogen.sh b/proto/xcb-proto/autogen.sh index fc34bd55c..72cba586c 100644 --- a/proto/xcb-proto/autogen.sh +++ b/proto/xcb-proto/autogen.sh @@ -1,14 +1,17 @@ #! /bin/sh -srcdir=`dirname $0` +srcdir=`dirname "$0"` test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` -cd $srcdir +cd "$srcdir" autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? +cd "$ORIGDIR" || exit $? + +git config --local --get format.subjectPrefix >/dev/null 2>&1 || + git config --local format.subjectPrefix "PATCH xcbproto" if test -z "$NOCONFIGURE"; then - $srcdir/configure "$@" + exec "$srcdir"/configure "$@" fi diff --git a/proto/xcb-proto/configure.ac b/proto/xcb-proto/configure.ac index 27a85da30..60a1b783e 100644 --- a/proto/xcb-proto/configure.ac +++ b/proto/xcb-proto/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ(2.57) AC_INIT([XCB Proto], - 1.15.2, + 1.17.0, [xcb@lists.freedesktop.org]) AC_CONFIG_SRCDIR([xcb-proto.pc.in]) AM_INIT_AUTOMAKE([foreign dist-xz]) diff --git a/proto/xcb-proto/src/bigreq.xml b/proto/xcb-proto/src/bigreq.xml index 3cca2f77f..ddd1e210e 100644 --- a/proto/xcb-proto/src/bigreq.xml +++ b/proto/xcb-proto/src/bigreq.xml @@ -33,6 +33,20 @@ authorization from the authors. <reply> <pad bytes="1" /> <field type="CARD32" name="maximum_request_length" /> + <doc> + <field name="maximum_request_length"> +The maximum length of requests supported by the server, in 4-byte units. + </field> + </doc> </reply> + <doc> + <brief>Enable the BIG-REQUESTS extension</brief> + <description> +This enables the BIG-REQUESTS extension, which allows for requests larger than +262140 bytes in length. When enabled, if the 16-bit length field is zero, it +is immediately followed by a 32-bit length field specifying the length of the +request in 4-byte units. + </description> + </doc> </request> </xcb> diff --git a/proto/xcb-proto/src/composite.xml b/proto/xcb-proto/src/composite.xml index 86de14629..dcbf9a6d8 100644 --- a/proto/xcb-proto/src/composite.xml +++ b/proto/xcb-proto/src/composite.xml @@ -23,6 +23,48 @@ Except as contained in this notice, the names of the authors or their institutions shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the authors. + +Copyright (c) 2006, Oracle and/or its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +Copyright © 2003 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Keith Packard not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Keith Packard makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + --> <!-- This file describes version 0.3 of COMPOSITE. --> <xcb header="composite" extension-xname="Composite" extension-name="Composite" @@ -44,31 +86,111 @@ authorization from the authors. <field type="CARD32" name="major_version" /> <field type="CARD32" name="minor_version" /> <pad bytes="16" /> + <doc> + <brief>The negotiated version of Composite</brief> + <description> +This indicates the version of Composite chosen by the server. It will always be +less than or equal to the version offered by the client. + </description> + <field name="major_version">The major version chosen by the server.</field> + <field name="minor_version">The minor version chosen by the server.</field> + </doc> </reply> + <doc> + <brief>Negotiate the version of Composite</brief> + <description> +This negotiates the version of the Composite extension. It must be precede all +other requests using Composite. Failure to do so will cause a BadRequest error. + </description> + <field name="client_major_version">The major version supported by the client.</field> + <field name="client_minor_version">The minor version supported by the client.</field> + </doc> </request> <request name="RedirectWindow" opcode="1"> <field type="WINDOW" name="window" /> <field type="CARD8" name="update" enum="Redirect" /> <pad bytes="3" /> + <doc> + <brief>Redirect the hierarchy starting at "window" to off-screen storage.</brief> + <description> + The hierarchy starting at 'window' is directed to off-screen + storage. When all clients enabling redirection terminate, + the redirection will automatically be disabled. + + The root window may not be redirected. Doing so results in a Match + error. + </description> + <field name="window">The root of the hierarchy to redirect to off-screen storage.</field> + <field name="update"> + Whether contents are automatically mirrored to the parent window. If one client + already specifies an update type of Manual, any attempt by another to specify a + mode of Manual so will result in an Access error. + </field> + </doc> </request> <request name="RedirectSubwindows" opcode="2"> <field type="WINDOW" name="window" /> <field type="CARD8" name="update" enum="Redirect" /> <pad bytes="3" /> + <doc> + <brief>Redirect all current and future children of ‘window’</brief> + <description> + Hierarchies starting at all current and future children of window + will be redirected as in RedirectWindow. If update is Manual, + then painting of the window background during window manipulation + and ClearArea requests is inhibited. + </description> + <field name="window">The root of the hierarchy to redirect to off-screen storage.</field> + <field name="update"> + Whether contents are automatically mirrored to the parent window. If one client + already specifies an update type of Manual, any attempt by another to specify a + mode of Manual so will result in an Access error. + </field> + </doc> </request> <request name="UnredirectWindow" opcode="3"> <field type="WINDOW" name="window" /> <field type="CARD8" name="update" enum="Redirect" /> <pad bytes="3" /> + <doc> + <brief>Terminate redirection of the specified window.</brief> + <description> + Redirection of the specified window will be terminated. This cannot be + used if the window was redirected with RedirectSubwindows. + </description> + <field name="window"> + The window to terminate redirection of. Must be redirected by the + current client, or a Value error results. + </field> + <field name="update"> + The update type passed to RedirectWindows. If this does not match the + previously requested update type, a Value error results. + </field> + </doc> </request> <request name="UnredirectSubwindows" opcode="4"> <field type="WINDOW" name="window" /> <field type="CARD8" name="update" enum="Redirect" /> <pad bytes="3" /> + <doc> + <brief>Terminate redirection of the specified window’s children</brief> + <description> + Redirection of all children of window will be terminated. + </description> + <field name="window"> + The window to terminate redirection of. Must have previously been + selected for sub-redirection by the current client, or a Value error + results. + </field> + <field name="update"> + The update type passed to RedirectSubWindows. If this does not match + the previously requested update type, a Value error results. + </field> + </doc> </request> <request name="CreateRegionFromBorderClip" opcode="5"> diff --git a/proto/xcb-proto/src/damage.xml b/proto/xcb-proto/src/damage.xml index c04721d1e..930090a36 100644 --- a/proto/xcb-proto/src/damage.xml +++ b/proto/xcb-proto/src/damage.xml @@ -51,7 +51,26 @@ authorization from the authors. <field type="CARD32" name="major_version" /> <field type="CARD32" name="minor_version" /> <pad bytes="16" /> + <doc> + <brief>The negotiated version of the DAMAGE extension</brief> + <description> +This indicates the version of the DAMAGE extension chosen by the server. +It will always be less than or equal to the version offered by the client. + </description> + <field name="major_version">The major version chosen by the server.</field> + <field name="minor_version">The minor version chosen by the server.</field> + </doc> </reply> + <doc> + <brief>Negotiate the version of the DAMAGE extension</brief> + <description> +This negotiates the version of the DAMAGE extension. It must precede any other +request using the DAMAGE extension. Failure to do so will cause a BadRequest +error for those requests. + </description> + <field name="client_major_version">The major version supported by the client.</field> + <field name="client_minor_version">The minor version supported by the client.</field> + </doc> </request> <request name="Create" opcode="1"> @@ -59,21 +78,84 @@ authorization from the authors. <field type="DRAWABLE" name="drawable" /> <field type="CARD8" name="level" enum="ReportLevel" /> <pad bytes="3" /> + <doc> + <brief>Creates a Damage object to monitor changes to a drawable.</brief> + <description><![CDATA[ +This creates a Damage object to monitor changes to a drawable, and specifies +the level of detail to be reported for changes. + +We call changes made to pixel contents of windows and pixmaps 'damage' +throughout this extension. + +Damage accumulates as drawing occurs in the drawable. Each drawing operation +'damages' one or more rectangular areas within the drawable. The rectangles +are guaranteed to include the set of pixels modified by each operation, but +may include significantly more than just those pixels. The desire is for +the damage to strike a balance between the number of rectangles reported and +the extraneous area included. A reasonable goal is for each primitive +object drawn (line, string, rectangle) to be represented as a single +rectangle and for the damage area of the operation to be the union of these +rectangles. + +The DAMAGE extension allows applications to either receive the raw +rectangles as a stream of events, or to have them partially processed within +the X server to reduce the amount of data transmitted as well as reduce the +processing latency once the repaint operation has started. + +The Damage object holds any accumulated damage region and reflects the +relationship between the drawable selected for damage notification and the +drawable for which damage is tracked. + ]]></description> + <field name="damage"><![CDATA[ +The ID with which you will refer to the new Damage object, created by +`xcb_generate_id`. + ]]></field> + <field name="drawable">The ID of the drawable to be monitored.</field> + <field name="level">The level of detail to be provided in Damage events.</field> + </doc> </request> <request name="Destroy" opcode="2"> <field type="DAMAGE" name="damage" /> + <doc> + <brief>Destroys a previously created Damage object.</brief> + <description> +This destroys a Damage object and requests the X server stop reporting +the changes it was tracking. + </description> + <field name="damage"><![CDATA[ +The ID you provided to `xcb_create_damage`. + ]]></field> + </doc> </request> <request name="Subtract" opcode="3"> <field type="DAMAGE" name="damage" /> <field type="REGION" name="repair" altenum="Region" /> <field type="REGION" name="parts" altenum="Region" /> + <doc> + <brief>Remove regions from a previously created Damage object.</brief> + <description> +This updates the regions of damage recorded in a a Damage object. +See https://www.x.org/releases/current/doc/damageproto/damageproto.txt +for details. + </description> + <field name="damage">The ID you provided to `xcb_create_damage`.</field> + </doc> </request> <request name="Add" opcode="4"> <field type="DRAWABLE" name="drawable" /> <field type="REGION" name="region" /> + <doc> + <brief>Add a region to a previously created Damage object.</brief> + <description> +This updates the regions of damage recorded in a a Damage object. +See https://www.x.org/releases/current/doc/damageproto/damageproto.txt +for details. + </description> + <field name="damage">The ID you provided to `xcb_create_damage`.</field> + </doc> </request> <event name="Notify" number="0"> @@ -83,5 +165,29 @@ authorization from the authors. <field type="TIMESTAMP" name="timestamp" /> <field type="RECTANGLE" name="area" /> <field type="RECTANGLE" name="geometry" /> + <doc> + <brief>the contents of the monitored drawable have changed</brief> + <field name="level"><![CDATA[ +The level of the damage being reported. +If the 0x80 bit is set, indicates there are subsequent Damage events +being delivered immediately as part of a larger Damage region. + ]]></field> + <field name="drawable"><![CDATA[ +The drawable for which damage is being reported. + ]]></field> + <field name="damage"><![CDATA[ +The Damage object being used to track the damage. + ]]></field> + <field name="timestamp"><![CDATA[ +Time when the event was generated (in milliseconds). + ]]></field> + <field name="area"><![CDATA[ +Damaged area of the drawable. + ]]></field> + <field name="geometry"><![CDATA[ +Total area of the drawable. + ]]></field> + <see type="request" name="Create" /> + </doc> </event> </xcb> diff --git a/proto/xcb-proto/src/dpms.xml b/proto/xcb-proto/src/dpms.xml index 55812845f..814a14ec6 100644 --- a/proto/xcb-proto/src/dpms.xml +++ b/proto/xcb-proto/src/dpms.xml @@ -26,7 +26,8 @@ sale, use or other dealings in this Software without prior written authorization from the authors. --> <xcb header="dpms" extension-xname="DPMS" extension-name="DPMS" - major-version="0" minor-version="0"> + major-version="1" minor-version="2"> + <import>xproto</import> <request name="GetVersion" opcode="0"> <field type="CARD16" name="client_major_version" /> <field type="CARD16" name="client_minor_version" /> @@ -84,4 +85,20 @@ authorization from the authors. <pad bytes="21" /> </reply> </request> + + <enum name="EventMask" > + <item name="InfoNotify"> <bit>0</bit> </item> + </enum> + + <request name="SelectInput" opcode="8"> + <field type="CARD32" name="event_mask" mask="EventMask"/> + </request> + + <event name="InfoNotify" number="0" xge="true"> + <pad bytes="2" /> + <field type="TIMESTAMP" name="timestamp"/> + <field type="CARD16" name="power_level" enum="DPMSMode" /> + <field type="BOOL" name="state" /> + <pad bytes="21"/> + </event> </xcb> diff --git a/proto/xcb-proto/src/dri3.xml b/proto/xcb-proto/src/dri3.xml index 9549fd4b3..d681aae88 100644 --- a/proto/xcb-proto/src/dri3.xml +++ b/proto/xcb-proto/src/dri3.xml @@ -23,10 +23,11 @@ OF THIS SOFTWARE. --> <xcb header="dri3" extension-xname="DRI3" extension-name="DRI3" - major-version="1" minor-version="3"> + major-version="1" minor-version="4"> <import>xproto</import> <!-- Types --> + <xidtype name="SYNCOBJ" /> <!-- Requests --> <request name="QueryVersion" opcode="0"> @@ -170,4 +171,15 @@ OF THIS SOFTWARE. <field type="CARD32" name="drmMajor" /> <field type="CARD32" name="drmMinor" /> </request> + + <!-- v1.4 --> + <request name="ImportSyncobj" opcode="10"> + <field type="SYNCOBJ" name="syncobj" /> + <field type="DRAWABLE" name="drawable" /> + <fd name="syncobj_fd" /> + </request> + + <request name="FreeSyncobj" opcode="11"> + <field type="SYNCOBJ" name="syncobj" /> + </request> </xcb> diff --git a/proto/xcb-proto/src/present.xml b/proto/xcb-proto/src/present.xml index fb06e73f0..bae445f52 100644 --- a/proto/xcb-proto/src/present.xml +++ b/proto/xcb-proto/src/present.xml @@ -23,11 +23,12 @@ OF THIS SOFTWARE. --> <xcb header="present" extension-xname="Present" extension-name="Present" - major-version="1" minor-version="2"> + major-version="1" minor-version="4"> <import>xproto</import> <import>randr</import> <import>xfixes</import> <import>sync</import> + <import>dri3</import> <!-- Types --> @@ -52,6 +53,7 @@ OF THIS SOFTWARE. <item name="Copy"><bit>1</bit></item> <item name="UST"><bit>2</bit></item> <item name="Suboptimal"><bit>3</bit></item> + <item name="AsyncMayTear"><bit>4</bit></item> </enum> <enum name="Capability"> @@ -59,6 +61,9 @@ OF THIS SOFTWARE. <item name="Async"><bit>0</bit></item> <item name="Fence"><bit>1</bit></item> <item name="UST"><bit>2</bit></item> + <item name="AsyncMayTear"><bit>3</bit></item> + <!-- PresentCapabilitySyncobj is new in version 1.4 --> + <item name="Syncobj"><bit>4</bit></item> </enum> <enum name="CompleteKind"> @@ -135,6 +140,29 @@ OF THIS SOFTWARE. </reply> </request> + <!-- PresentPixmapSynced is new in version 1.4 --> + <request name="PixmapSynced" opcode="5"> + <required_start_align align="8" /> + <field type="WINDOW" name="window" /> + <field type="PIXMAP" name="pixmap" /> + <field type="CARD32" name="serial" /> + <field type="REGION" name="valid" /> + <field type="REGION" name="update" /> + <field type="INT16" name="x_off" /> + <field type="INT16" name="y_off" /> + <field type="CRTC" name="target_crtc" /> + <field type="SYNCOBJ" name="acquire_syncobj" /> + <field type="SYNCOBJ" name="release_syncobj" /> + <field type="CARD64" name="acquire_point" /> + <field type="CARD64" name="release_point" /> + <field type="CARD32" name="options" /> + <pad bytes="4"/> + <field type="CARD64" name="target_msc" /> + <field type="CARD64" name="divisor" /> + <field type="CARD64" name="remainder" /> + <list type="Notify" name="notifies"/> + </request> + <!-- Events --> <event name="Generic" number="0"> diff --git a/proto/xcb-proto/src/screensaver.xml b/proto/xcb-proto/src/screensaver.xml index c546f9446..2c43b4dbb 100644 --- a/proto/xcb-proto/src/screensaver.xml +++ b/proto/xcb-proto/src/screensaver.xml @@ -99,63 +99,63 @@ Draft Standard Version 1.1 <switch name="value_list"> <fieldref>value_mask</fieldref> <bitcase> - <enumref ref="CW">BackPixmap</enumref> + <enumref ref="xproto:CW">BackPixmap</enumref> <field type="PIXMAP" name="background_pixmap" altenum="BackPixmap"/> </bitcase> <bitcase> - <enumref ref="CW">BackPixel</enumref> + <enumref ref="xproto:CW">BackPixel</enumref> <field type="CARD32" name="background_pixel" /> </bitcase> <bitcase> - <enumref ref="CW">BorderPixmap</enumref> + <enumref ref="xproto:CW">BorderPixmap</enumref> <field type="PIXMAP" name="border_pixmap" altenum="Pixmap"/> </bitcase> <bitcase> - <enumref ref="CW">BorderPixel</enumref> + <enumref ref="xproto:CW">BorderPixel</enumref> <field type="CARD32" name="border_pixel" /> </bitcase> <bitcase> - <enumref ref="CW">BitGravity</enumref> + <enumref ref="xproto:CW">BitGravity</enumref> <field type="CARD32" name="bit_gravity" enum="Gravity"/> </bitcase> <bitcase> - <enumref ref="CW">WinGravity</enumref> + <enumref ref="xproto:CW">WinGravity</enumref> <field type="CARD32" name="win_gravity" enum="Gravity"/> </bitcase> <bitcase> - <enumref ref="CW">BackingStore</enumref> + <enumref ref="xproto:CW">BackingStore</enumref> <field type="CARD32" name="backing_store" enum="BackingStore"/> </bitcase> <bitcase> - <enumref ref="CW">BackingPlanes</enumref> + <enumref ref="xproto:CW">BackingPlanes</enumref> <field type="CARD32" name="backing_planes" /> </bitcase> <bitcase> - <enumref ref="CW">BackingPixel</enumref> + <enumref ref="xproto:CW">BackingPixel</enumref> <field type="CARD32" name="backing_pixel" /> </bitcase> <bitcase> - <enumref ref="CW">OverrideRedirect</enumref> + <enumref ref="xproto:CW">OverrideRedirect</enumref> <field type="BOOL32" name="override_redirect" /> </bitcase> <bitcase> - <enumref ref="CW">SaveUnder</enumref> + <enumref ref="xproto:CW">SaveUnder</enumref> <field type="BOOL32" name="save_under" /> </bitcase> <bitcase> - <enumref ref="CW">EventMask</enumref> + <enumref ref="xproto:CW">EventMask</enumref> <field type="CARD32" name="event_mask" mask="EventMask"/> </bitcase> <bitcase> - <enumref ref="CW">DontPropagate</enumref> + <enumref ref="xproto:CW">DontPropagate</enumref> <field type="CARD32" name="do_not_propogate_mask" mask="EventMask"/> </bitcase> <bitcase> - <enumref ref="CW">Colormap</enumref> + <enumref ref="xproto:CW">Colormap</enumref> <field type="COLORMAP" name="colormap" altenum="Colormap"/> </bitcase> <bitcase> - <enumref ref="CW">Cursor</enumref> + <enumref ref="xproto:CW">Cursor</enumref> <field type="CURSOR" name="cursor" altenum="Cursor"/> </bitcase> </switch> diff --git a/proto/xcb-proto/src/shm.xml b/proto/xcb-proto/src/shm.xml index c2605da0e..0f93a2cd0 100644 --- a/proto/xcb-proto/src/shm.xml +++ b/proto/xcb-proto/src/shm.xml @@ -39,6 +39,29 @@ authorization from the authors. <pad bytes="1" /> <field type="SEG" name="shmseg" /> <field type="CARD32" name="offset" /> + <doc> + <brief>Report that an XCB_SHM_PUT_IMAGE request has completed</brief> + <description><![CDATA[ +This is generated by the X server to report that an XCB_SHM_PUT_IMAGE request +has been successfully processed. + ]]></description> + <field name="drawable"><![CDATA[ +The drawable used in the XCB_SHM_PUT_IMAGE request. + ]]></field> + <field name="minor_event"><![CDATA[ +The minor opcode used in the request. Always XCB_SHM_PUT_IMAGE. + ]]></field> + <field name="major_event"><![CDATA[ +The major opcode used in the request. Always the opcode of the MIT-SHM +extension. + ]]></field> + <field name="shmseg"><![CDATA[ +The shared memory segment used in the request. + ]]></field> + <field name="offset"><![CDATA[ +The offset in the shared memory segment used in the request. + ]]></field> + </doc> </event> <errorcopy name="BadSeg" number="0" ref="Value" /> @@ -52,7 +75,39 @@ authorization from the authors. <field type="CARD16" name="gid" /> <field type="CARD8" name="pixmap_format" /> <pad bytes="15" /> + <doc> + <brief>The version of the MIT-SHM extension supported by the server</brief> + <description><![CDATA[ +This contains the version of the MIT-SHM extension supported by the server, as +well as the server’s UID and GID. Clients MUST obtain the version supproted by +the server before making other requests from this extension. To prevent local +privilege escalation and local information leak security vulnerabilities, +clients MUST ensure that System V shared memory objects they use with this +extension can only be accessed by the client and the X server. If this is not +possible, the requests in this extension that use System V shared memory MUST +NOT be used. The file descriptor-passing versions provide an alternative. + ]]></description> + <field name="shared_pixmaps"><![CDATA[ +True if the server supports shared pixmaps, otherwise false. + ]]></field> + <field name="major_version"><![CDATA[ +The major version of the extension supported. + ]]></field> + <field name="minor_version"><![CDATA[ +The minor version of the extension supported. + ]]></field> + <field name="uid">The UID of the server.</field> + <field name="gid">The GID of the server.</field> + </doc> </reply> + <doc> + <brief>Query the version of the MIT-SHM extension.</brief> + <description><![CDATA[ +This is used to determine the version of the MIT-SHM extension supported by the +X server. Clients MUST NOT make other requests in this extension until a reply +to this requests indicates the X server supports them. + ]]></description> + </doc> </request> <request name="Attach" opcode="1"> @@ -60,10 +115,36 @@ authorization from the authors. <field type="CARD32" name="shmid" /> <field type="BOOL" name="read_only" /> <pad bytes="3" /> + <doc> + <brief>Attach a System V shared memory segment.</brief> + <description><![CDATA[ +Attach a System V shared memory segment to the server. This will fail unless +the server has permission to map the segment. The client may destroy the segment +as soon as it receives a XCB_SHM_COMPLETION event with the shmseg value in this +request and with the appropriate serial number. + ]]></description> + <field name="shmseg"><![CDATA[ +A shared memory segment ID created with xcb_generate_id(). + ]]></field> + <field name="shmid"><![CDATA[ +The System V shared memory segment the server should map. + ]]></field> + <field name="read_only"><![CDATA[ +True if the segment shall be mapped read only by the X11 server, otherwise false. + ]]></field> + </doc> </request> <request name="Detach" opcode="2"> <field type="SEG" name="shmseg" /> + <doc> + <brief>Destroys the specified shared memory segment.</brief> + <description><![CDATA[ +Destroys the specified shared memory segment. This will never fail unless the +segment number is incorrect. + ]]></description> + <field name="shmseg">The segment to be destroyed.</field> + </doc> </request> <request name="PutImage" opcode="3"> @@ -83,6 +164,49 @@ authorization from the authors. <pad bytes="1" /> <field type="SEG" name="shmseg" /> <field type="CARD32" name="offset" /> + <doc> + <brief>Copy data from the shared memory to the specified drawable.</brief> + <description><![CDATA[ +Copy data from the shared memory to the specified drawable. The amount of bytes +written to the destination image is always equal to the number of bytes read +from the shared memory segment. + ]]></description> + <field name="drawable">The drawable to draw to.</field> + <field name="gc">The graphics context to use.</field> + <field name="total_width">The total width of the source image.</field> + <field name="total_height">The total height of the source image.</field> + <field name="src_x">The source X coordinate of the sub-image to copy.</field> + <field name="src_y">The source Y coordinate of the sub-image to copy.</field> + <field name="src_width"><![CDATA[ +The width, in source image coordinates, of the data to copy from the source. +The X server will use this to determine the amount of data to copy. The amount +of the destination image that is overwritten is determined automatically. + ]]></field> + <field name="src_height"><![CDATA[ +The height, in source image coordinates, of the data to copy from the source. +The X server will use this to determine the amount of data to copy. The amount +of the destination image that is overwritten is determined automatically. + ]]></field> + <field name="dst_x"><![CDATA[ +The X coordinate on the destination drawable to copy to. + ]]></field> + <field name="dst_y"><![CDATA[ +The Y coordinate on the destination drawable to copy to. + ]]></field> + <field name="depth">The depth to use.</field> + <field name="format"><![CDATA[ +The format of the image being drawn. If it is XYBitmap, depth must be 1, or a +"BadMatch" error results. The foreground pixel in the GC determines the source +for the one bits in the image, and the background pixel determines the source +for the zero bits. For XYPixmap and ZPixmap, the depth must match the depth of +the drawable, or a "BadMatch" error results. + ]]></field> + <field name="send_event"><![CDATA[ +True if the server should send an XCB_SHM_COMPLETION event when the blit +completes. + ]]></field> + <field name="offset">The offset that the source image starts at.</field> + </doc> </request> <request name="GetImage" opcode="4"> @@ -100,7 +224,33 @@ authorization from the authors. <field type="CARD8" name="depth" /> <field type="VISUALID" name="visual" /> <field type="CARD32" name="size" /> + <doc> + <brief>Indicates the result of the copy.</brief> + <description><![CDATA[ +The result of the copy. + ]]></description> + <field name="depth">The depth of the source drawable.</field> + <field name="visual">The visual ID of the source drawable.</field> + <field name="size">The number of bytes copied.</field> + </doc> </reply> + <doc> + <brief>Copies data from the specified drawable to the shared memory segment.</brief> + <description><![CDATA[ +Copy data from the specified drawable to the shared memory segment. The amount +of bytes written to the destination image is always equal to the number of bytes +read from the shared memory segment. + ]]></description> + <field name="drawable">The drawable to copy the image out of.</field> + <field name="x">The X coordinate in the drawable to begin copying at.</field> + <field name="y">The Y coordinate in the drawable to begin copying at.</field> + <field name="width">The width of the image to copy.</field> + <field name="height">The height of the image to copy.</field> + <field name="plane_mask">A mask that determines which planes are used.</field> + <field name="format">The format to use for the copy (???).</field> + <field name="shmseg">The destination shared memory segment.</field> + <field name="offset">The offset in the shared memory segment to copy data to.</field> + </doc> </request> <request name="CreatePixmap" opcode="5"> @@ -112,6 +262,31 @@ authorization from the authors. <pad bytes="3" /> <field type="SEG" name="shmseg" /> <field type="CARD32" name="offset" /> + <doc> + <brief>Create a pixmap backed by shared memory.</brief> + <description> +Create a pixmap backed by shared memory. Writes to the shared memory will be +reflected in the contents of the pixmap, and writes to the pixmap will be +reflected in the contents of the shared memory. + </description> + <field name="pid">A pixmap ID created with xcb_generate_id().</field> + <field name="drawable">The drawable to create the pixmap in.</field> + <field name="width"><![CDATA[ +The width of the pixmap to create. Must be nonzero, or a Value error results. + ]]></field> + <field name="height"><![CDATA[ +The height of the pixmap to create. Must be nonzero, or a Value error results. + ]]></field> + <field name="depth"><![CDATA[ +The depth of the pixmap to create. Must be nonzero, or a Value error results. + ]]></field> + <field name="shmseg"><![CDATA[ +The shared memory segment to use to create the pixmap. + ]]></field> + <field name="offset"><![CDATA[ +The offset in the segment to create the pixmap at. + ]]></field> + </doc> </request> <request name="AttachFd" opcode="6"> @@ -119,6 +294,21 @@ authorization from the authors. <fd name="shm_fd" /> <field type="BOOL" name="read_only" /> <pad bytes="3" /> + <doc> + <brief>Create a shared memory segment</brief> + <description><![CDATA[ +Create a shared memory segment. The file descriptor will be mapped at offset +zero, and the size will be obtained using fstat(). A zero size will result in a +Value error. + ]]></description> + <field name="shmseg"><![CDATA[ +A shared memory segment ID created with xcb_generate_id(). + ]]></field> + <field name="shm_fd">The file descriptor the server should mmap().</field> + <field name="read_only"><![CDATA[ +True if the segment shall be mapped read only by the X11 server, otherwise false. + ]]></field> + </doc> </request> <request name="CreateSegment" opcode="7"> @@ -130,6 +320,30 @@ authorization from the authors. <field type="CARD8" name="nfd" /> <fd name="shm_fd" /> <pad bytes="24" /> + <doc> + <brief>The returned file descriptor.</brief> + <description><![CDATA[ +The file descriptor returned by the server. The client may call mmap() on it to +map the memory allocated by the server. + ]]></description> + <field name="nfd"><![CDATA[ +The number of file descriptors sent by the server. Will always be 1. + ]]></field> + </doc> </reply> + <doc> + <brief>Asks the server to allocate a shared memory segment.</brief> + <description><![CDATA[ +Asks the server to allocate a shared memory segment. The server’s reply will +include a file descriptor for the client to pass to mmap(). + ]]></description> + <field name="shmseg"><![CDATA[ +A shared memory segment ID created with xcb_generate_id(). + ]]></field> + <field name="size">The size of the segment to create.</field> + <field name="read_only"><![CDATA[ +True if the server should map the segment read-only; otherwise false. + ]]></field> + </doc> </request> </xcb> diff --git a/proto/xcb-proto/src/xfixes.xml b/proto/xcb-proto/src/xfixes.xml index a01cd7b0c..442bc02e1 100644 --- a/proto/xcb-proto/src/xfixes.xml +++ b/proto/xcb-proto/src/xfixes.xml @@ -365,10 +365,28 @@ authorization from the authors. <enum name="ClientDisconnectFlags"> <item name="Default"><value>0</value></item> <item name="Terminate"><bit>0</bit></item> + <doc> + <field name="Default"><![CDATA[ +The default behavior for regular clients: the X11 server won't terminate as long +as such clients are still connected, and should this client disconnect, the +server will continue running so long as other clients (that have not set +XFixesClientDisconnectFlagTerminate) are connected. + ]]></field> + <field name="Terminate"><![CDATA[ +Indicates to the X11 server that it can ignore the client and terminate itself +even though the client is still connected to the X11 server. + ]]></field> + </doc> </enum> <request name="SetClientDisconnectMode" opcode="33"> <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" /> + <doc> + <brief>Sets the disconnect mode for the client.</brief> + <field name="disconnect_mode"><![CDATA[ +The new disconnect mode. + ]]></field> + </doc> </request> <request name="GetClientDisconnectMode" opcode="34"> @@ -376,7 +394,12 @@ authorization from the authors. <pad bytes="1" /> <field type="CARD32" name="disconnect_mode" mask="ClientDisconnectFlags" /> <pad bytes="20" /> + <doc> + <brief>Gets the disconnect mode for the client.</brief> + <field name="disconnect_mode"><![CDATA[ +The current disconnect mode. + ]]></field> + </doc> </reply> </request> - </xcb> |