[1/2] Add missing defines for X11 opcodes

Submitted by Klemens Baum on Dec. 25, 2015, 6:23 p.m.

Details

Message ID 1451067832-2927-2-git-send-email-klemens.baum@gmail.com
State New
Headers show
Series "New defines for missing opcodes and True/False" ( rev: 1 ) in XCB

Not browsing as part of any series.

Commit Message

Klemens Baum Dec. 25, 2015, 6:23 p.m.
This patch adds the XCB_ERROR, XCB_REPLY and XCB_GE_EVENT symbolic constants.
These are intended to be used for disambiguating xcb_generic_event_t.
---
 src/xcb.h    | 50 ++++++++++++++++++++++++++++----------------------
 src/xcb_in.c | 22 +++++++++-------------
 2 files changed, 37 insertions(+), 35 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/xcb.h b/src/xcb.h
index 86eb1bc..b8e51bb 100644
--- a/src/xcb.h
+++ b/src/xcb.h
@@ -106,16 +106,26 @@  typedef struct xcb_connection_t xcb_connection_t;  /**< Opaque structure contain
 
 /* Other types */
 
+#define XCB_ERROR 0
+
 /**
- * @brief Generic iterator.
+ * @brief Generic error.
  *
- * A generic iterator structure.
+ * A generic error structure.
  */
 typedef struct {
-    void *data;   /**< Data of the current iterator */
-    int rem;    /**< remaining elements */
-    int index;  /**< index of the current iterator */
-} xcb_generic_iterator_t;
+    uint8_t   response_type;  /**< Type of the response */
+    uint8_t   error_code;     /**< Error code */
+    uint16_t sequence;       /**< Sequence number */
+    uint32_t resource_id;     /** < Resource ID for requests with side effects only */
+    uint16_t minor_code;      /** < Minor opcode of the failed request */
+    uint8_t major_code;       /** < Major opcode of the failed request */
+    uint8_t pad0;
+    uint32_t pad[5];         /**< Padding */
+    uint32_t full_sequence;  /**< full sequence */
+} xcb_generic_error_t;
+
+#define XCB_REPLY 1
 
 /**
  * @brief Generic reply.
@@ -142,6 +152,8 @@  typedef struct {
     uint32_t full_sequence;  /**< full sequence */
 } xcb_generic_event_t;
 
+#define XCB_GE_EVENT 35
+
 /**
  * @brief GE event
  *
@@ -163,30 +175,24 @@  typedef struct {
 } xcb_ge_event_t;
 
 /**
- * @brief Generic error.
+ * @brief Generic cookie.
  *
- * A generic error structure.
+ * A generic cookie structure.
  */
 typedef struct {
-    uint8_t   response_type;  /**< Type of the response */
-    uint8_t   error_code;     /**< Error code */
-    uint16_t sequence;       /**< Sequence number */
-    uint32_t resource_id;     /** < Resource ID for requests with side effects only */
-    uint16_t minor_code;      /** < Minor opcode of the failed request */
-    uint8_t major_code;       /** < Major opcode of the failed request */
-    uint8_t pad0;
-    uint32_t pad[5];         /**< Padding */
-    uint32_t full_sequence;  /**< full sequence */
-} xcb_generic_error_t;
+    unsigned int sequence;  /**< Sequence number */
+} xcb_void_cookie_t;
 
 /**
- * @brief Generic cookie.
+ * @brief Generic iterator.
  *
- * A generic cookie structure.
+ * A generic iterator structure.
  */
 typedef struct {
-    unsigned int sequence;  /**< Sequence number */
-} xcb_void_cookie_t;
+    void *data;   /**< Data of the current iterator */
+    int rem;    /**< remaining elements */
+    int index;  /**< index of the current iterator */
+} xcb_generic_iterator_t;
 
 
 /* Include the generated xproto header. */
diff --git a/src/xcb_in.c b/src/xcb_in.c
index bab4bc7..6a015e6 100644
--- a/src/xcb_in.c
+++ b/src/xcb_in.c
@@ -6,17 +6,17 @@ 
  * 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 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 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.
- * 
+ *
  * 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
@@ -52,10 +52,6 @@ 
 #include "xcbext.h"
 #include "xcbint.h"
 
-#define XCB_ERROR 0
-#define XCB_REPLY 1
-#define XCB_XGE_EVENT 35
-
 struct event_list {
     xcb_generic_event_t *event;
     struct event_list *next;
@@ -65,7 +61,7 @@  struct xcb_special_event {
 
     struct xcb_special_event *next;
 
-    /* Match XGE events for the specific extension and event ID (the
+    /* Match GE events for the specific extension and event ID (the
      * first 32 bit word after evtype)
      */
     uint8_t     extension;
@@ -144,8 +140,8 @@  static int event_special(xcb_connection_t *c,
     struct xcb_special_event *special_event;
     struct xcb_ge_special_event_t *ges = (void *) event->event;
 
-    /* Special events are always XGE events */
-    if ((ges->response_type & 0x7f) != XCB_XGE_EVENT)
+    /* Special events are always GE events */
+    if ((ges->response_type & 0x7f) != XCB_GE_EVENT)
         return 0;
 
     for (special_event = c->in.special_events;
@@ -249,8 +245,8 @@  static int read_packet(xcb_connection_t *c)
             nfd = genrep.pad0;
     }
 
-    /* XGE events may have sizes > 32 */
-    if ((genrep.response_type & 0x7f) == XCB_XGE_EVENT)
+    /* GE events may have sizes > 32 */
+    if ((genrep.response_type & 0x7f) == XCB_GE_EVENT)
         eventlength = genrep.length * 4;
 
     bufsize = length + eventlength + nfd * sizeof(int)  +
@@ -271,7 +267,7 @@  static int read_packet(xcb_connection_t *c)
         return 0;
     }
 
-    /* pull in XGE event data if available, append after event struct */
+    /* pull in GE event data if available, append after event struct */
     if (eventlength)
     {
         if(_xcb_in_read_block(c, &((xcb_generic_event_t*)buf)[1], eventlength) <= 0)

Comments

On 25 December 2015 at 13:23, Klemens Baum <klemensbaum@gmail.com> wrote:
> This patch adds the XCB_ERROR, XCB_REPLY and XCB_GE_EVENT symbolic constants.
> These are intended to be used for disambiguating xcb_generic_event_t.

Thanks for the patch series.

XCB_ERROR and XCB_REPLY seem like a good idea, but XCB_GE_EVENT
already exists in a public header. It's spelled "XCB_GE_GENERIC" and
can be found in xproto.h. Since xproto.h is already (indirectly)
included in xcb_in.c, perhaps XCB_GE_GENERIC could be used in place of
XCB_GE_EVENT in xcb_in.c

Also, there seems to be a fair number of unnecessary code motion,
comment, and whitespace changes in this patch, which makes it more
difficult to review.

Peter Harris