[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Fwd: [Xpert]New extension for keeping track of client resources
From: Guillaume Laurent <glaurent () telegraph-road ! org>
Date: 2002-03-06 22:32:43
[Download RAW message or body]
Some might find this useful...
---------- Forwarded Message ----------
Subject: Fwd: [Xpert]New extension for keeping track of client resources
Date: Wed, 6 Mar 2002 14:23:36 -0800 (PST)
From: jg@pa.dec.com (Jim Gettys)
To: gnome-hackers@gnome.org
For those of you willing to build out of XFree86's CVS, a new tool
that will get you resource usage out of the X server. We should have
done this in 1988. Sigh...
- Jim
--
Jim Gettys
Cambridge Research Laboratory
Compaq Computer Corporation
jg@pa.dec.com
Received: by src-mail.pa.dec.com; id NAA24989; Wed, 6 Mar 2002 13:27:49 -0800 (PST)
Received: from taynzmail03.nz-tay.cpqcorp.net by pobox1.pa.dec.com (5.65v3.2/1.1.10.5/07Nov97-1157AM)
id AA13591; Wed, 6 Mar 2002 13:27:48 -0800
Received: from ztxmail02.ztx.compaq.com (ztxmail02.nz-cce.cpqcorp.net [161.114.8.206])
by taynzmail03.nz-tay.cpqcorp.net (Postfix) with ESMTP id 25D5B6EE
for <jg@pa.dec.com>; Wed, 6 Mar 2002 16:27:46 -0500 (EST)
Received: from public.xfree86.org (xf86.isc.org [204.152.184.37])
by ztxmail02.ztx.compaq.com (Postfix) with ESMTP id 45D523335
for <jg@pa.dec.com>; Wed, 6 Mar 2002 15:27:45 -0600 (CST)
Received: from public.XFree86.Org (localhost [127.0.0.1])
by public.xfree86.org (Postfix) with ESMTP
id F1E71276FF; Wed, 6 Mar 2002 16:26:37 -0500 (EST)
Received: from thelma.nvidia.com (z06.nvidia.com [209.213.198.25])
by public.xfree86.org (8.11.6/8.11.6) with ESMTP id g26LQbY28842
for <xpert@xfree86.org>; Wed, 6 Mar 2002 13:26:37 -0800 (PST)
(envelope-from mvojkovich@exchange.nvidia.com)
Received: from dhcp-197-155.nvidia.com (dhcp-197-155.nvidia.com [172.16.197.155])
by thelma.nvidia.com (8.8.8+Sun/8.8.8) with ESMTP id NAA10948
for <xpert@XFree86.org>; Wed, 6 Mar 2002 13:26:27 -0800 (PST)
Date: Wed, 6 Mar 2002 13:22:38 -0800 (PST)
From: Mark Vojkovich <mvojkovich@nvidia.com>
To: xpert@xfree86.org
Message-Id: <Pine.LNX.4.21.0203061319330.14675-200000@dhcp-197-155.nvidia.com>
Mime-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="279747525-2078168853-1015449758=:14675"
Subject: [Xpert]New extension for keeping track of client resources
Sender: owner-xpert@XFree86.Org
Errors-To: owner-xpert@XFree86.Org
X-Beenthere: xpert@XFree86.Org
X-Mailman-Version: 2.0beta2
Precedence: bulk
List-Id: General X Discussion <xpert.XFree86.Org>
Status:
I've commited a new extension to CVS. It's called "X-Resource"
and it lets you query how many clients are currently running and
how many of each type of resource they have.
I've attached a simple client.
Mark.
-------------------------------------------------------
--
Guillaume.
http://www.telegraph-road.org
["restest.c" (text/x-c)]
/*
gcc -o restest -Wall restest.c -L/usr/X11R6/lib -lX11 -lXext -lXRes
*/
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/extensions/XRes.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
Display *TheDisplay;
int event, error, major, minor, num_clients, i, j, num_types;
XResClient *clients;
XResType *types;
char *name;
TheDisplay = XOpenDisplay(0);
if(!XResQueryExtension(TheDisplay, &event, &error)) {
printf("XResQueryExtension failed\n");
return 1;
}
if(!XResQueryVersion(TheDisplay, &major, &minor)) {
printf("XResQueryVersion failed\n");
return 1;
} else {
printf("X-Resource extension version %i.%i\n", major, minor);
}
XGrabServer(TheDisplay);
XResQueryClients(TheDisplay, &num_clients, &clients);
printf("There are %i clients\n", num_clients);
for(i = 0; i < num_clients; i++) {
XResQueryClientResources(TheDisplay, clients[i].resource_base,
&num_types, &types);
printf("Client %i (base = 0x%x, mask = 0x%x): %i resource types\n", i,
clients[i].resource_base,
clients[i].resource_mask, num_types);
for(j = 0; j < num_types; j++) {
name = XGetAtomName(TheDisplay, types[j].resource_type);
printf(" %s: %i\n", name, types[j].count);
XFree(name);
}
XFree(types);
}
XUngrabServer(TheDisplay);
XFree(clients);
XCloseDisplay(TheDisplay);
return 0;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic