- May 19, 2019
-
-
Roman Gilg authored
-
- Mar 19, 2019
-
-
Roman Gilg authored
-
- Feb 17, 2019
-
-
Alan Coopersmith authored
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-
- Mar 14, 2018
-
-
Keith Packard authored
This was set to BOOL, but the protocol headers used Bool, presumably a 32-bit type. We're switching everything to CARD32 as the best option for compatibility. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Mihai Moldovan <ionic@ionic.de>
-
- Feb 28, 2018
-
-
Daniel Stone authored
This release adds support for variable-sized lists of FDs (e.g. sized by a field in the request/event), as well as several other cleanups and fixes in the core code. DRI3 has been bumped to v1.2, using the new support to support multi-planar buffers and DRM modifiers. Present has also been bumped to v1.2, adding a new token for the server to indicate to the client that it should reallocate its buffers. RandR has been updated to 1.6, adding support for DRM leases to allow clients to directly control outputs. Signed-off-by: Daniel Stone <daniels@collabora.com>
-
This flag (returned with PresentCompleteNotify event) indicates that the window could have been flipped instead of copied if the buffer format/modifier was different. Clients must indicate that they support the flag by adding option PresentOptionSuboptimal when calling PresentPixmap. v2: Add PresentOptionSuboptimal Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
-
Bumping to version 1.2, add support for: - querying formats and modifiers supported by the server - creating (and receiving) multi-planar buffers - creating (and receiving) buffers with modifiers v2: Fix alignment v3: Bump to version 1.2 rather than 1.1. The old dri3proto had a '1.1' release for non-functional changes, so we avoid that version and skip directly to 1.2. Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
-
- Dec 15, 2017
-
-
Keith Packard authored
See the description in the randrproto repository. Add lease notify event Signed-off-by: Keith Packard <keithp@keithp.com>
-
- Jun 05, 2017
-
-
Daniel Stone authored
Add a special case in ListType to support lists of file descriptors, which also requires explicit support within clients. File descriptors are not supported as children of other complex types, e.g. switch. Signed-off-by: Daniel Stone <daniels@collabora.com>
-
- May 13, 2017
-
-
Christian Linhart authored
The last item from this TODO list has been implemented by the commit "SendExtensionEvent uses eventstruct": https://cgit.freedesktop.org/xcb/proto/commit/?id=97fbba25baf241cbcda882739db423b1d36e440a Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
- Mar 11, 2017
-
-
Christian Linhart authored
Use the eventstruct element to define the SendExtensionEvent request instead of using a byte-array. This has the advantage that the structure of the data to be sent is now defined in the xml definition. This can be used by generators to make sending events safer. Such as avoiding type-casts in C. It can also be useful for protocol analyzers and tools like that because the structure of the sent events is now defined in the xml-definition. Tested-by: Christian Linhart <chris@demorecorder.com> Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
eventstruct is a new xml element that allows to use events as part of requests. This is, e.g., needed by the SendExtensionEvent request of the XINPUT extension. Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
member event_type_base in struct InputClassInfo is a CARD8. This patch replaces the type with the new typedef EventTypeBase which is defined as a CARD8. This does not alter the ABI or API for that struct because typedefs do not appear in the ABI. And C handles typedefs as aliases. So there'll be no API issues as well. The libxcb generator adds additional functions that implement an iterator over this type. This is harmless because adding code is ABI/API compatible. The purpose of this change is to add more semantic info to this member variable of this struct. This helps with xcb-based generators or automatic code-checkers and things like that. Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
Set the lenfield of a sumof expression object, so that libxcb or other generators won't need to look it up. This object is trivially available in the parser but needs a complex lookup in generators. Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
- Jan 24, 2017
-
-
Fields AuthorizationProtocolName and AuthorizationProtocolData of SetupRequest should be padded: http://www.x.org/releases/current/doc/xproto/x11protocol.html#Encoding::Connection_Setup The problem was discovered by github user pphaneuf while trying to use xgb to write his own implementation of the connection handshake. Neither xgb nor xcb actually use code generated for SetupRequest for the handshake, which is why this bug went unnoticed. https://github.com/BurntSushi/xgb/issues/24 Alessandro Arzilli. Reviewed-by: Christian Linhart <chris@demorecorder.com>
-
- Jun 04, 2016
-
-
Here is an attempt at updating the schema to add serialize attribute to pad element and required_start_align element. Not sure if I've added required_start_align element in the right place. The default case in the switch element is removed as it doesn't seem to be used, and otherwise makes the schema ambiguous. $ make check Making check in src make[1]: Entering directory '/jhbuild/x86_64-pc-cygwin/build/xcb/proto/src' make check-local make[2]: Entering directory '/jhbuild/x86_64-pc-cygwin/build/xcb/proto/src' /usr/bin/xmllint --noout --schema /jhbuild/checkout/xcb/proto/src/xcb.xsd /jhbuild/checkout/xcb/proto/src/*.xml /jhbuild/checkout/xcb/proto/src/bigreq.xml validates /jhbuild/checkout/xcb/proto/src/composite.xml validates /jhbuild/checkout/xcb/proto/src/damage.xml validates /jhbuild/checkout/xcb/proto/src/dpms.xml validates /jhbuild/checkout/xcb/proto/src/dri2.xml validates /jhbuild/checkout/xcb/proto/src/dri3.xml validates /jhbuild/checkout/xcb/proto/src/ge.xml validates Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ). Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ). Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ). Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd ). /jhbuild/checkout/xcb/proto/src/glx.xml fails to validate Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, exprfield, switch, reply, doc ). Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, exprfield, switch, reply, doc ). Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, doc ). Element 'required_start_align': This element is not expected. Expected is one of ( pad, field, list, fd, doc ). /jhbuild/checkout/xcb/proto/src/present.xml fails to validate /jhbuild/checkout/xcb/proto/src/randr.xml validates /jhbuild/checkout/xcb/proto/src/record.xml validates /jhbuild/checkout/xcb/proto/src/render.xml validates /jhbuild/checkout/xcb/proto/src/res.xml validates /jhbuild/checkout/xcb/proto/src/screensaver.xml validates /jhbuild/checkout/xcb/proto/src/shape.xml validates /jhbuild/checkout/xcb/proto/src/shm.xml validates /jhbuild/checkout/xcb/proto/src/sync.xml validates /jhbuild/checkout/xcb/proto/src/xc_misc.xml validates /jhbuild/checkout/xcb/proto/src/xevie.xml validates /jhbuild/checkout/xcb/proto/src/xf86dri.xml validates /jhbuild/checkout/xcb/proto/src/xf86vidmode.xml validates /jhbuild/checkout/xcb/proto/src/xfixes.xml validates /jhbuild/checkout/xcb/proto/src/xinerama.xml validates Element 'required_start_align': This element is not expected. Expected is one of ( bitcase, case, pad, field, list, fd ). Element 'required_start_align': This element is not expected. Expected is one of ( bitcase, case, pad, field, list, fd ). Element 'required_start_align': This element is not expected. Expected is one of ( bitcase, case, pad, field, list, fd ). /jhbuild/checkout/xcb/proto/src/xinput.xml fails to validate Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed. Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed. Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed. Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed. Element 'pad', attribute 'serialize': The attribute 'serialize' is not allowed. /jhbuild/checkout/xcb/proto/src/xkb.xml fails to validate /jhbuild/checkout/xcb/proto/src/xprint.xml validates /jhbuild/checkout/xcb/proto/src/xproto.xml validates /jhbuild/checkout/xcb/proto/src/xselinux.xml validates /jhbuild/checkout/xcb/proto/src/xtest.xml validates /jhbuild/checkout/xcb/proto/src/xv.xml validates /jhbuild/checkout/xcb/proto/src/xvmc.xml validates Makefile:534: recipe for target 'check-local' failed Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95494 Reviewd-by: Ran Benita <ran234@gmail.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
-
- Jun 02, 2016
-
-
Peter Harris authored
The specification disagrees with itself, so use the part of the specification that matches the other implementations. Reviewed-by: Ran Benita <ran234@gmail.com> Signed-off-by: Peter Harris <pharris@opentext.com>
-
- May 28, 2016
-
-
Fixes build with python-3.x. Signed-off-by: Thomas Klausner <wiz@NetBSD.org> Signed-off-by: Uli Schlachter <psychon@znc.in>
-
At least python-3.5.x complains about this forcefully. Signed-off-by: Thomas Klausner <wiz@NetBSD.org> Signed-off-by: Uli Schlachter <psychon@znc.in>
-
- May 18, 2016
-
-
Uli Schlachter authored
There were more than 100 commits since the last release. The NEWS file only provides an overview of these changes. Signed-off-by: Uli Schlachter <psychon@znc.in>
-
- Jan 27, 2016
-
-
Christian Linhart authored
Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
From now on, due to a patch in libxcb, pads will not be serialized anymore. This is to maintain ABI-compatibility when adding explicit align pads. However, some align pads were already be serialized in prior official versions of libxcb. Therefore we need a method to enforce serialization, so we can maintainn ABI compatibility with that legacy. Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
- Jan 06, 2016
-
-
Some rework done by Christian Linhart Signed-off-by: Jaya Tiwari <tiwari.jaya18@gmail.com> Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
These are just minimal adjustments to get xkb through the checks of the alignment checker. It is not the big fixup which I have already posted an RFC patch a while ago. V2 of this patch: make indentation consistent with the file (tabs vs spaces) Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
The verification algorithm basically traverses the protocol-description of a protocol entity by recursively processing all fields and their types. A start-align consists of two numbers: * the alignment: This is a power of 2, and guarantees that the address (or protocol position) minus the offset can be divided by this number. * the offset: how many bytes the current position is after a position that can be divided by the alignment. The algorithm starts with the start-alignment and computes the alignment of each field from the start-align of the previous field as follows: * if the previous field is a primitive type then the offset is increased by the size of the primitive type module the alignment. If the alignment or offset are incompatible with the primitive type, then an error is reported. * if the previous field is a complex type, then it is processed recursively. * if the previous field is an alignment-pad, then the alignment is adjusted accordingly, as to be expected by the alignment-pad. Start-aligns can also be set manually with the xml-element "required_start_align" which has two attributes: "align" and "offset" If "offset" is omitted, it is assumed to 0. All toplevel protocol entities default to 4-byte start-alignment with offset 0. All non-toplevel complex entities, such as structs, switch, case, ... do not have a default alignment. If no alignment is explicitly specified for them, their alignment is computed by their usage in other entities. In that case, if they are used with aligments that violate the alignment requirements of some of their fields, an error is issued. If they are used with an alignment with non-zero offset, a warning is issued, which recommends to specify the required_start_align explicitly. (Reason: I don't want non-zero offsets to be silently computed automatically. These non-zero offsets have to be reviewed by a human and specified explicitely to record that this was reviewed by a human) If the required_start_align is explicitly specified for an entity then an error will be issued if it is used with an aligment that's incompatible with the explicitly specified alignment. If an entity is used in different contexts with different start-aligns then those start-aligns are combined to an align which is compatible with all aligns. E.g. (align 4, offset 0) and (align 4, offset 2) are combined to (align 2, offset 0). Error reports include the relevant context for a misalignment. For non-toplevel entities this includes the entity-usage stack. There is some complexity in the algorithm for reducing the size of the error-reports to include only the relevant info. This alignment verifier is also a prerequisite for getting rid of implicit alignment altogether. (This will then simplify the generated code and make it faster.) Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
- Nov 15, 2015
-
-
Christian Linhart authored
Especially, these start-aligns have non-zero offsets. Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
Christian Linhart authored
Signed-off-by: Christian Linhart <chris@demorecorder.com>
-
- Oct 26, 2015
-
-
Reviewed-By: Ran Benita <ran234@gmail.com>
-
Christian Linhart authored
The align pad is needed so that a in list of struct "AttributeInfo", the 32-bit fields in subsequent "AttributeInfo" are aligned. (all fields except "name" are 32-bit values) The xv-protocol-spec does not contain the protocol encoding. (it specifies the protocol on a higher level) The X-Server uses function "WriteToClient" to write the list "name" to the connection: http://cgit.freedesktop.org/xorg/xserver/tree/Xext/xvdisp.c?id=xorg-server-1.17.99.901#n809 Function "WriteToClient" does 4-byte alignment padding: http://cgit.freedesktop.org/xorg/xserver/tree/os/io.c?id=xorg-server-1.17.99.901#n804 BTW, With the current server impl, the alignpad is not strictly needed because the field "size", which describes the length of list "name" is set to a multiple of 4: http://cgit.freedesktop.org/xorg/xserver/tree/Xext/xvdisp.c?id=xorg-server-1.17.99.901#n805 Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
The align pad is needed so that a in list of struct "EncodingInfo", the 32-bit fiels in subsequent "EncodingInfo" are aligned. (the field "encoding" is a 32-bit value, and the field "rate" contains two 32-bit values) The xv-protocol-spec does not contain the protocol encoding. (it specifies the protocol on a higher level) The X-Server uses function "WriteToClient" to write the list "name" to the connection: http://cgit.freedesktop.org/xorg/xserver/tree/Xext/xvdisp.c?id=xorg-server-1.17.99.901#n456 Function "WriteToClient" does 4-byte alignment padding: http://cgit.freedesktop.org/xorg/xserver/tree/os/io.c?id=xorg-server-1.17.99.901#n804 Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
This is needed so that subsequent list-items in a list are aligned to 4 bytes which is necessary because ListItem contains 32-bit values of types ATOM and CARD32. (Actually, only the final align-pad is needed for that.) The xserver makes sure that the length of both char-lists is a multiple of 4: http://cgit.freedesktop.org/xorg/xserver/tree/Xext/xselinux_ext.c?id=xorg-server-1.17.99.901#n360 So, instead of a explicit padding we could add something like an assertion or precondition that the fields "object_context_len" and "data_context_len" have to be a multiple of 4. Unfortunately I couldn't find a protocol specification of the xselinux extension, to see whether the multiple of 4 is mandated by the protocol spec or whether there should be align-pads. (and whether there should be an align pad between "object_context" and "data_context" Does anybody know where the spec for the xselinux protocol is? There ought to be a spec somewhere for this because this is security relevant. Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
This pad is defined in the spec: http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml?id=xproto-7.0.28#n534 The server adds this pad in function GetHosts at: http://cgit.freedesktop.org/xorg/xserver/tree/os/access.c?id=xorg-server-1.17.99.901#n1426 Function GetHosts is called in function ProcListHosts at: http://cgit.freedesktop.org/xorg/xserver/tree/dix/dispatch.c?id=xorg-server-1.17.99.901#n3166 Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
This pad is defined in the spec: http://cgit.freedesktop.org/xorg/proto/xproto/tree/specs/encoding.xml?id=xproto-7.0.28#n875 And it is also implemented in the Server: http://cgit.freedesktop.org/xorg/xserver/tree/dix/dispatch.c?id=xorg-server-1.17.99.901#n532 Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
Add explicit padding for: * the struct "PRINTER": - between list "name" and field "descLen" I cannot read any of the formats that the xproto-spec is provided in. (the postscript file is broken) Therefore I provide the Xlib implementation as a reference: The list "name" is read with _XReadPad or _XEatData: http://cgit.freedesktop.org/xorg/lib/libXp/tree/src/XpPrinter.c?id=libXp-1.0.3#n158 _XReadPad does 4-byte padding: http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/xcb_io.c?id=libX11-1.6.3#n743 _XEatData does not do 4-byte padding: http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/xcb_io.c?id=libX11-1.6.3#n755 Since _XEatData is only a fallback when malloc fails, this is usually not used. Therefore, using _XEatData as an alternative to _XReadPad in libXp is a bug there. - at the end of the struct "PRINTER" this is OK because of the same reasons as above: http://cgit.freedesktop.org/xorg/lib/libXp/tree/src/XpPrinter.c?id=libXp-1.0.3#n181 * the reply of request "PrintInputSelected" - add a 1-byte pad at the start. This is needed because all replies start with a 1-byte field that occupies a place in the reply-header. Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
Add explicit align-padding for struct SYSTEMCOUNTER: Added 4-byte align-pad at the end. This is field "p" in the spec of SYSTEMCOUNTER at: http://cgit.freedesktop.org/xorg/proto/xextproto/tree/specs/sync.xml?id=xextproto-7.3.0#n983 Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
Add explicit align-padding for: * the request "SetPictureFilter": Added 4-byte align-pad between list "filter" and list "values" The spec does not show the padding: http://cgit.freedesktop.org/xorg/proto/renderproto/tree/renderproto.txt?id=renderproto-0.11.1#n721 But there has to be padding to make accesses to 32-bit values in list "values" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrender/tree/src/Filter.c?id=libXrender-0.9.9#n160 correctly does the padding: The string "filter" is written with "Data" which does 4-byte padding at the end: http://cgit.freedesktop.org/xorg/lib/libX11/tree/include/X11/Xlibint.h?id=libX11-1.6.3#n535 http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/xcb_io.c?id=libX11-1.6.3#n484 Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
Christian Linhart authored
Add explicit align-padding for: * the request "SetCrtcTransform" Added 4-byte align-pad between list "filter_name" and list "filter_params" The spec does not show the padding http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n1173 But there has to be padding to make accesses to 32-bit values in list "filter_params" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrandr/tree/src/XrrCrtc.c?id=libXrandr-1.5.0#n327 correctly does the padding: The string "filter" is written with "Data" which does 4-byte padding at the end: http://cgit.freedesktop.org/xorg/lib/libX11/tree/include/X11/Xlibint.h?id=libX11-1.6.3#n535 http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/xcb_io.c?id=libX11-1.6.3#n484 * the reply of request "GetCrtcTransform" Added two 4-byte align-pads: - between lists "pending_filter_name" and "pending_params" the spec does not show the padding http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n1205 But there has to be padding to make accesses to 32-bit values in list "filter_params" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrandr/tree/src/XrrCrtc.c?id=libXrandr-1.5.0#n434 adds the padding. - between lists "current_filter_name" and "current_params" the spec does not show the padding http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt?id=randrproto-1.5.0#n1205 But there has to be padding to make accesses to 32-bit values in list "current_params" aligned. The Xlib implementation at http://cgit.freedesktop.org/xorg/lib/libXrandr/tree/src/XrrCrtc.c?id=libXrandr-1.5.0#n445 adds the padding. Signed-off-by: Christian Linhart <chris@demorecorder.com> Reviewed-by: Peter Harris <pharris@opentext.com>
-
- Sep 13, 2015
-
-
Signed-off-by: Robert Ancell <robert.ancell@canonical.com> Reviewed-by: Peter Harris <pharris@opentext.com> Reviewed-by: Christian Linhart <chris@demorecorder.com>
-
Reviewed-by: Christian Linhart <chris@demorecorder.com>
-