From 3597915f64c44552c16ce6e0acff9165e6009f9a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 14 Oct 2011 14:51:06 +1000 Subject: include: Add GetReqSized() for request buffers of specific size Some XI2 requests change in size over different versions and libXi would need to hack around GetReq and GetReqExtra. Add a new GetReqSized so the library can explicitly specify the size of the request in 4-byte units. Signed-off-by: Peter Hutterer Reviewed-by: Jamey Sharp Backported-to-NX-by: Ulrich Sibiller --- nx-X11/lib/X11/Xlibint.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'nx-X11/lib/X11/Xlibint.h') diff --git a/nx-X11/lib/X11/Xlibint.h b/nx-X11/lib/X11/Xlibint.h index 8d7291d01..f4c648634 100644 --- a/nx-X11/lib/X11/Xlibint.h +++ b/nx-X11/lib/X11/Xlibint.h @@ -450,6 +450,18 @@ extern LockInfoPtr _Xglobal_lock; */ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); +/* GetReqSized is the same as GetReq but allows the caller to specify the + * size in bytes. 'sz' must be a multiple of 4! */ + +#if !defined(UNIXCPP) || defined(ANSICPP) +#define GetReqSized(name, sz, req) \ + req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz) +#else +#define GetReqSized(name, sz, req) \ + req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, sz) +#endif + + /* * GetReq - Get the next available X request packet in the buffer and * return it. -- cgit v1.2.3