diff --git a/Xi/chgfctl.c b/Xi/chgfctl.c index 1fbff1a6e..1741285fe 100644 --- a/Xi/chgfctl.c +++ b/Xi/chgfctl.c @@ -55,6 +55,7 @@ SOFTWARE. #include #include /* control constants */ +#include "dix/dix_priv.h" #include "include/inputstr.h" /* DeviceIntPtr */ #include "Xi/handlers.h" diff --git a/Xi/chgkmap.c b/Xi/chgkmap.c index 5c82633c4..01f0e6e86 100644 --- a/Xi/chgkmap.c +++ b/Xi/chgkmap.c @@ -55,6 +55,7 @@ SOFTWARE. #include #include +#include "dix/dix_priv.h" #include "dix/exevents_priv.h" #include "Xi/handlers.h" diff --git a/Xi/grabdevb.c b/Xi/grabdevb.c index e6da5218c..48153eea1 100644 --- a/Xi/grabdevb.c +++ b/Xi/grabdevb.c @@ -55,6 +55,7 @@ SOFTWARE. #include #include +#include "dix/dix_priv.h" #include "dix/devices_priv.h" #include "dix/exevents_priv.h" #include "dix/input_priv.h" diff --git a/Xi/grabdevk.c b/Xi/grabdevk.c index 6399cbbd1..365df6750 100644 --- a/Xi/grabdevk.c +++ b/Xi/grabdevk.c @@ -55,6 +55,7 @@ SOFTWARE. #include #include +#include "dix/dix_priv.h" #include "dix/devices_priv.h" #include "dix/exevents_priv.h" #include "dix/input_priv.h" diff --git a/Xi/sendexev.c b/Xi/sendexev.c index 7eac7d3ef..61245d115 100644 --- a/Xi/sendexev.c +++ b/Xi/sendexev.c @@ -55,6 +55,7 @@ SOFTWARE. #include #include +#include "dix/dix_priv.h" #include "dix/exevents_priv.h" #include "Xi/handlers.h" diff --git a/dix/dix_priv.h b/dix/dix_priv.h index 50d67b834..c1b2aa317 100644 --- a/dix/dix_priv.h +++ b/dix/dix_priv.h @@ -765,4 +765,10 @@ int dixAllocColor(ClientPtr client, Colormap cmap, CARD16 *red, void ReplyNotSwappd(ClientPtr pClient, int size, void *pbuf) _X_NORETURN; +/* needed by some internal modules */ _X_EXPORT +void SwapLongs(CARD32 *list, unsigned long count); + +#define SwapRestL(stuff) \ + SwapLongs((CARD32 *)(stuff + 1), (client->req_len - (sizeof(*stuff) >> 2))) + #endif /* _XSERVER_DIX_PRIV_H */ diff --git a/dix/rpcbuf.c b/dix/rpcbuf.c index cf80a209d..f618f0e5e 100644 --- a/dix/rpcbuf.c +++ b/dix/rpcbuf.c @@ -6,6 +6,7 @@ #include +#include "dix/dix_priv.h" #include "dix/rpcbuf_priv.h" static inline Bool __x_rpcbuf_write_bin_pad( diff --git a/dix/swapreq.c b/dix/swapreq.c index a7a4f6b53..125ebd17a 100644 --- a/dix/swapreq.c +++ b/dix/swapreq.c @@ -50,6 +50,7 @@ SOFTWARE. #include #include +#include "dix/dix_priv.h" #include "dix/reqhandlers_priv.h" #include "misc.h" diff --git a/doc/Xserver-spec.xml b/doc/Xserver-spec.xml index 6de0d2603..17b6370fa 100644 --- a/doc/Xserver-spec.xml +++ b/doc/Xserver-spec.xml @@ -600,7 +600,7 @@ are: REQUEST, REQUEST_SIZE_MATCH, REQUEST_AT_LEAST_SIZE, REQUEST_FIXED_SIZE, LEGAL_NEW_RESOURCE, and VALIDATE_DRAWABLE_AND_GC. Useful byte swapping macros can be found in Xserver/include/misc.h: bswap_64, bswap_32, bswap_16, LengthRestS, -LengthRestL, SwapRestS, SwapRestL, swapl, swaps, cpswapl, and cpswaps. +SwapRestS, SwapRestL, swapl, swaps, cpswapl, and cpswaps. diff --git a/glx/glxcmdsswap.c b/glx/glxcmdsswap.c index 285de19c8..0305c1573 100644 --- a/glx/glxcmdsswap.c +++ b/glx/glxcmdsswap.c @@ -31,6 +31,9 @@ #include #include + +#include "dix/dix_priv.h" + #include "glxserver.h" #include "glxutil.h" #include diff --git a/glx/single2swap.c b/glx/single2swap.c index fc5caff5a..b672dcc95 100644 --- a/glx/single2swap.c +++ b/glx/single2swap.c @@ -30,6 +30,7 @@ #include +#include "dix/dix_priv.h" #include "dix/request_priv.h" #include "glxserver.h" diff --git a/include/misc.h b/include/misc.h index 84a5fa8bb..6bc70076a 100644 --- a/include/misc.h +++ b/include/misc.h @@ -214,15 +214,9 @@ padding_for_int32(const int bytes) #define LengthRestS(stuff) \ ((client->req_len << 1) - (sizeof(*stuff) >> 1)) -#define LengthRestL(stuff) \ - (client->req_len - (sizeof(*stuff) >> 2)) - #define SwapRestS(stuff) \ SwapShorts((short *)(stuff + 1), LengthRestS(stuff)) -#define SwapRestL(stuff) \ - SwapLongs((CARD32 *)(stuff + 1), LengthRestL(stuff)) - #if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) void __attribute__ ((error("wrong sized variable passed to swap"))) wrong_size(void); @@ -302,8 +296,6 @@ bswap_16(uint16_t x) (dst) = bswap_16((src)); \ } while (0) -extern _X_EXPORT void SwapLongs(CARD32 *list, unsigned long count); - extern _X_EXPORT void SwapShorts(short *list, unsigned long count); typedef struct _xPoint *DDXPointPtr;