1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
/*
Copyright (c) 2002 XFree86 Inc
*/
#ifndef _XRES_H
#define _XRES_H
#include <X11/Xfuncproto.h>
/* v1.0 */
typedef struct {
XID resource_base;
XID resource_mask;
} XResClient;
typedef struct {
Atom resource_type;
unsigned int count;
} XResType;
/* v1.2 */
typedef enum {
XRES_CLIENT_ID_XID,
XRES_CLIENT_ID_PID,
XRES_CLIENT_ID_NR
} XResClientIdType;
typedef enum {
XRES_CLIENT_ID_XID_MASK = 1 << XRES_CLIENT_ID_XID,
XRES_CLIENT_ID_PID_MASK = 1 << XRES_CLIENT_ID_PID
} XResClientIdMask;
typedef struct {
XID client;
unsigned int mask;
} XResClientIdSpec;
typedef struct {
XResClientIdSpec spec;
long length;
void *value;
} XResClientIdValue;
typedef struct {
XID resource;
Atom type;
} XResResourceIdSpec;
typedef struct {
XResResourceIdSpec spec;
long bytes;
long ref_count;
long use_count;
} XResResourceSizeSpec;
typedef struct {
XResResourceSizeSpec size;
long num_cross_references;
XResResourceSizeSpec *cross_references;
} XResResourceSizeValue;
_XFUNCPROTOBEGIN
/* v1.0 */
Bool XResQueryExtension (
Display *dpy,
int *event_base_return,
int *error_base_return
);
Status XResQueryVersion (
Display *dpy,
int *major_version_return,
int *minor_version_return
);
Status XResQueryClients (
Display *dpy,
int *num_clients,
XResClient **clients
);
Status XResQueryClientResources (
Display *dpy,
XID xid,
int *num_types,
XResType **types
);
Status XResQueryClientPixmapBytes (
Display *dpy,
XID xid,
unsigned long *bytes
);
/* v1.2 */
Status XResQueryClientIds (
Display *dpy,
long num_specs,
XResClientIdSpec *client_specs, /* in */
long *num_ids, /* out */
XResClientIdValue **client_ids /* out */
);
XResClientIdType XResGetClientIdType(XResClientIdValue* value);
/* return -1 if no pid associated to the value */
pid_t XResGetClientPid(XResClientIdValue* value);
void XResClientIdsDestroy (
long num_ids,
XResClientIdValue *client_ids
);
Status XResQueryResourceBytes (
Display *dpy,
XID client,
long num_specs,
XResResourceIdSpec *resource_specs, /* in */
long *num_sizes, /* out */
XResResourceSizeValue **sizes /* out */
);
void XResResourceSizeValuesDestroy (
long num_sizes,
XResResourceSizeValue *sizes
);
_XFUNCPROTOEND
#endif /* _XRES_H */
|