5 KB、227行 生 Blame 履歴
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
27typedef struct {
28 CARD32 resource_base;
29 CARD32 resource_mask;
30} xXResClient;
31#define sz_xXResClient 8
32
33typedef struct {
34 CARD32 resource_type;
35 CARD32 count;
36} xXResType;
37#define sz_xXResType 8
38
39/* XResQueryVersion */
40
41typedef 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
51typedef 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
68typedef struct _XResQueryClients {
69 CARD8 reqType;
70 CARD8 XResReqType;
71 CARD16 length;
72} xXResQueryClientsReq;
73#define sz_xXResQueryClientsReq 4
74
75typedef 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
91typedef struct _XResQueryClientResources {
92 CARD8 reqType;
93 CARD8 XResReqType;
94 CARD16 length;
95 CARD32 xid;
96} xXResQueryClientResourcesReq;
97#define sz_xXResQueryClientResourcesReq 8
98
99typedef 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
115typedef struct _XResQueryClientPixmapBytes {
116 CARD8 reqType;
117 CARD8 XResReqType;
118 CARD16 length;
119 CARD32 xid;
120} xXResQueryClientPixmapBytesReq;
121#define sz_xXResQueryClientPixmapBytesReq 8
122
123typedef 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
142typedef struct _XResClientIdSpec {
143 CARD32 client;
144 CARD32 mask;
145} xXResClientIdSpec;
146#define sz_xXResClientIdSpec 8
147
148typedef struct _XResClientIdValue {
149 xXResClientIdSpec spec;
150 CARD32 length;
151 // followed by length CARD32s
152} xXResClientIdValue;
153#define sz_xResClientIdValue (sz_xXResClientIdSpec + 4)
154
155typedef 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
164typedef 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
181typedef struct _XResResourceIdSpec {
182 CARD32 resource;
183 CARD32 type;
184} xXResResourceIdSpec;
185#define sz_xXResResourceIdSpec 8
186
187typedef 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
197typedef struct _XResResourceSizeSpec {
198 xXResResourceIdSpec spec;
199 CARD32 bytes;
200 CARD32 refCount;
201 CARD32 useCount;
202} xXResResourceSizeSpec;
203#define sz_xXResResourceSizeSpec (sz_xXResResourceIdSpec + 12)
204
205typedef struct _XResResourceSizeValue {
206 xXResResourceSizeSpec size;
207 CARD32 numCrossReferences;
208 // followed by numCrossReferences times XResResourceSizeSpec
209} xXResResourceSizeValue;
210#define sz_xXResResourceSizeValue (sz_xXResResourceSizeSpec + 4)
211
212typedef 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 */