1 /* 2 Copyright (c) 2002 XFree86 Inc 3 */ 4 5 #ifndef _XRESPROTO_H 6 #define _XRESPROTO_H 7 8 #define XRES_MAJOR_VERSION 1 9 #define XRES_MINOR_VERSION 2 10 11 #define XRES_NAME "X-Resource" 12 13 /* v1.0 */ 14 #define X_XResQueryVersion 0 15 #define X_XResQueryClients 1 16 #define X_XResQueryClientResources 2 17 #define X_XResQueryClientPixmapBytes 3 18 19 /* Version 1.1 has been accidentally released from the version */ 20 /* control and while it doesn't have differences to version 1.0, the */ 21 /* next version is labeled 1.2 in order to remove the risk of confusion. */ 22 23 /* v1.2 */ 24 #define X_XResQueryClientIds 4 25 #define X_XResQueryResourceBytes 5 26 27 typedef struct { 28 CARD32 resource_base; 29 CARD32 resource_mask; 30 } xXResClient; 31 #define sz_xXResClient 8 32 33 typedef struct { 34 CARD32 resource_type; 35 CARD32 count; 36 } xXResType; 37 #define sz_xXResType 8 38 39 /* XResQueryVersion */ 40 41 typedef struct _XResQueryVersion { 42 CARD8 reqType; 43 CARD8 XResReqType; 44 CARD16 length; 45 CARD8 client_major; 46 CARD8 client_minor; 47 CARD16 unused; 48 } xXResQueryVersionReq; 49 #define sz_xXResQueryVersionReq 8 50 51 typedef struct { 52 CARD8 type; 53 CARD8 pad1; 54 CARD16 sequenceNumber; 55 CARD32 length; 56 CARD16 server_major; 57 CARD16 server_minor; 58 CARD32 pad2; 59 CARD32 pad3; 60 CARD32 pad4; 61 CARD32 pad5; 62 CARD32 pad6; 63 } xXResQueryVersionReply; 64 #define sz_xXResQueryVersionReply 32 65 66 /* XResQueryClients */ 67 68 typedef struct _XResQueryClients { 69 CARD8 reqType; 70 CARD8 XResReqType; 71 CARD16 length; 72 } xXResQueryClientsReq; 73 #define sz_xXResQueryClientsReq 4 74 75 typedef struct { 76 CARD8 type; 77 CARD8 pad1; 78 CARD16 sequenceNumber; 79 CARD32 length; 80 CARD32 num_clients; 81 CARD32 pad2; 82 CARD32 pad3; 83 CARD32 pad4; 84 CARD32 pad5; 85 CARD32 pad6; 86 } xXResQueryClientsReply; 87 #define sz_xXResQueryClientsReply 32 88 89 /* XResQueryClientResources */ 90 91 typedef struct _XResQueryClientResources { 92 CARD8 reqType; 93 CARD8 XResReqType; 94 CARD16 length; 95 CARD32 xid; 96 } xXResQueryClientResourcesReq; 97 #define sz_xXResQueryClientResourcesReq 8 98 99 typedef struct { 100 CARD8 type; 101 CARD8 pad1; 102 CARD16 sequenceNumber; 103 CARD32 length; 104 CARD32 num_types; 105 CARD32 pad2; 106 CARD32 pad3; 107 CARD32 pad4; 108 CARD32 pad5; 109 CARD32 pad6; 110 } xXResQueryClientResourcesReply; 111 #define sz_xXResQueryClientResourcesReply 32 112 113 /* XResQueryClientPixmapBytes */ 114 115 typedef struct _XResQueryClientPixmapBytes { 116 CARD8 reqType; 117 CARD8 XResReqType; 118 CARD16 length; 119 CARD32 xid; 120 } xXResQueryClientPixmapBytesReq; 121 #define sz_xXResQueryClientPixmapBytesReq 8 122 123 typedef struct { 124 CARD8 type; 125 CARD8 pad1; 126 CARD16 sequenceNumber; 127 CARD32 length; 128 CARD32 bytes; 129 CARD32 bytes_overflow; 130 CARD32 pad2; 131 CARD32 pad3; 132 CARD32 pad4; 133 CARD32 pad5; 134 } xXResQueryClientPixmapBytesReply; 135 #define sz_xXResQueryClientPixmapBytesReply 32 136 137 /* v1.2 XResQueryClientIds */ 138 139 #define X_XResClientXIDMask 0x01 140 #define X_XResLocalClientPIDMask 0x02 141 142 typedef struct _XResClientIdSpec { 143 CARD32 client; 144 CARD32 mask; 145 } xXResClientIdSpec; 146 #define sz_xXResClientIdSpec 8 147 148 typedef struct _XResClientIdValue { 149 xXResClientIdSpec spec; 150 CARD32 length; 151 // followed by length CARD32s 152 } xXResClientIdValue; 153 #define sz_xResClientIdValue (sz_xXResClientIdSpec + 4) 154 155 typedef struct _XResQueryClientIds { 156 CARD8 reqType; 157 CARD8 XResReqType; 158 CARD16 length; 159 CARD32 numSpecs; 160 // followed by numSpecs times XResClientIdSpec 161 } xXResQueryClientIdsReq; 162 #define sz_xXResQueryClientIdsReq 8 163 164 typedef struct { 165 CARD8 type; 166 CARD8 pad1; 167 CARD16 sequenceNumber; 168 CARD32 length; 169 CARD32 numIds; 170 CARD32 pad2; 171 CARD32 pad3; 172 CARD32 pad4; 173 CARD32 pad5; 174 CARD32 pad6; 175 // followed by numIds times XResClientIdValue 176 } xXResQueryClientIdsReply; 177 #define sz_xXResQueryClientIdsReply 32 178 179 /* v1.2 XResQueryResourceBytes */ 180 181 typedef struct _XResResourceIdSpec { 182 CARD32 resource; 183 CARD32 type; 184 } xXResResourceIdSpec; 185 #define sz_xXResResourceIdSpec 8 186 187 typedef struct _XResQueryResourceBytes { 188 CARD8 reqType; 189 CARD8 XResReqType; 190 CARD16 length; 191 CARD32 client; 192 CARD32 numSpecs; 193 // followed by numSpecs times XResResourceIdSpec 194 } xXResQueryResourceBytesReq; 195 #define sz_xXResQueryResourceBytesReq 12 196 197 typedef struct _XResResourceSizeSpec { 198 xXResResourceIdSpec spec; 199 CARD32 bytes; 200 CARD32 refCount; 201 CARD32 useCount; 202 } xXResResourceSizeSpec; 203 #define sz_xXResResourceSizeSpec (sz_xXResResourceIdSpec + 12) 204 205 typedef struct _XResResourceSizeValue { 206 xXResResourceSizeSpec size; 207 CARD32 numCrossReferences; 208 // followed by numCrossReferences times XResResourceSizeSpec 209 } xXResResourceSizeValue; 210 #define sz_xXResResourceSizeValue (sz_xXResResourceSizeSpec + 4) 211 212 typedef struct { 213 CARD8 type; 214 CARD8 pad1; 215 CARD16 sequenceNumber; 216 CARD32 length; 217 CARD32 numSizes; 218 CARD32 pad2; 219 CARD32 pad3; 220 CARD32 pad4; 221 CARD32 pad5; 222 CARD32 pad6; 223 // followed by numSizes times XResResourceSizeValue 224 } xXResQueryResourceBytesReply; 225 #define sz_xXResQueryResourceBytesReply 32 226 227 #endif /* _XRESPROTO_H */ 228