diff options
author | Adam Jackson <ajax@redhat.com> | 2012-09-20 14:00:09 -0400 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2012-09-20 14:36:50 -0400 |
commit | 31bf81772e146af79b0c456aae2159eba8b0280f (patch) | |
tree | 950fe418cb2d2db5d9bb712706a96d8cf0592fbf | |
parent | ff8e3ad8074cd2c8bed49b39c40c2b4892118270 (diff) |
dix: Repack ClientRec
Pick smaller types where possible, including bitfielding some Bools and
small enums, then shuffle the result to be hole-free. 192 -> 128 bytes
on LP64, 144 -> 96 bytes on ILP32.
Signed-off-by: Adam Jackson <ajax@redhat.com>
-rw-r--r-- | include/dixstruct.h | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/include/dixstruct.h b/include/dixstruct.h index 875f6caac..c1236f5c9 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -56,8 +56,7 @@ ReplyNotSwappd(ClientPtr /* pClient */ , void * /* pbuf */ ) _X_NORETURN; typedef enum { ClientStateInitial, - /* 1 is unused now, was ClientStateAuthenticating */ - ClientStateRunning = 2, + ClientStateRunning, ClientStateRetained, ClientStateGone } ClientState; @@ -86,27 +85,29 @@ typedef struct _Window *SaveSetElt; #endif typedef struct _Client { - int index; - Mask clientAsMask; pointer requestBuffer; pointer osPrivate; /* for OS layer, including scheduler */ - Bool swapped; - Bool local; + Mask clientAsMask; + short index; + unsigned char majorOp, minorOp; + int swapped:1; + int local:1; + int big_requests:1; /* supports large requests */ + int clientGone:1; + int closeDownMode:2; + int clientState:2; + char smart_priority; + short noClientException; /* this client died or needs to be killed */ + int priority; ReplySwapPtr pSwapReplyFunc; XID errorValue; int sequence; - int closeDownMode; - int clientGone; - int noClientException; /* this client died or needs to be - * killed */ int ignoreCount; /* count for Attend/IgnoreClient */ - SaveSetElt *saveSet; int numSaved; + SaveSetElt *saveSet; int (**requestVector) (ClientPtr /* pClient */ ); CARD32 req_len; /* length of current request */ - Bool big_requests; /* supports large requests */ - int priority; - ClientState clientState; + unsigned int replyBytesRemaining; PrivateRec *devPrivates; unsigned short xkbClientFlags; unsigned short mapNotifyMask; @@ -114,15 +115,12 @@ typedef struct _Client { unsigned short vMajor, vMinor; KeyCode minKC, maxKC; - unsigned long replyBytesRemaining; - int smart_priority; - long smart_start_tick; - long smart_stop_tick; - long smart_check_tick; + int smart_start_tick; + int smart_stop_tick; + int smart_check_tick; DeviceIntPtr clientPtr; ClientIdPtr clientIds; - unsigned short majorOp, minorOp; } ClientRec; /* |