X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fxml-xcb.txt;h=d47b12c9f7ac6dd4078d7da0bf7879cbfda55432;hb=1dabbc999755762dbb910132cbea1bef2ea34bc8;hp=7311911f60e3d2aaedbaaed3b66b05bdd7afe08e;hpb=56a82005ac388fcb7a4d1c82e07c7e72eaf69a32;p=free-sw%2Fxcb%2Fproto
diff --git a/doc/xml-xcb.txt b/doc/xml-xcb.txt
index 7311911..d47b12c 100644
--- a/doc/xml-xcb.txt
+++ b/doc/xml-xcb.txt
@@ -184,11 +184,12 @@ separated by a single colon. For example, to refer to the PIXMAP type defined
in glx rather than the one defined in xproto, use type="glx:PIXMAP" rather
than type="PIXMAP".
-Note: Most of the below may optionally contain an enum, altenum, or mask
+Note: Most of the below may optionally contain an enum, altenum, mask or altmask
attribute, which follows the above rules for "type". "enum" is an exhaustive
enum; the value is restricted to one of the constants named in the enum.
"altenum" may be one of the values contained in the enum, but it need not be.
-"mask" refers to an enum to be used as a bitmask.
+"mask" refers to an exhaustive enum to be used as a bitmask.
+"altmask" may be a mask from the referred enum, but it need not be.
@@ -201,6 +202,14 @@ enum; the value is restricted to one of the constants named in the enum.
declares the data type of the field, and the name attribute gives the name
of the field.
+
+
+ This element represents a file descriptor field passed with the request. The
+ name attribute gives the name of the field.
+
+ While ordinary fields are encoded as part of the request, file descriptor
+ fields are generally passed via an out-of-band mechanism.
+
expression
This element represents an array or list of fields in a data structure. The
@@ -235,18 +244,40 @@ enum; the value is restricted to one of the constants named in the enum.
instead for new protocol definitions.
switch expression
- bitcase expression(s), fields
+ bitcase expression(s), fields
+ case expression(s), fields
+
This element represents conditional inclusion of fields. It can be viewed
- as sequence of multiple ifs: if ( switch expression & bitcase expression )
- is non-zero, bitcase fields are included in structure. It can be used only
- as the last field of a structure.
+ as sequence of multiple ifs:
+
+ :
+ if ( switch expression & bitcase expression ) is non-zero,
+ bitcase fields are included in structure.
+
+ :
+ if ( switch expression == case expression ) is true,
+ then case fields are included in structure.
+
+ It can be used only as the last field of a structure.
+
+ When a bitcase or case includes multiple clauses, the contents
+ of the bitcase or case are only present once regardless of the number of
+ bitcase or case expressions that match.
- When a bitcase includes multiple clauses, the contents of the
- bitcase are only present once regardless of the number of bitcase expressions
- that match.
+ inside can only refer to an enum's members.
+ inside can only refer to an enum's members.
+
+ A switch may contain multiple or elements.
+ Usually it will only contain elements
+ or only contain elements.
+ That is, mixing of and usually doesn't make any sense.
+
+ The same value may appear in multiple or elements.
+
+ New protocol definitions should prefer to use this instead of
+ and instead of .
- New protocol definitions should prefer to use this instead of .
Expressions
-----------
@@ -291,6 +322,17 @@ Expressions
This element represents a sumation of the elements of the referenced list.
+expression
+
+ The expression is evaluated for each element of the referenced list,
+ in the context of this element.
+ This sumof element then represents a sumation of the results of these
+ evaluations.
+
+ expression will usually be a fieldref which references a field of
+ a list-element or an expression containing a fieldref,
+ such as popcount of a fieldref.
+
expression
This element represents the number of bits set in the expression.