#define __XCB_H__
#include <sys/types.h>
-/* TODO: check for stdint in config? (HAVE_STDINT) fallback? */
+#if defined(__solaris__)
+#include <inttypes.h>
+#else
#include <stdint.h>
+#endif
/* FIXME: these names conflict with those defined in Xmd.h. */
#ifndef XMD_H
typedef int32_t INT32;
#endif /* XMD_H */
-#include <X11/X.h>
#include <sys/uio.h>
#include <pthread.h>
} XCBVoidCookie;
-/* Include the generated xproto and xcb_types headers. */
-#include "xcb_types.h"
+/* Include the generated xproto header. */
#include "xproto.h"
*/
XCBGenericEvent *XCBPollForEvent(XCBConnection *c, int *error);
+/**
+ * @brief Return the error for a request, or NULL if none can ever arrive.
+ * @param c: The connection to the X server.
+ * @param cookie: The request cookie.
+ * @return The error for the request, or NULL if none can ever arrive.
+ *
+ * The XCBVoidCookie cookie supplied to this function must have resulted from
+ * a call to XCB[RequestName]Checked(). This function will block until one of
+ * two conditions happens. If an error is received, it will be returned. If
+ * a reply to a subsequent request has already arrived, no error can arrive
+ * for this request, so this function will return NULL.
+ *
+ * Note that this function will perform a sync if needed to ensure that the
+ * sequence number will advance beyond that provided in cookie; this is a
+ * convenience to avoid races in determining whether the sync is needed.
+ */
+XCBGenericError *XCBRequestCheck(XCBConnection *c, XCBVoidCookie cookie);
+
/**
* @brief Returns the last sequence number that the server is known to
* have processed.