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