Compare commits
303 Commits
GNOME_STAB
...
LIBGTOP_1_
Author | SHA1 | Date | |
---|---|---|---|
|
d5c8af57f3 | ||
|
deeadb6648 | ||
|
f8f0ee6882 | ||
|
76be244662 | ||
|
d97a151695 | ||
|
c9dfc76155 | ||
|
506023c898 | ||
|
0e9245ba28 | ||
|
091811a4d6 | ||
|
18f4bccb37 | ||
|
37af4964cc | ||
|
f248d99d7a | ||
|
ca80d88a74 | ||
|
56765d966f | ||
|
d169afcafa | ||
|
1f4b738639 | ||
|
981668a56b | ||
|
b55257d0d3 | ||
|
ae6f746cf2 | ||
|
68e7b7a1d4 | ||
|
7b7071cf6d | ||
|
b1e908e6b6 | ||
|
f91050a7c7 | ||
|
e3f9aa526b | ||
|
7db0c756d6 | ||
|
c1bd844673 | ||
|
914354adb2 | ||
|
2ac4fb92c2 | ||
|
0c1dd954eb | ||
|
116767b8b8 | ||
|
3eb5394474 | ||
|
953f59195f | ||
|
309f3998d7 | ||
|
887c4013a0 | ||
|
f232ddcdcb | ||
|
bd0424ee7d | ||
|
62824e1537 | ||
|
36e7d3133b | ||
|
20c69951ab | ||
|
d9d8cdf043 | ||
|
29fba02b4a | ||
|
1954718e3f | ||
|
6712cae260 | ||
|
6ddf213d5d | ||
|
b700a17efa | ||
|
bedec591a2 | ||
|
2c4568119c | ||
|
efd8e2f343 | ||
|
f29793c868 | ||
|
e8bbb15f7e | ||
|
fdb2e5eb7b | ||
|
da58e7edb4 | ||
|
e81b8ba479 | ||
|
cfbe553724 | ||
|
17634e05d4 | ||
|
7d216d364e | ||
|
9e16f6e88c | ||
|
f23e8b3d1c | ||
|
04d988357f | ||
|
14ed950dad | ||
|
f107c34f82 | ||
|
9b5bfd33ef | ||
|
8fc6c79b6d | ||
|
2d838b9f09 | ||
|
c1649507e9 | ||
|
a246a6390f | ||
|
6a9317238a | ||
|
0a45542477 | ||
|
03be66c857 | ||
|
777c371be9 | ||
|
d8bb202fbd | ||
|
f0f9167682 | ||
|
6fbde2ea22 | ||
|
2378f459de | ||
|
1b4ae67f51 | ||
|
ec67c56cc7 | ||
|
393c1dba75 | ||
|
5b76314ef4 | ||
|
0ca2053a27 | ||
|
c2c209d19a | ||
|
de5137ff28 | ||
|
ffb4b0fade | ||
|
bfd03680cc | ||
|
82280b673e | ||
|
27dbd28c5c | ||
|
4d55985151 | ||
|
2635e545bf | ||
|
e8a3a40691 | ||
|
3a7d7778a0 | ||
|
437c7585cc | ||
|
507766bff6 | ||
|
74d11991ab | ||
|
217a1e92c6 | ||
|
83bc7b831d | ||
|
1071b2ee69 | ||
|
3753ac5ee6 | ||
|
6120c5e4a8 | ||
|
b252a80b7e | ||
|
d67182f411 | ||
|
fec8f23ad4 | ||
|
ab7f1cc3be | ||
|
3f65468299 | ||
|
333d0c5709 | ||
|
8c47939ad2 | ||
|
664d24f258 | ||
|
f8adb23062 | ||
|
a2a4b1d170 | ||
|
aa6f26f9fb | ||
|
fd2ddf8b50 | ||
|
0408c86065 | ||
|
e1555fc335 | ||
|
75141bdb65 | ||
|
3951c8863f | ||
|
bdc1579a9c | ||
|
8e1c6601af | ||
|
1c634bd736 | ||
|
2868191440 | ||
|
a567adcce5 | ||
|
5db1ee8fc4 | ||
|
a6729d9454 | ||
|
57f7039795 | ||
|
5c3775c6ee | ||
|
1cec9b70a2 | ||
|
eca34c37d9 | ||
|
58acfc4042 | ||
|
feab865203 | ||
|
754f09cdad | ||
|
fac354623b | ||
|
5967e6c3e4 | ||
|
174f316a62 | ||
|
c9651a012e | ||
|
3130d7db33 | ||
|
30af079f99 | ||
|
3ccae8efee | ||
|
5b946cb261 | ||
|
885045ca55 | ||
|
01d728ac6b | ||
|
f9e670f464 | ||
|
868e1677e3 | ||
|
84407de2aa | ||
|
7011b04cb2 | ||
|
ede4594dd9 | ||
|
3a7f02352a | ||
|
e2cb4ed031 | ||
|
24a1fe55bb | ||
|
66dddd9799 | ||
|
b3b2411cb7 | ||
|
eb71d82ecc | ||
|
298fc043ff | ||
|
63f678210a | ||
|
7a38246284 | ||
|
5390903a22 | ||
|
4b9e977fdc | ||
|
6a9a681559 | ||
|
a6e919767c | ||
|
290e9ac767 | ||
|
cd8ac36e9b | ||
|
3068969b51 | ||
|
e947e72169 | ||
|
86a53dbfc9 | ||
|
aa5c5c4553 | ||
|
1f93237ee3 | ||
|
3d248e9ad2 | ||
|
ec9aedea0b | ||
|
33021311b2 | ||
|
2a3d9e080a | ||
|
b528d0b1db | ||
|
a429e9c3f9 | ||
|
b90d2c1c90 | ||
|
27dc7ef79a | ||
|
76441b1d5f | ||
|
d2e3577784 | ||
|
4a0344182f | ||
|
ddc496cdaa | ||
|
746981611b | ||
|
c1beefce3a | ||
|
1667cc8a8d | ||
|
0aea46a643 | ||
|
820ab2210e | ||
|
f40e8a57b4 | ||
|
005357e821 | ||
|
5fcfc95280 | ||
|
dfc9e912b5 | ||
|
a6385288aa | ||
|
2f6457b3f7 | ||
|
ba2f0f753b | ||
|
38554dbcbe | ||
|
fe98fde338 | ||
|
c3ea69f26a | ||
|
367e1f047c | ||
|
7db1ed695c | ||
|
26b4615262 | ||
|
c4ccf53aad | ||
|
8fe9163e6b | ||
|
293995a277 | ||
|
991da49977 | ||
|
cbf3bc895e | ||
|
75c105d65d | ||
|
e83cb0acf7 | ||
|
db4d801792 | ||
|
f17e45bcc3 | ||
|
b912c83b8b | ||
|
ec280b5bd0 | ||
|
3f39ec8d37 | ||
|
8bbdeca6b5 | ||
|
00960e6a04 | ||
|
8f4bb6c9c4 | ||
|
f33814d409 | ||
|
1a501c271a | ||
|
5b43466d5f | ||
|
83d8b9aedc | ||
|
cf611f9157 | ||
|
8ec7d76b35 | ||
|
ce4f660965 | ||
|
e46306d2f9 | ||
|
21b2aee946 | ||
|
d379bb6acb | ||
|
3ad9e06909 | ||
|
9ba9f4fa8f | ||
|
9142e721bb | ||
|
b7e1c60b40 | ||
|
72a3f5aaa1 | ||
|
3c9b2e3d9f | ||
|
35995577ca | ||
|
eaf527d66a | ||
|
a7bdfcb951 | ||
|
9146d53ecc | ||
|
38a4f74c1a | ||
|
0da389347e | ||
|
ba563cf615 | ||
|
27fbdef425 | ||
|
b27412def1 | ||
|
e5cb661a95 | ||
|
4def53aabb | ||
|
ce45801873 | ||
|
a22d3fad36 | ||
|
1272d38f72 | ||
|
2b96f77245 | ||
|
c2fdf05f2b | ||
|
69fed8d42d | ||
|
1da8264984 | ||
|
2deb3c30c4 | ||
|
00f0791ebd | ||
|
ad7aca6105 | ||
|
1ea58b48ff | ||
|
dd17160a5f | ||
|
1086496f93 | ||
|
896729108c | ||
|
f5397c79b0 | ||
|
4fbfde4d1c | ||
|
cd7cd23403 | ||
|
48e5a13495 | ||
|
137bbe308c | ||
|
eca7c245f8 | ||
|
4d220ddb26 | ||
|
3f6800469b | ||
|
af4dadde0b | ||
|
8773604ef1 | ||
|
411a1c8e84 | ||
|
5b38a14a44 | ||
|
208c7a0ce0 | ||
|
96542d050e | ||
|
7790965d45 | ||
|
505c175cb6 | ||
|
7af22c51b9 | ||
|
1cadb2c3be | ||
|
6e278d98f1 | ||
|
17a1b6b1cb | ||
|
8a25330615 | ||
|
ce52ba2dbe | ||
|
bfe951b32a | ||
|
7bdcc494c3 | ||
|
7922e3bcc7 | ||
|
f2c8347f34 | ||
|
413283849c | ||
|
6dd6173874 | ||
|
16da233b6d | ||
|
3f0e166e3f | ||
|
8262f295b7 | ||
|
73a334727e | ||
|
059992ef36 | ||
|
df20c8534b | ||
|
8ba42b25e0 | ||
|
3b270123eb | ||
|
a66b6cc86d | ||
|
e491343151 | ||
|
688e65fbec | ||
|
c1c629eb37 | ||
|
5566a5cde2 | ||
|
364130c6e1 | ||
|
394d4dc226 | ||
|
ce80f111df | ||
|
abdeeda9c0 | ||
|
e0d4139bf2 | ||
|
17962b4548 | ||
|
2f12b5aec2 | ||
|
be97f1b90a | ||
|
a9928eb8a8 | ||
|
3dfd759826 | ||
|
48191c7111 | ||
|
5a0b925037 | ||
|
58e1e76a06 | ||
|
4bc0213ca9 |
11
.cvsignore
11
.cvsignore
@@ -21,6 +21,7 @@ ltconfig
|
||||
ltmain.sh
|
||||
macros
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
sun4
|
||||
sun4sol2
|
||||
support
|
||||
@@ -29,3 +30,13 @@ alpha-dec-osf3.0
|
||||
i686-pc-linux-gnu-linux
|
||||
libgtop-config
|
||||
ABOUT-NLS
|
||||
libgtop.spec
|
||||
libgtop-0.99.*.tar.gz
|
||||
libgtop-0.99.*
|
||||
install-sh
|
||||
mkinstalldirs
|
||||
missing
|
||||
INSTALL
|
||||
COPYING
|
||||
glibtop-config.h
|
||||
stamp-gc-h
|
||||
|
95
ANNOUNCE
95
ANNOUNCE
@@ -1,95 +0,0 @@
|
||||
Hi all,
|
||||
|
||||
I just uploaded the first working draft alpha version 0.01 to my website:
|
||||
|
||||
http://www.home-of-linux.org/gnome/libgtop/
|
||||
|
||||
Libgtop is a library that fetches information about the running system such as cpu and
|
||||
memory usage, active processes etc. On Linux systems, these information are taken directly
|
||||
from the /proc filesystem. For other systems such as Solaris, where such programs need to be
|
||||
suid root (or only setgid kmem/mem on some systems), it provides a suid/setgid server that
|
||||
fetches those information and a client-side library that talks to this server. Main idea
|
||||
was to have the same interface for all operating systems, thus all system dependent details
|
||||
are hidden in the implementation of that server.
|
||||
|
||||
Currently, it only works for Linux, documentation on how to port it to other systems is on
|
||||
the way. I'm planning to keep this site an up-to-date mirror of my local machine (which is
|
||||
connected to the internet over some expensive dialup connection, so I'll upload it about
|
||||
once every day I made significant changes) so that you can always find the latest version
|
||||
of the software here.
|
||||
|
||||
I've written a simple guile interface for the library to show which information it can
|
||||
already fetch. See examples/third for details.
|
||||
|
||||
===========================================================================================
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.h>
|
||||
|
||||
#include <glibtop/cpu.h>
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
glibtop server;
|
||||
glibtop_cpu cpu;
|
||||
unsigned i, *ptr;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
glibtop_open (&server, argv [0]);
|
||||
|
||||
glibtop_get_cpu (&server, &cpu);
|
||||
|
||||
fprintf (stderr, "CPU: %lu, %lu, %lu, %lu, %lu\n",
|
||||
cpu.total, cpu.user, cpu.nice, cpu.sys, cpu.idle);
|
||||
|
||||
glibtop_close (&server);
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
===========================================================================================
|
||||
|
||||
The following scheme code is used in examples/third to show all information that is
|
||||
currently available:
|
||||
|
||||
(display (get-cpu)) (newline)
|
||||
(display (get-mem)) (newline)
|
||||
(display (get-swap)) (newline)
|
||||
(display (get-uptime)) (newline)
|
||||
(display (get-loadavg)) (newline)
|
||||
(display (get-shm_limits)) (newline)
|
||||
(display (get-msg_limits)) (newline)
|
||||
(display (get-sem_limits)) (newline)
|
||||
(display (get-sysdeps)) (newline)
|
||||
(display (get-proclist)) (newline)
|
||||
|
||||
On my system, this yields:
|
||||
|
||||
(3796245 348706 66 89999 3357474)
|
||||
(31715328 31354880 360448 13385728 401408 7237632 17567744)
|
||||
(133885952 42160128 91725824)
|
||||
(37962.49 33574.74)
|
||||
(0.01 0.02 0.0)
|
||||
(33554432 1 128 128 4194304)
|
||||
(2048 16384 4056 16384 128 16 16384)
|
||||
(4096 128 4096 4096 32 32 32 20 32767 16383)
|
||||
(31 127 7 3 1 31 127 1023 3)
|
||||
(71 4 284 1 2 3 246 247 210 8 48 81 83 153 157 167 170 171 172 173 174 175 178 181 195 191 200 203 207 248 215 216 217 220 222 227 245 249 250 251 253 254 315 267 331 373 338 334 335 345 337 372 374 342 343 344 375 14445 13119 6438 14555 13118 13801 6439 17362 18411 18455 6521 6522 6523 23979 23980 7905 7906)
|
||||
|
||||
===========================================================================================
|
||||
|
||||
Better documentation is on the way! There's still a little bit under the URL above.
|
||||
|
||||
Enjoy it!
|
||||
|
||||
Martin <martin@home-of-linux.org>
|
||||
|
||||
|
||||
|
||||
|
||||
|
241
ANNOUNCE-0.25
241
ANNOUNCE-0.25
@@ -1,241 +0,0 @@
|
||||
[Posted to the Gnome Mailing List on Fri Aug 21 1998]
|
||||
|
||||
About this release:
|
||||
------------------
|
||||
|
||||
LibGTop 0.25 is a stable release.
|
||||
|
||||
Of cause it has its bug like any software has, I'm planning
|
||||
to fix as many bugs as possible in _this_ release and then
|
||||
re-release it as libgtop-0.26 or even libgtop-0.30.
|
||||
|
||||
Especially portings to new operating systems should be made
|
||||
in this release.
|
||||
|
||||
This also means that we can safely use this version of LibGTop
|
||||
all over the GNOME project.
|
||||
|
||||
Currently LibGTop-Apps is still a little bit under development -
|
||||
especially the LibGTop-Apps GTop does not yet have the full
|
||||
functionallity of the real GTop.
|
||||
|
||||
We should test this extensively and then decide whether to continue
|
||||
with the `libgtop-apps' module or whether to merge all its code
|
||||
back into the modules it came from. I'd like to hear some comments
|
||||
about this from you !
|
||||
|
||||
Please look at the release notes below for more details about this
|
||||
release.
|
||||
|
||||
Where to get the sources
|
||||
------------------------
|
||||
|
||||
The sources can be found at:
|
||||
|
||||
ftp://ftp.home-of-linux.org/pub/
|
||||
|
||||
Tarballs:
|
||||
|
||||
libgtop-0.25.0.tar.gz
|
||||
libgtop-apps-0.25.0.tar.gz
|
||||
|
||||
Source RPM:
|
||||
|
||||
libgtop-0.25.0-REL.src.rpm
|
||||
libgtop-apps-0.25.0-REL.src.rpm
|
||||
|
||||
Binary RPMS:
|
||||
|
||||
libgtop-0.25.0-REL.i386.rpm
|
||||
libgtop-devel-0.25.0-REL.i386.rpm
|
||||
libgtop-examples-0.25.0-REL.i386.rpm
|
||||
libgtop-apps-0.25.0-REL.i386.rpm
|
||||
|
||||
There is some little problem with the binary RPMS of `libgtop-apps':
|
||||
|
||||
Most of its files will conflict with ones from `gnome-core' and `gnome-utils',
|
||||
so you'll need to use the `--force' parameter to install it.
|
||||
|
||||
Getting the sources from CVS:
|
||||
----------------------------
|
||||
|
||||
You can also fetch the sources from the GNOME CVS tree
|
||||
(see http://www.gnome.org/ for details).
|
||||
|
||||
To get the latest sources:
|
||||
|
||||
$ cvs checkout libgtop
|
||||
$ cvs checkout libgtop-apps
|
||||
|
||||
To get the sources of *this* release:
|
||||
|
||||
$ cvs checkout -r LIBGTOP_0_25 libgtop
|
||||
$ cvs checkout -r LIBGTOP_0_25 libgtop-apps
|
||||
|
||||
To get the sources of this release with all bug-fixes applied:
|
||||
|
||||
$ cvs checkout -r LIBGTOP_0_25_PATCHES libgtop
|
||||
$ cvs checkout -r LIBGTOP_0_25_PATCHES libgtop-apps
|
||||
|
||||
To get a patch to apply to the tarballs to get all bug-fixes:
|
||||
|
||||
$ cvs rdiff -r LIBGTOP_0_25 -r LIBGTOP_0_25_PATCHES libgtop
|
||||
$ cvs rdiff -r LIBGTOP_0_25 -r LIBGTOP_0_25_PATCHES libgtop-apps
|
||||
|
||||
[Note for people having write access to the GNOME CVS tree:
|
||||
|
||||
Please apply bug fixes to the `LIBGTOP_0_25_PATCHES' branch and
|
||||
merge them into the main trunk.
|
||||
|
||||
After merging, please re-tag the branch `libgtop_0_25_after_merge'.
|
||||
|
||||
This will help us to re-release this package when all bugs are
|
||||
fixed.
|
||||
]
|
||||
|
||||
RELEASE NOTES FOR LIBGTOP 0.25 STABLE
|
||||
=====================================
|
||||
|
||||
OVERVIEW
|
||||
--------
|
||||
|
||||
LibGTop is a library that read information about processes and the running
|
||||
systems. This information include:
|
||||
|
||||
General System Information
|
||||
|
||||
cpu - CPU Usage
|
||||
mem - Memory Usage
|
||||
swap - Swap Usage (including paging activity)
|
||||
loadavg - Load average (including nr_running, nr_tasks, last_pid)
|
||||
uptime - Uptime and Idle time, can be calculated from CPU usage
|
||||
|
||||
SYS V IPC Limits:
|
||||
|
||||
shm_limits - Shared Memory Limits
|
||||
msg_limits - Message Queue Limits
|
||||
sem_limits - Semaphore Set Limits
|
||||
|
||||
Process List:
|
||||
|
||||
proclist - List of processes
|
||||
|
||||
Process information:
|
||||
|
||||
proc_state - cmd, state, uid, gid
|
||||
proc_uid - uid,euid,gid,egid,pid,ppid,pgrp
|
||||
session,tty,tpgid,priority,nice
|
||||
proc_mem - size,vsize,resident,share,rss,rss_rlim
|
||||
proc_time - start_time,rtime,utime,stime,cutime,cstime
|
||||
timeout,it_real_value,frequency
|
||||
proc_signal - signal,blocked,sigignore,sigcatch
|
||||
proc_kernel - k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
|
||||
kstk_esp,kstk_eip,nwchan,wchan
|
||||
proc_segment - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
|
||||
start_code,end_code,start_stack
|
||||
|
||||
Process maps:
|
||||
|
||||
proc_map - Process map (/proc/<pid>/maps under Linux)
|
||||
|
||||
File system usage:
|
||||
|
||||
mountlist - List of currently mounted filesystems
|
||||
fsusage - File system usage
|
||||
|
||||
PORTABILITY:
|
||||
-----------
|
||||
|
||||
LibGtop is designed to be as portable as possible. None of the functions
|
||||
and retrieved information should be specific to a specific operating
|
||||
system. So you only need to port the system dependent part of the library
|
||||
to a new system and all application programs can then use libgtop on this
|
||||
new system.
|
||||
|
||||
CLIENT/SERVER MODEL:
|
||||
-------------------
|
||||
|
||||
Some systems like DEC OSF/1 or BSD require special priviledges for the calling
|
||||
proces to fetch the required information (SUID root/SGID kmem). To solve this
|
||||
problem, I designed a client/server model which makes a call to a SUID/SGID
|
||||
server which fetches the required information whenever it is required. This
|
||||
server is only called for features that really require priviledges, otherwise
|
||||
the sysdeps code is called directory (every user can get the CPU usage on
|
||||
DEC OSF/1, but only root can get information about processes other than the
|
||||
current one).
|
||||
|
||||
There is also some kind of daemon which can be used to fetch information from
|
||||
remote systems (still experimental). This daemon normally runs as nobody and
|
||||
calls the SUID/SGID itself when needed.
|
||||
|
||||
GNOME APPLETS:
|
||||
--------------
|
||||
|
||||
There are some applets and applications which already use LibGTop. They can
|
||||
be found in the `libgtop-apps' module in the GNOME CVS tree:
|
||||
|
||||
* Applets: cpuload, cpumemusage - they need LibGTop to get their information
|
||||
on all systems other than Linux.
|
||||
|
||||
* Applets: diskusage - just uses the mountlist/fsusage features of LibGTop,
|
||||
the one in gnome-core also works on other systems.
|
||||
|
||||
* Applets: multiload - I enhanced the cpuload applet a little bit, it is
|
||||
now a multi applet and can display CPU, Memory and
|
||||
Swap usages.
|
||||
|
||||
GTOP:
|
||||
----
|
||||
|
||||
This cool GNOME app has been ported to use LibGTop. It can be found in
|
||||
`libgtop-apps/gtop' in the GNOME CVS tree.
|
||||
|
||||
You can now use nearly the full functionality of GTop on FreeBSD !
|
||||
|
||||
|
||||
PLATTFORM SPECIFIC NOTES FOR LINUX:
|
||||
==================================
|
||||
|
||||
Under Linux, LibGTop should work without problems and read everything
|
||||
from /proc.
|
||||
|
||||
There is also an experimental kernel interface to read this information
|
||||
directly from the kernel with a system call - but this is still experimental
|
||||
and not well tested while I made this release.
|
||||
|
||||
PLATTFORM SPECIFIC NOTES FOR FREEBSD:
|
||||
====================================
|
||||
|
||||
LibGTop should now work under FreeBSD and give you the full functionality
|
||||
of GTop.
|
||||
|
||||
There are a few caveats:
|
||||
|
||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to kmem
|
||||
after installation and mount the /proc filesystem of FreeBSD
|
||||
(/proc/<pid>/mem is used withing kvm_uread ()).
|
||||
|
||||
* To get the filenames of the process maps displayed in GTop, you need to
|
||||
configure with the `--with-libgtop-inodedb' option (you need GDBM for this
|
||||
to work).
|
||||
|
||||
* You have then to create an inode database which is used to look up to
|
||||
filenames. This is done using the `mkinodedb' program which comes along
|
||||
with libgtop.
|
||||
|
||||
See the file src/inodedb/README for details:
|
||||
|
||||
The `mkinodedb' program which is build in this directory takes two
|
||||
command line arguments: the full pathname of the database to be created
|
||||
and the name of a configuration file consisting of directory and file names
|
||||
each on a line by itself - see `/etc/ld.so.conf' for an example.
|
||||
|
||||
Putting a directory name in this file means all regular files found in this
|
||||
directory are included in the database, but it will not recursively descend
|
||||
into subdirectories (for instance, we want everythink in `/usr/lib' but not
|
||||
every single file in `/usr/lib/sgml'). You can also use filenames to include
|
||||
a single file.
|
||||
|
||||
Have fun,
|
||||
|
||||
Martin <martin@home-of-linux.org>
|
363
ChangeLog
363
ChangeLog
@@ -1,3 +1,366 @@
|
||||
1999-05-28 Martin Baulig <baulig@Stud.Informatik.Uni-Trier.DE>
|
||||
|
||||
* include/glibtop/sysdeps.h: Remove the `GLIBTOP_SYSDEPS_FEATURES'
|
||||
and `GLIBTOP_SYSDEPS_POINTER_SIZE' constants and let numbering
|
||||
start at zero for `GLIBTOP_SYSDEPS_CPU'.
|
||||
|
||||
1999-05-28 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* glibtop.h (GLIBTOP_MOUNTENTRY_LEN): Move this
|
||||
* include/glibtop/limits.h: here.
|
||||
|
||||
1999-05-26 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in (INCLUDES): Define `LIBGTOP_VERSION_CODE' here so we
|
||||
can use version conditionals in the sysdeps code.
|
||||
|
||||
1999-05-25 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop-sysdeps.m4: Make the I4B check work for NetBSD.
|
||||
|
||||
1999-05-15 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop-sysdeps.m4: Remove the `--enable-hacker-mode' requirement
|
||||
for the BSDI, Solaris and Digital Unix ports.
|
||||
|
||||
1999-05-13 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop-sysdeps.m4 (GLIBTOP_SOLARIS_RELEASE): Define this on Solaris;
|
||||
we use version codes like 270 for SunOS 5.7 and 251 for SunOS 2.5.1.
|
||||
|
||||
1999-05-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* glibtop-config.h: This is a new generated file which will be
|
||||
included from <glibtop.h>. We define things like `u_int64_t' and
|
||||
LIBGTOP_*_VERSION here so we can compile LibGTop applications with
|
||||
`libgtop-config --cflags`.
|
||||
|
||||
* configure.in: Create glibtop-config.h.
|
||||
(GLIBTOP_*_INCS): Added `-I $(pkglibdir)/include'.
|
||||
|
||||
* libgtop-config.h.in: Added `--cflags', `--libs' and `--extra-libs'
|
||||
parameter so you can now use LibGTop even in no-autoconf apps.
|
||||
|
||||
* Makefile.am: Install `glibtop-config.h' in `$(pkglibdir)/include'.
|
||||
|
||||
1999-05-09 Drazen Kacar <dave@srce.hr>
|
||||
|
||||
* configure.in, acconfig.h: Added checks for <procfs.h>
|
||||
and <sys/procfs.h>
|
||||
|
||||
1999-05-09 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* doc: One should ship the documentation of a package together with
|
||||
the tarball, so I added this back.
|
||||
|
||||
1999-05-08 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/limits.h (GLIBTOP_MAX_GROUPS): Define this here.
|
||||
* include/glibtop/procuid.h (GLIBTOP_MAX_GROUPS): Moved to limits.h.
|
||||
|
||||
* features.def: We can use constants from <glibtop/limits.h> here.
|
||||
|
||||
1999-05-08 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop-sysdeps.m4: Use the setgid sys server for Solaris.
|
||||
|
||||
1999-05-06 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/sysdeps.h (glibtop_sysdeps): Added `pointer_size'
|
||||
which is the number of bits of a `void *'.
|
||||
|
||||
1999-05-03 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Set version number to 1.1.0. Also made a `LIBGTOP_STABLE_1_0'
|
||||
branch in CVS while development will go on here in the HEAD.
|
||||
|
||||
* LIBGTOP-VERSION: Set version number to 1.1.0 binary age 0,
|
||||
interface age 0. Set LIBGTOP_SERVER_VERSION to 50.
|
||||
|
||||
1999-04-18 Tuomas J. Lukka <lukka@iki.fi>
|
||||
|
||||
* Add missing comma in sysdeps/names/proctime.c
|
||||
|
||||
1999-04-18 Tuomas J. Lukka <lukka@iki.fi>
|
||||
|
||||
* Add missing comma in sysdeps/names/cpu.c
|
||||
|
||||
1999-04-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Thanks to Drazen Kacar for pointing out that not all processors must
|
||||
be running all the time under Solaris, so we need to have some flag
|
||||
to find out which processors are running.
|
||||
|
||||
* (glibtop_cpu): Added `xcpu_flags' bitmask of running processors.
|
||||
* (glibtop_proc_time): Added `xcpu_flags'.
|
||||
|
||||
1999-04-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/limits.h: New file.
|
||||
(GLIBTOP_NCPU): Define this here and increase it to 64.
|
||||
|
||||
1999-03-30 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Added some new features.
|
||||
|
||||
* (glibtop_uptime): Added `boot_time', boot time in seconds
|
||||
since the epoch.
|
||||
|
||||
* (glibtop_proc_state): Changed `state' from char to unsigned.
|
||||
`uid' and `gid' are effective uid and gid; added comment.
|
||||
Added `ruid' and `rgid' for guaranteed-to-be-correct real uid/gid.
|
||||
For SMP systems: added `has_cpu', `processor' and `last_processor'.
|
||||
|
||||
* (glibtop_proc_uid): Added suid, sgid, fsuid, fsgid, ngroups, groups.
|
||||
|
||||
* (glibtop_proc_segment): Added start_data, end_data, start_brk,
|
||||
end_brk, start_mmap, arg_start, arg_end, env_start, env_end.
|
||||
|
||||
* include/glibtop/procstate.h: Define some constants for the `state'
|
||||
field of glibtop_proc_state.
|
||||
|
||||
* include/glibtop/prockernel.h: Define some constants for the
|
||||
`k_flags' field of glibtop_proc_kernel.
|
||||
|
||||
1999-03-24 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in: Check for getloadavg () and swapctl () for
|
||||
Solaris.
|
||||
|
||||
1999-03-23 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* glibtop.h (glibtop): Added `wanted'. Applications can set the
|
||||
features they are interested in here. This way we don't waste CPU
|
||||
getting expensive data that aren't really needed.
|
||||
|
||||
* LIBGTOP-VERSION: This breaks backward compatibility and also
|
||||
added new functions; set binary age and interface age to 0.
|
||||
|
||||
1999-03-21 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Added a new sysctl () interface to the Linux Kernel.
|
||||
|
||||
* kernel/sysctl: Imported.
|
||||
|
||||
* libgtop-sysdeps.m4: If `--enable-hacker-mode' is given, check
|
||||
for my new sysctl () interface.
|
||||
|
||||
1999-03-20 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Removed all traces of my old table () Linux kernel hack.
|
||||
|
||||
* kernel: Removed.
|
||||
* sysdeps/kernel: Removed.
|
||||
* libgtop-sysdeps.m4: Don't check for table (); it does not
|
||||
exist any longer.
|
||||
|
||||
1999-03-19 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
This is *untested* - please read "sysdeps/freebsd/ChangeLog" !
|
||||
|
||||
* libgtop-sysdeps.m4: Use the `freebsd' sysdeps directory for
|
||||
BSDI as well if the `--enable-hacker-mode' parameter was given.
|
||||
|
||||
1999-03-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* LIBGTOP-VERSION: Set version number to 1.0.2 binary age 1,
|
||||
intergace age 1.
|
||||
|
||||
1999-03-17 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Imported first version of my Solaris port.
|
||||
|
||||
* configure.in: Check for `kstat_open' in `-lkstat'.
|
||||
|
||||
* libgtop-sysdeps.m4: Recognize the `solaris' sysdeps directory
|
||||
when the `--enable-hacker-mode' parameter was given.
|
||||
|
||||
1999-03-01 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 1.0.1.
|
||||
|
||||
* LIBGTOP-VERSION: Set version number to 1.0.1 binary age 0,
|
||||
interface age 0.
|
||||
|
||||
1999-03-01 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in (LIBGTOP_LIBS): Move `-lgtop_common' last to
|
||||
make it work with static-only libs. Thanks to Roderik Muit
|
||||
for pointing this out.
|
||||
(PERL): First check for `perl5', then for `perl'. Thanks again
|
||||
to Roderik Muit.
|
||||
|
||||
1999-02-24 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 1.0.0.
|
||||
|
||||
* LIBGTOP-VERSION: Set version number to 1.0.0 binary age 0,
|
||||
interface age 0.
|
||||
|
||||
* configure.in: Require GLIB >= 1.2.0.
|
||||
|
||||
1999-02-23 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 0.100.0.
|
||||
|
||||
Make the copyright of LibGTop be the GNU General Public License.
|
||||
|
||||
* LIBGTOP-VERSION: Set version number to 0.100.0 binary age 0,
|
||||
interface age 0.
|
||||
|
||||
* copyright.txt: Set the year to 1998-99 and pretty-format it a
|
||||
little bit. Same in all C source and header files.
|
||||
|
||||
1999-02-21 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in (LIBGTOP_*_INCS): Define `HAVE_GLIBTOP_MACHINE_H'
|
||||
if appropriate.
|
||||
|
||||
1999-02-19 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 0.99.9.
|
||||
|
||||
* LIBGTOP-VERSION: Set version number to 0.99.9 binary age 0,
|
||||
interface age 0.
|
||||
|
||||
* include/glibtop/error.h: Don't include <glib.h>.
|
||||
* sysdeps/common/error.c: Use `int' not `gint'.
|
||||
|
||||
* misc/porting-libgtop.txt: Added a few instructions on how
|
||||
to port LibGTop to Solaris.
|
||||
|
||||
* Replace all __BEGIN_DELCS with LIBGTOP_BEGIN_DECLS and all
|
||||
__END_DECLS with LIBGTOP_END_DECLS; remove all __P macros and
|
||||
use real function prototypes.
|
||||
|
||||
1999-02-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/*.h: Use glib-like function prototypes
|
||||
instead of "extern <function> __P((args))".
|
||||
|
||||
* sysdeps/common/error.h: Replaced inline with static.
|
||||
|
||||
1999-02-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* */*.awk: Replaced all awk scripts with perl scripts since it is
|
||||
more likely that people have a working perl interpreter than GNU
|
||||
awk on their system.
|
||||
|
||||
1999-02-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* sysdeps/common/error.c (glibtop_error_r, glibtop_warn_r): Define
|
||||
them as G_INLINE_FUNC in <glibtop/errno.h> if possible.
|
||||
(glibtop_error_io_r, glibtop_warn_io_r): Likewise.
|
||||
(glibtop_error_vr, glibtop_warn_vr): New functions taking a va_list.
|
||||
(glibtop_error_io_vr, glibtop_warn_io_vr): New functions taking an
|
||||
errno an a va_list.
|
||||
|
||||
1999-02-17 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 0.99.8.
|
||||
|
||||
1999-02-16 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* examples/Makefile.am, lib/Makefile.am, src/daemon/Makefile.am,
|
||||
sysdeps/common/Makefile.am, sysdeps/guile/Makefile.am,
|
||||
sysdeps/guile/names/Makefile.am, sysdeps/kernel/Makefile.am,
|
||||
sysdeps/linux/Makefile.am, sysdeps/names/Makefile.am,
|
||||
sysdeps/osf1/Makefile.am, sysdeps/stub/Makefile.am,
|
||||
sysdeps/stub_suid/Makefile.am, sysdeps/sun4/Makefile.am:
|
||||
Initialize INCLUDES to `@INCLUDES@' to make it clear that it is
|
||||
set in configure.in. It is ok to add things there, but you must
|
||||
not remove the `@INCLUDES@'.
|
||||
|
||||
1999-02-15 Jeff Garzik <jgarzik@pobox.com>
|
||||
|
||||
* examples/Makefile.am, lib/Makefile.am, src/daemon/Makefile.am,
|
||||
sysdeps/common/Makefile.am, sysdeps/guile/Makefile.am,
|
||||
sysdeps/guile/names/Makefile.am, sysdeps/kernel/Makefile.am,
|
||||
sysdeps/linux/Makefile.am, sysdeps/names/Makefile.am,
|
||||
sysdeps/osf1/Makefile.am, sysdeps/stub/Makefile.am,
|
||||
sysdeps/stub_suid/Makefile.am, sysdeps/sun4/Makefile.am:
|
||||
Removed hardcoded gcc arguments from CFLAGS.
|
||||
|
||||
* include/glibtop/error.h:
|
||||
Added FIXME comment about varargs macros breaking Sun cc
|
||||
compilation.
|
||||
|
||||
1999-02-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Thanks to Frederic Devernay for pointing out that we need to define
|
||||
__BEGIN_DECLS and __END_DECLS when not using GNOME.
|
||||
|
||||
* configure.in: Define `WITHOUT_GNOME' if appropriate.
|
||||
|
||||
* include/glibtop/global.h: Define __BEGIN_DECLS and __END_DECLS
|
||||
when WITHOUT_GNOME not when _IN_LIBGTOP.
|
||||
|
||||
1999-02-12 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/global.h: Applied patch from Frederic Devernay;
|
||||
__BEGIN_DECLS and __END_DECLS are only defined inside _IN_LIBGTOP.
|
||||
|
||||
1999-02-10 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in (program_invocation_name): Check whether we need
|
||||
to declare this; some libc5 systems define that symbol but do
|
||||
not declare it in any header file.
|
||||
|
||||
1999-02-10 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop.spec.in, libgtop.spec: Replaced libgtop.spec with
|
||||
with libgtop.spec.in, so libgtop.spec is now a generated file.
|
||||
|
||||
1999-02-05 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/global.h: Enclose some of the stuff in this
|
||||
file in `#ifdef _IN_LIBGTOP'.
|
||||
|
||||
1999-02-04 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* include/glibtop/global.h (_): Use dgettext (), not gettext ().
|
||||
|
||||
1999-01-23 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtopConf.sh.in (LIBGTOP_DATADIR): New variable.
|
||||
|
||||
1999-01-06 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop-sysdeps.m4: Always enable SMP support for Linux.
|
||||
|
||||
1999-01-03 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 0.99.2.
|
||||
|
||||
1999-01-05 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* libgtop.spec: Always build SMP support; binary packages should
|
||||
contain all possible features.
|
||||
|
||||
* configure.in: LibGTop will now require GLIB >= 1.1.12.
|
||||
|
||||
1999-01-05 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in: Make it abort if the `dc' utility is not installed.
|
||||
|
||||
1999-01-03 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 0.99.1.
|
||||
|
||||
1998-12-25 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* configure.in (LIBGTOP_INCS): Define `HAVE_LIBGTOP_SMP' if SMP
|
||||
support was enabled.
|
||||
|
||||
1998-12-22 Yukihiro Nakai <Nakai@TokyoNet.AD.JP>
|
||||
|
||||
* configure.in (ALL_LINGUAS): Added `ja'.
|
||||
|
||||
1998-12-18 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* Makefile.am: Applied patch from Edward Jason Riedy to use '#'
|
||||
as separator in sed commands.
|
||||
|
||||
1998-12-15 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
Released LibGTop 0.99.0 which is a feature-freezed version
|
||||
|
@@ -6,15 +6,15 @@
|
||||
# if backwards compatibility has been broken,
|
||||
# set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0.
|
||||
#
|
||||
LIBGTOP_MAJOR_VERSION=0
|
||||
LIBGTOP_MINOR_VERSION=99
|
||||
LIBGTOP_MAJOR_VERSION=1
|
||||
LIBGTOP_MINOR_VERSION=1
|
||||
LIBGTOP_MICRO_VERSION=0
|
||||
|
||||
LIBGTOP_INTERFACE_AGE=0
|
||||
LIBGTOP_BINARY_AGE=0
|
||||
|
||||
# Increase each time you change the client/server protocol.
|
||||
LIBGTOP_SERVER_VERSION=3
|
||||
LIBGTOP_SERVER_VERSION=50
|
||||
|
||||
# Don't change this
|
||||
LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION
|
||||
|
71
Makefile.am
71
Makefile.am
@@ -11,13 +11,27 @@ support = support
|
||||
endif
|
||||
|
||||
SUBDIRS = po intl $(support) macros misc include sysdeps lib src \
|
||||
$(examples_SUBDIRS)
|
||||
$(examples_SUBDIRS) doc
|
||||
|
||||
include_HEADERS = glibtop.h
|
||||
configincludedir = $(pkglibdir)/include
|
||||
|
||||
EXTRA_DIST = autogen.sh libgtop.spec copyright.txt libgtopConf.sh.in \
|
||||
EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt libgtopConf.sh.in \
|
||||
LIBGTOP-VERSION features.def libgtop-config.in RELNOTES-0.25 \
|
||||
libgtop-sysdeps.m4
|
||||
RELNOTES-1.0 libgtop-sysdeps.m4 README NEWS.old libgtop-mirror.sh
|
||||
|
||||
configinclude_DATA = \
|
||||
glibtop-config.h
|
||||
|
||||
BUILT_SOURCES = stamp-gc-h #note: not glibtop-config.h
|
||||
glibtop-config.h: stamp-gc-h
|
||||
@:
|
||||
stamp-gc-h: config.status
|
||||
CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=glibtop-config.h ./config.status
|
||||
echo timestamp > stamp-gc-h
|
||||
|
||||
dist-hook:
|
||||
cp libgtop.spec $(distdir)
|
||||
|
||||
release:
|
||||
$(MAKE) dist distdir=$(PACKAGE)-$(VERSION)
|
||||
@@ -44,35 +58,36 @@ bin_SCRIPTS = $(top_builddir)/libgtop-config
|
||||
## is an autoconf feature, not a bug).
|
||||
libgtopConf.sh: libgtopConf.sh.in Makefile
|
||||
## Use sed and then mv to avoid problems if the user interrupts.
|
||||
sed -e 's,\@LIBGTOP_LIBDIR\@,$(libdir),g' \
|
||||
-e 's,\@LIBGTOP_INCLUDEDIR\@,$(includedir),g' \
|
||||
-e 's,\@LIBGTOP_EXTRA_LIBS\@,$(LIBGTOP_EXTRA_LIBS),g' \
|
||||
-e 's,\@LIBGTOP_LIBS\@,$(LIBGTOP_LIBS),g' \
|
||||
-e 's,\@LIBGTOP_INCS\@,$(LIBGTOP_INCS),g' \
|
||||
-e 's,\@LIBGTOP_NAMES_LIBS\@,$(LIBGTOP_NAMES_LIBS),g' \
|
||||
-e 's,\@LIBGTOP_NAMES_INCS\@,$(LIBGTOP_NAMES_INCS),g' \
|
||||
-e 's,\@LIBGTOP_GUILE_LIBS\@,$(LIBGTOP_GUILE_LIBS),g' \
|
||||
-e 's,\@LIBGTOP_GUILE_INCS\@,$(LIBGTOP_GUILE_INCS),g' \
|
||||
-e 's,\@LIBGTOP_GUILE_NAMES_LIBS\@,$(LIBGTOP_GUILE_NAMES_LIBS),g' \
|
||||
-e 's,\@LIBGTOP_GUILE_NAMES_INCS\@,$(LIBGTOP_GUILE_NAMES_INCS),g' \
|
||||
-e 's,\@LIBGTOP_BINDIR\@,$(LIBGTOP_BINDIR),g' \
|
||||
-e 's,\@LIBGTOP_SERVER\@,$(LIBGTOP_SERVER),g' \
|
||||
-e 's,\@LIBGTOP_MAJOR_VERSION\@,$(LIBGTOP_MAJOR_VERSION),g' \
|
||||
-e 's,\@LIBGTOP_MINOR_VERSION\@,$(LIBGTOP_MINOR_VERSION),g' \
|
||||
-e 's,\@LIBGTOP_MICRO_VERSION\@,$(LIBGTOP_MICRO_VERSION),g' \
|
||||
-e 's,\@LIBGTOP_VERSION\@,$(LIBGTOP_VERSION),g' \
|
||||
-e 's,\@LIBGTOP_VERSION_CODE\@,$(LIBGTOP_VERSION_CODE),g' \
|
||||
-e 's,\@LIBGTOP_SERVER_VERSION\@,$(LIBGTOP_SERVER_VERSION),g' \
|
||||
-e 's,\@libgtop_sysdeps_dir\@,$(libgtop_sysdeps_dir),g' \
|
||||
-e 's,\@libgtop_need_server\@,$(libgtop_need_server),g' \
|
||||
-e 's,\@libgtop_use_machine_h\@,$(libgtop_use_machine_h),g' \
|
||||
-e 's,\@libgtop_guile_found\@,$(libgtop_guile_found),g' \
|
||||
-e 's,\@libgtop_want_examples\@,$(libgtop_want_examples),g' \
|
||||
sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
|
||||
-e 's#\@LIBGTOP_INCLUDEDIR\@#$(includedir)#g' \
|
||||
-e 's#\@LIBGTOP_DATADIR\@#$(datadir)#g' \
|
||||
-e 's#\@LIBGTOP_EXTRA_LIBS\@#$(LIBGTOP_EXTRA_LIBS)#g' \
|
||||
-e 's#\@LIBGTOP_LIBS\@#$(LIBGTOP_LIBS)#g' \
|
||||
-e 's#\@LIBGTOP_INCS\@#$(LIBGTOP_INCS)#g' \
|
||||
-e 's#\@LIBGTOP_NAMES_LIBS\@#$(LIBGTOP_NAMES_LIBS)#g' \
|
||||
-e 's#\@LIBGTOP_NAMES_INCS\@#$(LIBGTOP_NAMES_INCS)#g' \
|
||||
-e 's#\@LIBGTOP_GUILE_LIBS\@#$(LIBGTOP_GUILE_LIBS)#g' \
|
||||
-e 's#\@LIBGTOP_GUILE_INCS\@#$(LIBGTOP_GUILE_INCS)#g' \
|
||||
-e 's#\@LIBGTOP_GUILE_NAMES_LIBS\@#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
|
||||
-e 's#\@LIBGTOP_GUILE_NAMES_INCS\@#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
|
||||
-e 's#\@LIBGTOP_BINDIR\@#$(LIBGTOP_BINDIR)#g' \
|
||||
-e 's#\@LIBGTOP_SERVER\@#$(LIBGTOP_SERVER)#g' \
|
||||
-e 's#\@LIBGTOP_MAJOR_VERSION\@#$(LIBGTOP_MAJOR_VERSION)#g' \
|
||||
-e 's#\@LIBGTOP_MINOR_VERSION\@#$(LIBGTOP_MINOR_VERSION)#g' \
|
||||
-e 's#\@LIBGTOP_MICRO_VERSION\@#$(LIBGTOP_MICRO_VERSION)#g' \
|
||||
-e 's#\@LIBGTOP_VERSION\@#$(LIBGTOP_VERSION)#g' \
|
||||
-e 's#\@LIBGTOP_VERSION_CODE\@#$(LIBGTOP_VERSION_CODE)#g' \
|
||||
-e 's#\@LIBGTOP_SERVER_VERSION\@#$(LIBGTOP_SERVER_VERSION)#g' \
|
||||
-e 's#\@libgtop_sysdeps_dir\@#$(libgtop_sysdeps_dir)#g' \
|
||||
-e 's#\@libgtop_need_server\@#$(libgtop_need_server)#g' \
|
||||
-e 's#\@libgtop_use_machine_h\@#$(libgtop_use_machine_h)#g' \
|
||||
-e 's#\@libgtop_guile_found\@#$(libgtop_guile_found)#g' \
|
||||
-e 's#\@libgtop_want_examples\@#$(libgtop_want_examples)#g' \
|
||||
< $(srcdir)/libgtopConf.sh.in > libgtopConf.tmp \
|
||||
&& mv libgtopConf.tmp libgtopConf.sh
|
||||
|
||||
libgtop-config: libgtop-config.in Makefile
|
||||
sed -e 's,\@LIBGTOP_LIBDIR\@,$(libdir),g' \
|
||||
sed -e 's#\@LIBGTOP_LIBDIR\@#$(libdir)#g' \
|
||||
< $(srcdir)/libgtop-config.in > libgtop-config.tmp \
|
||||
&& mv libgtop-config.tmp libgtop-config && \
|
||||
chmod 755 libgtop-config
|
||||
|
244
NEWS
244
NEWS
@@ -1,244 +0,0 @@
|
||||
$Id$
|
||||
|
||||
Jun/01/1998
|
||||
===========
|
||||
|
||||
* We have some new ``suffix rules'':
|
||||
|
||||
'__l' is a function defined in the client part;
|
||||
'__s' is a function defined in the sysdeps part and
|
||||
'__p' is a function that needs special priviledges.
|
||||
'__r' is mapped either on '__p' or on '__s'.
|
||||
the function without suffix is mapped on '__l'.
|
||||
|
||||
* We now decide at runtime whether or not using the server
|
||||
is required for a particular function. All user programs
|
||||
now call the '__l' function defined in '-lgtop' (in the lib
|
||||
subdir). These functions either use 'glibtop_call__l' to
|
||||
call the server or call the '__r' function.
|
||||
|
||||
* A function in the sysdeps directory now has the '__s' suffix
|
||||
if it do not need any priviledges (and thus can be called directly
|
||||
from client code) and the '__p' suffix otherwise (when it has to
|
||||
be called from the server).
|
||||
|
||||
* If you call one of these functions:
|
||||
|
||||
-> use the '__p' suffix to be sure to get the SUID-safe one
|
||||
(used in the server).
|
||||
-> use the '__s' suffix to be sure to get a function that
|
||||
doesn't need any priviledges.
|
||||
-> use the '__r' suffix otherwise (it is mapped either on the
|
||||
'__p' or on the '__s' one).
|
||||
|
||||
Only use the '__p' and '__s' functions in a 'GLIBTOP_SUID_<feature>'
|
||||
conditional, otherwise you'll get undefined symbols !
|
||||
|
||||
* The server is now started from 'glibtop_init__r', but only when
|
||||
it's really needed; for instance on DEC OSF/1 you only need it
|
||||
for the proc* features - if you program only fetches the CPU usage,
|
||||
now server will be started.
|
||||
|
||||
* Sorry, at the moment everything is a little bit unstable, I'm doing
|
||||
heavy changes. I've just some great ideas which still need some work:
|
||||
|
||||
-> I want to have a SUID server that only implements those features
|
||||
that need to be SUID; everything else uses the sysdeps code directly.
|
||||
|
||||
-> If a program only uses stuff that do not need the server, the
|
||||
server will not be started at all.
|
||||
|
||||
-> I'm working on some kind of proxy server that can be used on a remote
|
||||
host; in feature one can then use the MDI stuff from ghex in gtop to
|
||||
have notebook pages displaying processes from different hosts.
|
||||
|
||||
* Well it is as much unstable that it only works under Linux at the moment.
|
||||
|
||||
1998-06-01 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* sysdeps/common/sysdeps.c: now using '__r' functions,
|
||||
they are #defined either as the '__p' or the '__s' ones.
|
||||
|
||||
* sysdeps/linux/*.c: changed call of 'glibtop_init__r',
|
||||
it now takes two additional arguments.
|
||||
|
||||
* examples/{first.c, second.c}: now using 'glibtop_init'
|
||||
instead of 'glibtop_init__r'.
|
||||
|
||||
* include/glibtop/sysdeps.h: added 'dummy' member so
|
||||
'GLIBTOP_SYSDEPS_<feature>' now start with 1.
|
||||
|
||||
* include/glibtop/*.h: we now #define 'glibtop_get_<feature>'
|
||||
as 'glibtop_get_<feature>__l' and 'glibtop_get_<feature>__r'
|
||||
either as the '__p' or the '__s' function.
|
||||
|
||||
* lib/*.c: removed #if's - we now decide at runtime
|
||||
whether to use the server or to call the appropriate
|
||||
function for the sysdeps directory.
|
||||
|
||||
1998-05-28 Martin Baulig <baulig@merkur.uni-trier.de>
|
||||
|
||||
* src/server/main.c: we now use the '__p' functions,
|
||||
but only if the appropriate 'GLIBTOP_SUID_<feature>'
|
||||
has a non-zero value.
|
||||
|
||||
* configure.in (@machine_incs@): always use
|
||||
`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
|
||||
longer conditional.
|
||||
|
||||
* examples/Makefile.am: removed the '_linux' examples.
|
||||
|
||||
* sysdeps/linux/*.c: renamed all functions implementing
|
||||
features to '__s'.
|
||||
|
||||
* lib/*.c: renamed all functions implementing features
|
||||
to '__l'; we only emit code for those functions if the
|
||||
corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
|
||||
|
||||
* include/glibtop/*.h: added some new function suffixes:
|
||||
'__l' is a function defined in the client part;
|
||||
'__s' is a function defined in the sysdeps part and
|
||||
'__p' is a function that needs special priviledges.
|
||||
'__r' is mapped either on '__l' or on '__s'.
|
||||
|
||||
* sysdeps/linux/glibtop_server.h: New file -
|
||||
defines system dependent constants 'GLIBTOP_SUID_<feature>'
|
||||
being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
|
||||
whether or not this feature requires using the server.
|
||||
|
||||
* lib/sysdeps.c: removed that file; it is no longer
|
||||
needed.
|
||||
|
||||
|
||||
|
||||
May/21/1998
|
||||
===========
|
||||
|
||||
* doc/gnome-hackers.sgml: This is a short intro on how to use libgtop
|
||||
in the GNOME project. It covers especially the use of its 'configure'
|
||||
script and the automatically generated 'gtopConf.sh'.
|
||||
|
||||
May/20/1998
|
||||
===========
|
||||
|
||||
* 'gtopConf.sh' now defines 'GTOP_LIBS' and 'GTOP_INCS' in a manner
|
||||
that they contain everything that is needed to link some program with
|
||||
libgtop. It will use '-lgtop' only if the server is really needed and
|
||||
'-lgtop_sysdeps' otherwise;
|
||||
|
||||
* 'gtopConf.sh' additionally defines 'GTOP_GUILE_LIBS' and 'GTOP_GUILE_INCS'
|
||||
containing everything that is needed to link some program both with
|
||||
libgtop and its guile interface. They are identically to 'GTOP_LIBS'
|
||||
and 'GTOP_INCS' if building the guile interface is disabled or guile
|
||||
cannot be found on the system.
|
||||
|
||||
* 'configure' takes additional arguments '--enable-libgtop-server' and
|
||||
'--disable-libgtop-server' to use the server even when it's not needed
|
||||
or to disable it's use where it's needed.
|
||||
|
||||
* 'configure' takes an argument '--without-libgtop-guile' to disable
|
||||
guile support.
|
||||
|
||||
* 'configure takes an argument '--without-libgtop-names' to remove
|
||||
'-lgtop_names' (and '-lgtop_guile_names' when we have guile) from
|
||||
'GTOP_LIBS'; in this case these libraries are not even built.
|
||||
|
||||
May/19/1998
|
||||
===========
|
||||
|
||||
* Libgtop is now in the GNOME CVS Repository.
|
||||
|
||||
May/17/1998
|
||||
===========
|
||||
|
||||
* we have now 'const char *glibtop_types_* []' consisting
|
||||
of the C types of the corresponding files of '_glibtop_*'.
|
||||
|
||||
* added guile function '(glibtop-types-*)' and '(glibtop-descriptions-*)'.
|
||||
|
||||
May/10/1998
|
||||
===========
|
||||
|
||||
* Port to DEC OSF1 3.0 has been made:
|
||||
|
||||
cpu (total, user, nice, sys, idle)
|
||||
mem (total, used, free)
|
||||
|
||||
loadavg (loadavg)
|
||||
uptime (uptime)
|
||||
|
||||
msg_limits (map, max, mnb, mni, tql)
|
||||
sem_limits (mni, msl, opm, vmx, aem)
|
||||
shm_limits (max, min, mni, seg)
|
||||
|
||||
The following need the server to be SUID root:
|
||||
|
||||
proclist (total, number, size)
|
||||
procdata (cmd, state, uid, pid, ppid, pgrp, tty, k_flags,
|
||||
session, tpgid, sigignore, sigcatch, signal, nice,
|
||||
priority, resident, rss, vsize, utime, stime,
|
||||
cutime, cstime, trs, drs)
|
||||
|
||||
May/07/1998
|
||||
===========
|
||||
|
||||
* 'flags' member of sysdeps/linux/procdata.c is now
|
||||
'unsigned long flags [2]'.
|
||||
|
||||
* When we give glibtop_get_procdata () a pid of zero, only
|
||||
the flags are returned.
|
||||
|
||||
* We now use static constants instead of #defines for sysdeps flags.
|
||||
|
||||
May/03/1998
|
||||
===========
|
||||
|
||||
* VPATH-Build now working; sometimes it's necessary to copy
|
||||
$(top_srcdir)/po/cat-id-tbl.c to $(top_builddir)/po.
|
||||
|
||||
* The library has been tested on the following systems:
|
||||
|
||||
- i686-pc-linux-gnu
|
||||
- sparc-sun-sunos4.1.1
|
||||
- alpha-dec-osf1 (that's DEC OSF1 3.0 and 3.2)
|
||||
|
||||
* Compilation has been tested on the following systems (I have no root
|
||||
access there and cannot test the library because of this):
|
||||
|
||||
- sparc-sun-solaris2
|
||||
- i386-bsdi
|
||||
|
||||
* Does no longer require Gnome.
|
||||
|
||||
* Guile-Parts are compiled only if guile can be found.
|
||||
|
||||
* Some of the executables are statically linked to copy them more easily
|
||||
between machines.
|
||||
|
||||
May/02/1998
|
||||
===========
|
||||
|
||||
* Global changes to the interfaces, all functions except glibtop_open()
|
||||
and glibtop_close() that took a server argument have now a '__r' suffix;
|
||||
the original name is now a macro that uses glibtop_global_server.
|
||||
|
||||
Apr/10/1998
|
||||
===========
|
||||
Added new directory sysdeps/guile/names. It is the guile interface
|
||||
to the gtop_names library found in sysdeps/names. Changed
|
||||
GLIBTOP_DESCRIPTIONS to GLIBTOP_NAMES and added GLIBTOP_GUILE_NAMES
|
||||
to the header files.
|
||||
|
||||
Apr/09/1998
|
||||
===========
|
||||
Added new directories guile and names to sysdeps. In names are
|
||||
some string constants about the data stored in the structures.
|
||||
guile is a guile interface for the library. It is used in
|
||||
examples/third (which has been completely rewritten).
|
||||
The header files define things from names when GLIBTOP_DESCRIPTIONS
|
||||
if defined and/or from guile when HAVE_GUILE is defined.
|
||||
|
||||
Apr/08/1998
|
||||
===========
|
||||
|
||||
Added guile wrapper for the library (see examples/third).
|
||||
|
244
NEWS.old
Normal file
244
NEWS.old
Normal file
@@ -0,0 +1,244 @@
|
||||
$Id$
|
||||
|
||||
Jun/01/1998
|
||||
===========
|
||||
|
||||
* We have some new ``suffix rules'':
|
||||
|
||||
'__l' is a function defined in the client part;
|
||||
'__s' is a function defined in the sysdeps part and
|
||||
'__p' is a function that needs special priviledges.
|
||||
'__r' is mapped either on '__p' or on '__s'.
|
||||
the function without suffix is mapped on '__l'.
|
||||
|
||||
* We now decide at runtime whether or not using the server
|
||||
is required for a particular function. All user programs
|
||||
now call the '__l' function defined in '-lgtop' (in the lib
|
||||
subdir). These functions either use 'glibtop_call__l' to
|
||||
call the server or call the '__r' function.
|
||||
|
||||
* A function in the sysdeps directory now has the '__s' suffix
|
||||
if it do not need any priviledges (and thus can be called directly
|
||||
from client code) and the '__p' suffix otherwise (when it has to
|
||||
be called from the server).
|
||||
|
||||
* If you call one of these functions:
|
||||
|
||||
-> use the '__p' suffix to be sure to get the SUID-safe one
|
||||
(used in the server).
|
||||
-> use the '__s' suffix to be sure to get a function that
|
||||
doesn't need any priviledges.
|
||||
-> use the '__r' suffix otherwise (it is mapped either on the
|
||||
'__p' or on the '__s' one).
|
||||
|
||||
Only use the '__p' and '__s' functions in a 'GLIBTOP_SUID_<feature>'
|
||||
conditional, otherwise you'll get undefined symbols !
|
||||
|
||||
* The server is now started from 'glibtop_init__r', but only when
|
||||
it's really needed; for instance on DEC OSF/1 you only need it
|
||||
for the proc* features - if you program only fetches the CPU usage,
|
||||
now server will be started.
|
||||
|
||||
* Sorry, at the moment everything is a little bit unstable, I'm doing
|
||||
heavy changes. I've just some great ideas which still need some work:
|
||||
|
||||
-> I want to have a SUID server that only implements those features
|
||||
that need to be SUID; everything else uses the sysdeps code directly.
|
||||
|
||||
-> If a program only uses stuff that do not need the server, the
|
||||
server will not be started at all.
|
||||
|
||||
-> I'm working on some kind of proxy server that can be used on a remote
|
||||
host; in feature one can then use the MDI stuff from ghex in gtop to
|
||||
have notebook pages displaying processes from different hosts.
|
||||
|
||||
* Well it is as much unstable that it only works under Linux at the moment.
|
||||
|
||||
1998-06-01 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* sysdeps/common/sysdeps.c: now using '__r' functions,
|
||||
they are #defined either as the '__p' or the '__s' ones.
|
||||
|
||||
* sysdeps/linux/*.c: changed call of 'glibtop_init__r',
|
||||
it now takes two additional arguments.
|
||||
|
||||
* examples/{first.c, second.c}: now using 'glibtop_init'
|
||||
instead of 'glibtop_init__r'.
|
||||
|
||||
* include/glibtop/sysdeps.h: added 'dummy' member so
|
||||
'GLIBTOP_SYSDEPS_<feature>' now start with 1.
|
||||
|
||||
* include/glibtop/*.h: we now #define 'glibtop_get_<feature>'
|
||||
as 'glibtop_get_<feature>__l' and 'glibtop_get_<feature>__r'
|
||||
either as the '__p' or the '__s' function.
|
||||
|
||||
* lib/*.c: removed #if's - we now decide at runtime
|
||||
whether to use the server or to call the appropriate
|
||||
function for the sysdeps directory.
|
||||
|
||||
1998-05-28 Martin Baulig <baulig@merkur.uni-trier.de>
|
||||
|
||||
* src/server/main.c: we now use the '__p' functions,
|
||||
but only if the appropriate 'GLIBTOP_SUID_<feature>'
|
||||
has a non-zero value.
|
||||
|
||||
* configure.in (@machine_incs@): always use
|
||||
`-I$(top_srcdir)/sysdeps/@sysdeps_dir@'; it's no
|
||||
longer conditional.
|
||||
|
||||
* examples/Makefile.am: removed the '_linux' examples.
|
||||
|
||||
* sysdeps/linux/*.c: renamed all functions implementing
|
||||
features to '__s'.
|
||||
|
||||
* lib/*.c: renamed all functions implementing features
|
||||
to '__l'; we only emit code for those functions if the
|
||||
corresponding 'GLIBTOP_SUID_<feature>' has a positive value.
|
||||
|
||||
* include/glibtop/*.h: added some new function suffixes:
|
||||
'__l' is a function defined in the client part;
|
||||
'__s' is a function defined in the sysdeps part and
|
||||
'__p' is a function that needs special priviledges.
|
||||
'__r' is mapped either on '__l' or on '__s'.
|
||||
|
||||
* sysdeps/linux/glibtop_server.h: New file -
|
||||
defines system dependent constants 'GLIBTOP_SUID_<feature>'
|
||||
being either 'GLIBTOP_SYSDEPS_<feature>'+1 depending upon
|
||||
whether or not this feature requires using the server.
|
||||
|
||||
* lib/sysdeps.c: removed that file; it is no longer
|
||||
needed.
|
||||
|
||||
|
||||
|
||||
May/21/1998
|
||||
===========
|
||||
|
||||
* doc/gnome-hackers.sgml: This is a short intro on how to use libgtop
|
||||
in the GNOME project. It covers especially the use of its 'configure'
|
||||
script and the automatically generated 'gtopConf.sh'.
|
||||
|
||||
May/20/1998
|
||||
===========
|
||||
|
||||
* 'gtopConf.sh' now defines 'GTOP_LIBS' and 'GTOP_INCS' in a manner
|
||||
that they contain everything that is needed to link some program with
|
||||
libgtop. It will use '-lgtop' only if the server is really needed and
|
||||
'-lgtop_sysdeps' otherwise;
|
||||
|
||||
* 'gtopConf.sh' additionally defines 'GTOP_GUILE_LIBS' and 'GTOP_GUILE_INCS'
|
||||
containing everything that is needed to link some program both with
|
||||
libgtop and its guile interface. They are identically to 'GTOP_LIBS'
|
||||
and 'GTOP_INCS' if building the guile interface is disabled or guile
|
||||
cannot be found on the system.
|
||||
|
||||
* 'configure' takes additional arguments '--enable-libgtop-server' and
|
||||
'--disable-libgtop-server' to use the server even when it's not needed
|
||||
or to disable it's use where it's needed.
|
||||
|
||||
* 'configure' takes an argument '--without-libgtop-guile' to disable
|
||||
guile support.
|
||||
|
||||
* 'configure takes an argument '--without-libgtop-names' to remove
|
||||
'-lgtop_names' (and '-lgtop_guile_names' when we have guile) from
|
||||
'GTOP_LIBS'; in this case these libraries are not even built.
|
||||
|
||||
May/19/1998
|
||||
===========
|
||||
|
||||
* Libgtop is now in the GNOME CVS Repository.
|
||||
|
||||
May/17/1998
|
||||
===========
|
||||
|
||||
* we have now 'const char *glibtop_types_* []' consisting
|
||||
of the C types of the corresponding files of '_glibtop_*'.
|
||||
|
||||
* added guile function '(glibtop-types-*)' and '(glibtop-descriptions-*)'.
|
||||
|
||||
May/10/1998
|
||||
===========
|
||||
|
||||
* Port to DEC OSF1 3.0 has been made:
|
||||
|
||||
cpu (total, user, nice, sys, idle)
|
||||
mem (total, used, free)
|
||||
|
||||
loadavg (loadavg)
|
||||
uptime (uptime)
|
||||
|
||||
msg_limits (map, max, mnb, mni, tql)
|
||||
sem_limits (mni, msl, opm, vmx, aem)
|
||||
shm_limits (max, min, mni, seg)
|
||||
|
||||
The following need the server to be SUID root:
|
||||
|
||||
proclist (total, number, size)
|
||||
procdata (cmd, state, uid, pid, ppid, pgrp, tty, k_flags,
|
||||
session, tpgid, sigignore, sigcatch, signal, nice,
|
||||
priority, resident, rss, vsize, utime, stime,
|
||||
cutime, cstime, trs, drs)
|
||||
|
||||
May/07/1998
|
||||
===========
|
||||
|
||||
* 'flags' member of sysdeps/linux/procdata.c is now
|
||||
'unsigned long flags [2]'.
|
||||
|
||||
* When we give glibtop_get_procdata () a pid of zero, only
|
||||
the flags are returned.
|
||||
|
||||
* We now use static constants instead of #defines for sysdeps flags.
|
||||
|
||||
May/03/1998
|
||||
===========
|
||||
|
||||
* VPATH-Build now working; sometimes it's necessary to copy
|
||||
$(top_srcdir)/po/cat-id-tbl.c to $(top_builddir)/po.
|
||||
|
||||
* The library has been tested on the following systems:
|
||||
|
||||
- i686-pc-linux-gnu
|
||||
- sparc-sun-sunos4.1.1
|
||||
- alpha-dec-osf1 (that's DEC OSF1 3.0 and 3.2)
|
||||
|
||||
* Compilation has been tested on the following systems (I have no root
|
||||
access there and cannot test the library because of this):
|
||||
|
||||
- sparc-sun-solaris2
|
||||
- i386-bsdi
|
||||
|
||||
* Does no longer require Gnome.
|
||||
|
||||
* Guile-Parts are compiled only if guile can be found.
|
||||
|
||||
* Some of the executables are statically linked to copy them more easily
|
||||
between machines.
|
||||
|
||||
May/02/1998
|
||||
===========
|
||||
|
||||
* Global changes to the interfaces, all functions except glibtop_open()
|
||||
and glibtop_close() that took a server argument have now a '__r' suffix;
|
||||
the original name is now a macro that uses glibtop_global_server.
|
||||
|
||||
Apr/10/1998
|
||||
===========
|
||||
Added new directory sysdeps/guile/names. It is the guile interface
|
||||
to the gtop_names library found in sysdeps/names. Changed
|
||||
GLIBTOP_DESCRIPTIONS to GLIBTOP_NAMES and added GLIBTOP_GUILE_NAMES
|
||||
to the header files.
|
||||
|
||||
Apr/09/1998
|
||||
===========
|
||||
Added new directories guile and names to sysdeps. In names are
|
||||
some string constants about the data stored in the structures.
|
||||
guile is a guile interface for the library. It is used in
|
||||
examples/third (which has been completely rewritten).
|
||||
The header files define things from names when GLIBTOP_DESCRIPTIONS
|
||||
if defined and/or from guile when HAVE_GUILE is defined.
|
||||
|
||||
Apr/08/1998
|
||||
===========
|
||||
|
||||
Added guile wrapper for the library (see examples/third).
|
59
README
59
README
@@ -1,57 +1,8 @@
|
||||
Hi all,
|
||||
$Id$
|
||||
|
||||
[PLEASE READ THE FILE ``README.LATEST'' FOR LATEST NEWS]
|
||||
|
||||
this is the latest alpha version of libgtop, a library that fetches
|
||||
information about the running system such as cpu and memory usage,
|
||||
active processes etc. On Linux systems, these information are taken
|
||||
directly from the /proc filesystem. For other systems such as Solaris,
|
||||
where such programs need to be suid root (or only setgid kmem/mem on
|
||||
some systems), it provides a suid/setgid server that fetches those
|
||||
information and a client-side library that talks to this server.
|
||||
|
||||
Main idea was to have the same interface for all operating systems,
|
||||
thus all system dependent details are hidden in the implementation
|
||||
of that server.
|
||||
|
||||
Currently, it only works for Linux, documentation on how to port it
|
||||
to other systems is on the way. I'm planning to keep this site an
|
||||
up-to-date mirror of my local machine (which is connected to the
|
||||
internet over some expensive dialup connection, so I'll upload it about
|
||||
once every day I made significant changes) so that you can always find
|
||||
the latest version of the software here.
|
||||
|
||||
I've written a simple guile interface for the library to show which
|
||||
information it can already fetch. See examples/third for details.
|
||||
|
||||
Source Code:
|
||||
LATEST NEWS:
|
||||
===========
|
||||
|
||||
libgtop-current-cvs.cpio.gz is a cpio archive from the CVS repository
|
||||
libgtop-current.cpio.gz contains the lates checked out sources
|
||||
libgtop-stable.cpio.gz if present, it contains the last stable release
|
||||
|
||||
Documentation:
|
||||
=============
|
||||
|
||||
libgtop.sgml is the SGML source of the (DocBook) documentation
|
||||
|
||||
The next three files are only provided until they get too big to upload.
|
||||
|
||||
libgtop.tex TEX file of the documentation
|
||||
libgtop.dvi DVI file of the documentation
|
||||
libgtop.ps Postscript file of the documentation
|
||||
|
||||
HTML-Documentation:
|
||||
==================
|
||||
|
||||
libgtop.shtml Start here to browse the HTML documentation
|
||||
|
||||
Other stuff:
|
||||
===========
|
||||
|
||||
README, NEWS, ChangeLog copied from the sources
|
||||
|
||||
Enjoy it!
|
||||
|
||||
Martin (martin@home-of-linux.org - baulig@merkur.uni-trier.de)
|
||||
Please look also in the file 'NEWS' for latest news.
|
||||
|
||||
Martin
|
||||
|
@@ -1,8 +0,0 @@
|
||||
$Id$
|
||||
|
||||
LATEST NEWS:
|
||||
===========
|
||||
|
||||
Please look also in the file 'NEWS' for latest news.
|
||||
|
||||
Martin
|
163
RELNOTES-1.0
Normal file
163
RELNOTES-1.0
Normal file
@@ -0,0 +1,163 @@
|
||||
RELEASE NOTES FOR LIBGTOP 1.0 STABLE
|
||||
====================================
|
||||
|
||||
OVERVIEW
|
||||
--------
|
||||
|
||||
LibGTop is a library that read information about processes and the
|
||||
running systems. This information include:
|
||||
|
||||
General System Information:
|
||||
|
||||
cpu - CPU Usage
|
||||
mem - Memory Usage
|
||||
swap - Swap Usage (including paging activity)
|
||||
loadavg - Load average (including nr_running, nr_tasks, last_pid)
|
||||
uptime - Uptime and Idle time, can be calculated from CPU usage
|
||||
|
||||
SYS V IPC Limits:
|
||||
|
||||
shm_limits - Shared Memory Limits
|
||||
msg_limits - Message Queue Limits
|
||||
sem_limits - Semaphore Set Limits
|
||||
|
||||
Network:
|
||||
|
||||
netload - Network load
|
||||
ppp - PPP statistics
|
||||
|
||||
Process List:
|
||||
|
||||
proclist - List of processes
|
||||
|
||||
Process information:
|
||||
|
||||
proc_state - cmd, state, uid, gid
|
||||
proc_uid - uid,euid,gid,egid,pid,ppid,pgrp
|
||||
session,tty,tpgid,priority,nice
|
||||
proc_mem - size,vsize,resident,share,rss,rss_rlim
|
||||
proc_time - start_time,rtime,utime,stime,cutime,cstime
|
||||
timeout,it_real_value,frequency
|
||||
proc_signal - signal,blocked,sigignore,sigcatch
|
||||
proc_kernel - k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt
|
||||
kstk_esp,kstk_eip,nwchan,wchan
|
||||
proc_segment - text_rss,shlib_rss,data_rss,stack_rss,dirty_size
|
||||
start_code,end_code,start_stack
|
||||
|
||||
Process maps:
|
||||
|
||||
proc_args - Command line arguments
|
||||
proc_map - Process map (/proc/<pid>/maps under Linux)
|
||||
|
||||
File system usage:
|
||||
|
||||
mountlist - List of currently mounted filesystems
|
||||
fsusage - File system usage
|
||||
|
||||
PORTABILITY:
|
||||
-----------
|
||||
|
||||
LibGTop is designed to be as portable as possible. None of the
|
||||
functions and retrieved information should be specific to a specific
|
||||
operating system. So you only need to port the system dependent part
|
||||
of the library to a new system and all application programs can then
|
||||
use libgtop on this new system.
|
||||
|
||||
CLIENT/SERVER MODEL:
|
||||
-------------------
|
||||
|
||||
Some systems like DEC OSF/1 or BSD require special privileges for the
|
||||
calling process to fetch the required information (SUID root/SGID
|
||||
kmem). To solve this problem, I designed a client/server model which
|
||||
makes a call to a SUID/SGID server which fetches the required
|
||||
information whenever it is required. This server is only called for
|
||||
features that really require privileges, otherwise the sysdeps code
|
||||
is called directory (every user can get the CPU usage on DEC OSF/1,
|
||||
but only root can get information about processes other than the
|
||||
current one).
|
||||
|
||||
There is also some kind of daemon which can be used to fetch
|
||||
information from remote systems (still experimental). This daemon
|
||||
normally runs as nobody and calls the SUID/SGID itself when needed.
|
||||
|
||||
LIBGTOP AND GNOME:
|
||||
-----------------
|
||||
|
||||
LibGTop is currently used in various places in the GNOME Project,
|
||||
for instance in some of the applets in gnome-core and - of cause -
|
||||
this ultra-cool application called GTop ...
|
||||
|
||||
Although LibGTop is not specific to GNOME and under LGPL license, I
|
||||
spent most my time during the last months to work in the GNOME project
|
||||
so this is the primary use for LibGTop (and currently the only one).
|
||||
|
||||
However, you can also give its configure.in script the `--without-gnome'
|
||||
parameter and then use it fully without GNOME in your own applications.
|
||||
|
||||
LIBGTOP AND GNOME - PART II:
|
||||
---------------------------
|
||||
|
||||
LibGTop was tested with FreeBSD 3.0 but it should also work with
|
||||
FreeBSD 2.2.7, NetBSD and OpenBSD.
|
||||
|
||||
Currently my primary aim is to help the GNOME people with our 1.0 release
|
||||
so I won't have much time to test it with any other system than Linux.
|
||||
|
||||
However, I consider FreeBSD, NetBSD and OpenBSD as supported systems for
|
||||
LibGTop and whenever I get bug reports I will do my best to fix them as
|
||||
quickly as possible.
|
||||
|
||||
PLATFORM SPECIFIC NOTES FOR LINUX:
|
||||
==================================
|
||||
|
||||
Under Linux, LibGTop should work without problems and read everything
|
||||
from /proc.
|
||||
|
||||
LibGTop 0.25 also had an experimental kernel interface to read this
|
||||
information directly from the kernel with a system call - but I have
|
||||
currently dropped support for this as I am too busy with GNOME
|
||||
development to keep current with kernel hacking.
|
||||
|
||||
PLATFORM SPECIFIC NOTES FOR SOLARIS:
|
||||
====================================
|
||||
|
||||
Since so many people were asking me about this:
|
||||
|
||||
LibGTop currently does not have any support for Solaris, and it will
|
||||
never have until some volunteer writes the code for it. I can't do this
|
||||
myself since I do not have any machine to test it on.
|
||||
|
||||
PLATFORM SPECIFIC NOTES FOR BSD:
|
||||
=================================
|
||||
|
||||
There are a few caveats:
|
||||
|
||||
* You need to manually make the `$(prefix)/bin/libgtop_server' SGID to
|
||||
kmem after installation and mount the /proc file system of FreeBSD
|
||||
(/proc/<pid>/mem is used within kvm_uread ()).
|
||||
|
||||
* To get the filenames of the process maps displayed in GTop, you need
|
||||
to configure with the `--with-libgtop-inodedb' option (you need GDBM
|
||||
for this to work).
|
||||
|
||||
You have then to create an inode database which is used to look up
|
||||
filenames. This is done using the `mkinodedb' program which comes
|
||||
along with libgtop.
|
||||
|
||||
See the file src/inodedb/README for details:
|
||||
|
||||
The `mkinodedb' program which is build in this directory takes two
|
||||
command line arguments: the full pathname of the database to be
|
||||
created and the name of a configuration file consisting of directory
|
||||
and file names each on a line by itself - see `/etc/ld.so.conf' for
|
||||
an example.
|
||||
|
||||
Putting a directory name in this file means all regular files found
|
||||
in this directory are included in the database, but it will not
|
||||
recursively descend into subdirectories (for instance, we want
|
||||
everything in `/usr/lib' but not every single file in `/usr/lib/sgml').
|
||||
You can also use filenames to include a single file.
|
||||
|
||||
Have fun,
|
||||
|
||||
Martin <martin@home-of-linux.org>
|
8
TODO
8
TODO
@@ -1,4 +1,4 @@
|
||||
This is LibGTop 0.30.0,
|
||||
This is LibGTop 0.99.2,
|
||||
|
||||
a feature-freezed version of LibGTop for GNOME 1.0.
|
||||
|
||||
@@ -15,9 +15,7 @@ NOTE: LibGTop is already feature-freezed for GNOME 1.0, so only bug fixes
|
||||
Sysdeps directory 'linux':
|
||||
==========================
|
||||
|
||||
* Add implementation `netload' and `ppp' with modems.
|
||||
|
||||
* Add implementation for `proc_args'.
|
||||
* Add implementation for `ppp' with modems.
|
||||
|
||||
Sysdeps directory 'freebsd':
|
||||
============================
|
||||
@@ -43,6 +41,6 @@ Everything except sysdeps directories:
|
||||
|
||||
* Ready for Gnome 1.0. [ALREADY FEATURE FREEZED]
|
||||
|
||||
December 15, 1998
|
||||
January 5, 1999
|
||||
|
||||
Martin
|
||||
|
17
acconfig.h
17
acconfig.h
@@ -11,6 +11,9 @@
|
||||
/* Define if getpagesize () must be declared. */
|
||||
#undef NEED_DECLARATION_GETPAGESIZE
|
||||
|
||||
/* Define if program_invocation_name must be declared. */
|
||||
#undef NEED_DECLARATION_PROGRAM_INVOCATION_NAME
|
||||
|
||||
@TOP@
|
||||
|
||||
#undef ENABLE_NLS
|
||||
@@ -135,7 +138,7 @@
|
||||
|
||||
#undef NEED_LIBGTOP
|
||||
|
||||
#undef HAVE_LINUX_TABLE
|
||||
#undef HAVE_LINUX_SYSCTL
|
||||
#undef HAVE_LIBGTOP_SMP
|
||||
|
||||
#undef HAVE_XAUTH
|
||||
@@ -152,3 +155,15 @@
|
||||
* the running kernel (if we don't have configured kernel sources).
|
||||
*/
|
||||
#undef GLIBTOP_LINUX_VERSION_CODE
|
||||
|
||||
/* Solaris release code (eg. 251 for Solaris 2.5.1). */
|
||||
#undef GLIBTOP_SOLARIS_RELEASE
|
||||
|
||||
/* Define if you want to use LibGTop without GNOME. */
|
||||
#undef WITHOUT_GNOME
|
||||
|
||||
/* Define if you have the <procfs.h> header file */
|
||||
#undef HAVE_PROCFS_H
|
||||
|
||||
/* Define if you have the <sys/procfs.h> header file */
|
||||
#undef HAVE_SYS_PROCFS_H
|
||||
|
196
configure.in
196
configure.in
@@ -6,6 +6,22 @@ AC_INIT(copyright.txt)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AC_CANONICAL_SYSTEM
|
||||
|
||||
dnl This is required at several places
|
||||
AC_CHECK_PROG(ac_dc_found, dc, yes, no)
|
||||
if test x$ac_dc_found != xyes ; then
|
||||
AC_MSG_ERROR([
|
||||
*** The "dc" utility was not found on your system.
|
||||
***
|
||||
*** When using RedHat Linux, you need to install the "bc" package.
|
||||
***
|
||||
*** It is now part of the "bc" package, so you should look at
|
||||
*** ftp://ftp.gnu.org/pub/gnu/bc/ if you want to compile it yourself.
|
||||
***
|
||||
*** Other systems and distributions may also have it in their "bc" package,
|
||||
*** so if there's no "dc" one, please look for "bc".
|
||||
***])
|
||||
fi
|
||||
|
||||
. $srcdir/LIBGTOP-VERSION
|
||||
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
|
||||
|
||||
@@ -42,6 +58,10 @@ dnl does not work for libgtop.
|
||||
AC_CHECK_PROGS(AWK, gawk awk, )
|
||||
test -z "$AWK" && AC_MSG_ERROR([Sorry, you need a working awk interpreter.])
|
||||
|
||||
dnl Most people should have a working perl interpreter on their system
|
||||
AC_CHECK_PROGS(PERL, perl5 perl)
|
||||
test -z "$PERL" && AC_MSG_ERROR([You need to have a working perl interpreter.])
|
||||
|
||||
AC_CHECK_TOOL(CC,gcc)
|
||||
AC_CHECK_TOOL(RANLIB,ranlib)
|
||||
AC_CHECK_TOOL(AS,as)
|
||||
@@ -72,6 +92,8 @@ if test "x$gnome_found" != xyes; then
|
||||
*** If you want to use LibGTop without GNOME, you need
|
||||
*** to give configure the --without-gnome parameter.
|
||||
])
|
||||
else
|
||||
AC_DEFINE(WITHOUT_GNOME)
|
||||
fi
|
||||
GNOME_SUPPORT_CHECKS
|
||||
else
|
||||
@@ -131,7 +153,7 @@ else
|
||||
fi
|
||||
|
||||
if test "x$enable_static" != xno; then
|
||||
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static $guile_static_examples $smp_static_examples"
|
||||
static_targets="first_static second_static mountlist_static procmap_static netload_static sysdeps_static timings_static $guile_static_examples $smp_static_examples"
|
||||
else
|
||||
static_targets=""
|
||||
fi
|
||||
@@ -143,7 +165,7 @@ AC_SUBST(guile_subdirs)
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
AM_PATH_GLIB(1.1.3,,AC_MSG_ERROR(GLIB >= 1.1.3 is required for LibGTop))
|
||||
AM_PATH_GLIB(1.2.0,,AC_MSG_ERROR(GLIB >= 1.2.0 is required for LibGTop))
|
||||
|
||||
dnl You need to uncomment the following line if you want to use
|
||||
dnl libGTop without Gnome.
|
||||
@@ -167,9 +189,25 @@ AC_CHECK_HEADERS(string.h strings.h, break)
|
||||
AC_REPLACE_FUNCS(strerror)
|
||||
AC_CHECK_LIB(kvm, kvm_open)
|
||||
|
||||
dnl Solaris
|
||||
AC_CHECK_LIB(kstat, kstat_open)
|
||||
AC_CHECK_FUNCS(getloadavg swapctl)
|
||||
AC_CHECK_HEADERS(procfs.h sys/procfs.h, break)
|
||||
|
||||
dnl For DEC OSF1
|
||||
AC_CHECK_LIB(mach, vm_statistics)
|
||||
|
||||
dnl For some broken libc5 systems (Debian 1.3)
|
||||
saved_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS -D_GNU_SOURCE"
|
||||
GCC_NEED_DECLARATION(program_invocation_name, [
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
])
|
||||
CFLAGS=$saved_CFLAGS
|
||||
|
||||
dnl Check for Internet sockets.
|
||||
AC_CHECK_FUNC(socket,
|
||||
[AC_CHECK_HEADER(netinet/in.h,
|
||||
@@ -193,7 +231,7 @@ AC_FUNC_STRFTIME
|
||||
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
|
||||
|
||||
dnl ## all 'es_??' are only needed for format numbers different of 'es'
|
||||
ALL_LINGUAS="de es es_DO es_GT es_HN es_MX es_PA es_PE es_SV fr ko no"
|
||||
ALL_LINGUAS="de es es_DO es_GT es_HN es_MX es_PA es_PE es_SV fi fr ko no ja"
|
||||
AM_GNOME_GETTEXT
|
||||
|
||||
AC_PATH_XTRA
|
||||
@@ -254,12 +292,20 @@ AC_SUBST(SUPPORTINCS)
|
||||
|
||||
dnl These definitions are expanded in make.
|
||||
LIBGTOP_LIBS='-L$(libdir)'
|
||||
LIBGTOP_INCS='-I$(includedir)'
|
||||
LIBGTOP_INCS='-I$(includedir) -I$(pkglibdir)/include'
|
||||
|
||||
if test x$libgtop_use_machine_h = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
|
||||
fi
|
||||
|
||||
if test x$build_inodedb = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DGLIBTOP_INODEDB"
|
||||
fi
|
||||
|
||||
if test x$libgtop_smp = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SMP"
|
||||
fi
|
||||
|
||||
if test x$libgtop_have_sysinfo = xyes ; then
|
||||
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
|
||||
fi
|
||||
@@ -291,8 +337,8 @@ fi
|
||||
|
||||
LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $GLIB_LIBS"
|
||||
|
||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop_common -lgtop -lgtop_sysdeps"
|
||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_common -lgtop -lgtop_sysdeps"
|
||||
LIBGTOP_LIBS="$LIBGTOP_LIBS -lgtop -lgtop_sysdeps -lgtop_common"
|
||||
LIBGTOP_GUILE_LIBS="$LIBGTOP_GUILE_LIBS -lgtop -lgtop_sysdeps -lgtop_common"
|
||||
|
||||
LIBGTOP_NAMES_LIBS="$LIBGTOP_LIBS -lgtop_names"
|
||||
LIBGTOP_GUILE_NAMES_LIBS="$LIBGTOP_GUILE_LIBS -lgtop_guile_names -lgtop_names"
|
||||
@@ -319,7 +365,7 @@ else
|
||||
guile_def=""
|
||||
fi
|
||||
|
||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include -I\$(top_srcdir)/intl $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS $guile_def "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
|
||||
INCLUDES="-D_IN_LIBGTOP -D_GNU_SOURCE -DGLIBTOP_NAMES -I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include -I\$(top_srcdir)/intl $SUPPORTINCS $GLIB_CFLAGS $CFLAGS $X_CFLAGS $guile_def "'-DGTOPLOCALEDIR=\"$(datadir)/locale\" -DLIBGTOP_VERSION=\"'"$LIBGTOP_VERSION"'\" -DLIBGTOP_SERVER_VERSION=\"'"$LIBGTOP_SERVER_VERSION"'\" -DLIBGTOP_VERSION_CODE='$LIBGTOP_VERSION_CODE' -DLIBGTOP_SERVER=\"'"$LIBGTOP_SERVER"'\"'
|
||||
|
||||
AC_SUBST(INCLUDES)
|
||||
|
||||
@@ -346,8 +392,142 @@ fi
|
||||
AC_SUBST(sysdeps_suid_lib)
|
||||
AC_SUBST(server_programs)
|
||||
|
||||
|
||||
dnl The following one is copied from glib/configure.in
|
||||
|
||||
AC_OUTPUT_COMMANDS([
|
||||
|
||||
## Generate `glibconfig.h' in two cases
|
||||
## 1. `config.status' is run either explicitly, or via configure.
|
||||
## Esp. not when it is run in `Makefile' to generate makefiles and
|
||||
## config.h
|
||||
## 2. CONFIG_OTHER is set explicitly
|
||||
##
|
||||
## Case 1 is difficult. We know that `automake' sets one of
|
||||
## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
|
||||
## only when AM_CONFIG_HEADER is set, however.
|
||||
|
||||
if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
|
||||
# Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
|
||||
CONFIG_OTHER=${CONFIG_OTHER:-glibtop-config.h}
|
||||
fi
|
||||
case "$CONFIG_OTHER" in
|
||||
*glibtop-config.h*)
|
||||
echo creating glibtop-config.h
|
||||
outfile=glibtop-config.h-tmp
|
||||
cat > $outfile <<\_______EOF
|
||||
/* glibtop-config.h
|
||||
*
|
||||
* This is a generated file. Please modify `configure.in'
|
||||
*/
|
||||
|
||||
#ifndef GLIBTOP_CONFIG_H
|
||||
#define GLIBTOP_CONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
_______EOF
|
||||
|
||||
did_typedefs=no
|
||||
|
||||
if test x$glibtop_uint64_t != xyes ; then
|
||||
did_typedefs=yes
|
||||
cat >> $outfile <<\_______EOF
|
||||
|
||||
#ifndef u_int64_t
|
||||
typedef u_int64_t unsigned long long int
|
||||
#endif
|
||||
_______EOF
|
||||
fi
|
||||
|
||||
if test x$glibtop_int64_t != xyes ; then
|
||||
did_typedefs=yes
|
||||
cat >> $outfile <<\_______EOF
|
||||
|
||||
#ifndef int64_t
|
||||
typedef int64_t signed long long int
|
||||
#endif
|
||||
_______EOF
|
||||
fi
|
||||
|
||||
if test x$did_typedefs = xyes ; then
|
||||
cat >>$outfile <<_______EOF
|
||||
|
||||
/*
|
||||
* NOTE: If your application checks for "u_int64_t" or "int64_t" in its own
|
||||
* config.h, you must not include it after any of the LibGTop headers.
|
||||
*/
|
||||
_______EOF
|
||||
fi
|
||||
|
||||
cat >>$outfile <<_______EOF
|
||||
|
||||
/* Define if we need the LibGTop server. */
|
||||
_______EOF
|
||||
|
||||
if test x$glibtop_need_libgtop = xyes ; then
|
||||
echo '#define NEED_LIBGTOP 1' >> $outfile
|
||||
else
|
||||
echo '#undef NEED_LIBGTOP' >> $outfile
|
||||
fi
|
||||
|
||||
cat >>$outfile <<_______EOF
|
||||
|
||||
/* Define if LibGTop has support for multiple processors. */
|
||||
_______EOF
|
||||
|
||||
if test x$glibtop_have_smp = xyes ; then
|
||||
echo '#define HAVE_LIBGTOP_SMP 1' >> $outfile
|
||||
else
|
||||
echo '#undef HAVE_LIBGTOP_SMP' >> $outfile
|
||||
fi
|
||||
|
||||
cat >>$outfile <<_______EOF
|
||||
|
||||
/* LibGTop major, minor and micro version. */
|
||||
#define LIBGTOP_MAJOR_VERSION $libgtop_major_version
|
||||
#define LIBGTOP_MINOR_VERSION $libgtop_minor_version
|
||||
#define LIBGTOP_MICRO_VERSION $libgtop_micro_version
|
||||
|
||||
/* LibGTop version and numerical version code ("1.234.567" -> 1234567). */
|
||||
#define LIBGTOP_VERSION "$libgtop_version"
|
||||
#define LIBGTOP_VERSION_CODE $libgtop_version_code
|
||||
|
||||
/* LibGTop server version, increased each time the protocol changes. */
|
||||
#define LIBGTOP_SERVER_VERSION $libgtop_server_version
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* GLIBCONFIG_H */
|
||||
_______EOF
|
||||
|
||||
if cmp -s $outfile glibtop-config.h; then
|
||||
echo glibtop-config.h is unchanged
|
||||
rm -f $outfile
|
||||
else
|
||||
mv $outfile glibtop-config.h
|
||||
fi ;;
|
||||
esac
|
||||
],[
|
||||
glibtop_uint64_t=$ac_cv_type_u_int64_t
|
||||
glibtop_int64_t=$ac_cv_type_int64_t
|
||||
libgtop_major_version=$LIBGTOP_MAJOR_VERSION
|
||||
libgtop_minor_version=$LIBGTOP_MINOR_VERSION
|
||||
libgtop_micro_version=$LIBGTOP_MICRO_VERSION
|
||||
libgtop_version_code=$LIBGTOP_VERSION_CODE
|
||||
libgtop_server_version=$LIBGTOP_SERVER_VERSION
|
||||
libgtop_version=$LIBGTOP_VERSION
|
||||
glibtop_need_libgtop=$libgtop_need_server
|
||||
glibtop_have_smp=$libgtop_smp
|
||||
])
|
||||
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
libgtop.spec
|
||||
po/Makefile.in
|
||||
intl/Makefile
|
||||
misc/Makefile
|
||||
@@ -365,10 +545,12 @@ sysdeps/osf1/Makefile
|
||||
sysdeps/linux/Makefile
|
||||
sysdeps/kernel/Makefile
|
||||
sysdeps/freebsd/Makefile
|
||||
sysdeps/solaris/Makefile
|
||||
src/Makefile
|
||||
src/daemon/Makefile
|
||||
src/inodedb/Makefile
|
||||
lib/Makefile
|
||||
examples/Makefile
|
||||
doc/Makefile
|
||||
support/Makefile
|
||||
macros/Makefile])
|
||||
|
@@ -1,21 +1,23 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
10
doc/.cvsignore
Normal file
10
doc/.cvsignore
Normal file
@@ -0,0 +1,10 @@
|
||||
texinfo.tex
|
||||
*.info
|
||||
Makefile.in
|
||||
Makefile
|
||||
*.log *.toc *.dvi *.aux *.cp *.fn *.vr *.tp *.ky *.pg
|
||||
*.ps
|
||||
auto-macros.texi
|
||||
version.texi
|
||||
stamp-vti
|
||||
*.html *.pdf
|
33
doc/ChangeLog
Normal file
33
doc/ChangeLog
Normal file
@@ -0,0 +1,33 @@
|
||||
1999-05-28 Martin Baulig <baulig@Stud.Informatik.Uni-Trier.DE>
|
||||
|
||||
* internals.texi: New file documenting LibGTop internals.
|
||||
* reference.texi: Started to document all library functions and
|
||||
finished the sysdeps and common references.
|
||||
|
||||
1999-05-16 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* main.texi: This is now the main file which will @include all
|
||||
chapter files so we can use `texinfo-multiple-files-update'.
|
||||
|
||||
* reference.texi: Added all missing sections with a "not yet written"
|
||||
notice.
|
||||
|
||||
1999-05-16 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* white-paper.texi: Initial version of the LibGTop White Paper.
|
||||
|
||||
* Makefile.am: Create `auto-macros.texi' from `auto-macros.texi.in'
|
||||
which will contain some `@set' commands for the LibGTop version etc.
|
||||
|
||||
* auto-macros.texi.in: New file. This is a template for
|
||||
`auto-macros.texi' which will be automatically generated.
|
||||
|
||||
1999-05-09 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* about.texi: Split the `libgtop.texi' into one file pro chapter,
|
||||
this is the "About LibGTop".
|
||||
|
||||
* reference.texi: The "LibGTop Reference Manual".
|
||||
|
||||
* libgtop.texi: Initial version of the new LibGTop Manual.
|
||||
|
43
doc/Makefile.am
Normal file
43
doc/Makefile.am
Normal file
@@ -0,0 +1,43 @@
|
||||
info_TEXINFOS = libgtop.texi
|
||||
|
||||
libgtop_TEXINFOS = libgtop.texi about.texi reference.texi \
|
||||
auto-macros.texi version.texi main.texi \
|
||||
white-paper.texi internals.texi
|
||||
|
||||
EXTRA_DIST = auto-macros.texi.in
|
||||
|
||||
auto-macros.texi: auto-macros.texi.in Makefile
|
||||
## Use sed and then mv to avoid problems if the user interrupts.
|
||||
sed -e 's#\%LIBGTOP_LIBDIR\%#$(libdir)#g' \
|
||||
-e 's#\%LIBGTOP_INCLUDEDIR\%#$(includedir)#g' \
|
||||
-e 's#\%LIBGTOP_DATADIR\%#$(datadir)#g' \
|
||||
-e 's#\%LIBGTOP_EXTRA_LIBS\%#$(LIBGTOP_EXTRA_LIBS)#g' \
|
||||
-e 's#\%LIBGTOP_LIBS\%#$(LIBGTOP_LIBS)#g' \
|
||||
-e 's#\%LIBGTOP_INCS\%#$(LIBGTOP_INCS)#g' \
|
||||
-e 's#\%LIBGTOP_NAMES_LIBS\%#$(LIBGTOP_NAMES_LIBS)#g' \
|
||||
-e 's#\%LIBGTOP_NAMES_INCS\%#$(LIBGTOP_NAMES_INCS)#g' \
|
||||
-e 's#\%LIBGTOP_GUILE_LIBS\%#$(LIBGTOP_GUILE_LIBS)#g' \
|
||||
-e 's#\%LIBGTOP_GUILE_INCS\%#$(LIBGTOP_GUILE_INCS)#g' \
|
||||
-e 's#\%LIBGTOP_GUILE_NAMES_LIBS\%#$(LIBGTOP_GUILE_NAMES_LIBS)#g' \
|
||||
-e 's#\%LIBGTOP_GUILE_NAMES_INCS\%#$(LIBGTOP_GUILE_NAMES_INCS)#g' \
|
||||
-e 's#\%LIBGTOP_BINDIR\%#$(LIBGTOP_BINDIR)#g' \
|
||||
-e 's#\%LIBGTOP_SERVER\%#$(LIBGTOP_SERVER)#g' \
|
||||
-e 's#\%LIBGTOP_MAJOR_VERSION\%#$(LIBGTOP_MAJOR_VERSION)#g' \
|
||||
-e 's#\%LIBGTOP_MINOR_VERSION\%#$(LIBGTOP_MINOR_VERSION)#g' \
|
||||
-e 's#\%LIBGTOP_MICRO_VERSION\%#$(LIBGTOP_MICRO_VERSION)#g' \
|
||||
-e 's#\%LIBGTOP_VERSION\%#$(LIBGTOP_VERSION)#g' \
|
||||
-e 's#\%LIBGTOP_VERSION_CODE\%#$(LIBGTOP_VERSION_CODE)#g' \
|
||||
-e 's#\%LIBGTOP_SERVER_VERSION\%#$(LIBGTOP_SERVER_VERSION)#g' \
|
||||
-e 's#\%libgtop_sysdeps_dir\%#$(libgtop_sysdeps_dir)#g' \
|
||||
-e 's#\%libgtop_need_server\%#$(libgtop_need_server)#g' \
|
||||
-e 's#\%libgtop_use_machine_h\%#$(libgtop_use_machine_h)#g' \
|
||||
-e 's#\%libgtop_guile_found\%#$(libgtop_guile_found)#g' \
|
||||
-e 's#\%libgtop_want_examples\%#$(libgtop_want_examples)#g' \
|
||||
< $(srcdir)/auto-macros.texi.in > auto-macros.tmp
|
||||
echo '@c Set this if this is LibGTop 1.1.x' >> auto-macros.tmp
|
||||
if [ $(LIBGTOP_VERSION_CODE) -ge 1001000 ] ; then \
|
||||
echo '@set LIBGTOP-1-1' >> auto-macros.tmp ; \
|
||||
else \
|
||||
echo '@clear LIBGTOP-1-1' >> auto-macros.tmp ; \
|
||||
fi
|
||||
mv auto-macros.tmp auto-macros.texi
|
9
doc/README
Normal file
9
doc/README
Normal file
@@ -0,0 +1,9 @@
|
||||
This directory is shared between the HEAD and the LIBGTOP_STABLE_1_0
|
||||
branch (`LIBGTOP_STABLE_1_0' is just an ordinary tag and no branch tag
|
||||
here).
|
||||
|
||||
Whenever we make a new release of LibGTop 1.0.x, we'll move that tag to
|
||||
point to a "stable" version of the documentation.
|
||||
|
||||
May 16, 1999
|
||||
Martin Baulig
|
114
doc/about.texi
Normal file
114
doc/about.texi
Normal file
@@ -0,0 +1,114 @@
|
||||
@node About, White Paper, Top, Top
|
||||
@chapter About LibGTop
|
||||
|
||||
LibGTop is a library to get system specific data such as CPU and Memory Usage
|
||||
and information about running Processes.
|
||||
|
||||
On Systems like Solaris or Digital Unix where you need special privileges to
|
||||
get those data, it uses a setuid/setgid server to do so.
|
||||
|
||||
@menu
|
||||
* Availability:: Where to get LibGTop
|
||||
* Supported Platforms:: Supported Platforms
|
||||
* Mailing List:: Helping with LibGTop development
|
||||
* Thanks:: People who contributed to LibGTop
|
||||
@end menu
|
||||
|
||||
@node Availability, Supported Platforms, About, About
|
||||
@section Availability
|
||||
|
||||
The master source of LibGTop is the GNOME CVS tree
|
||||
(see @uref{http://www.gnome.org} for details), but you can also get the
|
||||
latest release tarballs from
|
||||
|
||||
@display
|
||||
@uref{ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/}
|
||||
@end display
|
||||
|
||||
@noindent
|
||||
or any of its mirror sites.
|
||||
|
||||
The latest stable version of LibGTop is 1.0.1 which is also the one that comes
|
||||
together with GNOME 1.0. In CVS, there is a @code{LIBGTOP_STABLE_1_0} branch
|
||||
which is rooted at the @code{LIBGTOP_1_0_1} tag while actual development occurs
|
||||
in the @code{HEAD} which currently has version 1.1.0.
|
||||
|
||||
@node Supported Platforms, Mailing List, Availability, About
|
||||
@section Supported Platforms
|
||||
|
||||
The stable branch currently supports the following platforms:
|
||||
|
||||
@itemize @bullet
|
||||
@item All versions of Linux
|
||||
|
||||
LibGTop was tested under Linux 2.0.x and 2.2.x on the ix86 and the alpha, but
|
||||
it should also work without problems on SparcLinux.
|
||||
|
||||
@item FreeBSD, NetBSD and OpenBSD
|
||||
|
||||
LibGTop was tested under FreeBSD 2.2.6 and 3.0, NetBSD 1.3.2 and OpenBSD 2.4.
|
||||
Support for NetBSD 1.4 was added in LibGTop 1.0.2.
|
||||
|
||||
@end itemize
|
||||
|
||||
The platforms listed above are known to be stable and working. However, if
|
||||
you're using the latest development version, you can use it on the following
|
||||
platforms as well:
|
||||
|
||||
@itemize @bullet
|
||||
@item BSD/OS
|
||||
|
||||
There is a port for BSD/OS (aka BSDI) 2.x and 3.x from Timur Bakeyev which
|
||||
should also work with 4.x. This isn't tested very well, but it should be
|
||||
working.
|
||||
|
||||
@item Digital Unix
|
||||
|
||||
There is some basic support for Digital Unix (formerly DEC OSF/1) V3.2C, but
|
||||
this may still be a bit unstable. I'm currently working on this port as time
|
||||
permits so it should be fully supported soon.
|
||||
|
||||
@item Solaris
|
||||
|
||||
There will be a Solaris port of LibGTop very soon. Especially Drazen Kacar and
|
||||
some other people have been doing excellent work here and I'm sure that this
|
||||
port will be ready soon.
|
||||
|
||||
@end itemize
|
||||
|
||||
@node Mailing List, Thanks, Supported Platforms, About
|
||||
@section Mailing List
|
||||
|
||||
There is a @email{libgtop-devel-list@@egroups.com} mailing list for people who
|
||||
want to help with the development of LibGTop.
|
||||
|
||||
It is meant as a low-traffic, but high content-list where we can discuss
|
||||
technical details such as adding new sysdeps ports etc.
|
||||
|
||||
Especially, I'd like to see people with a deeper knowledge of operating systems
|
||||
internals joining my list so we can discuss technical details of the sysdeps
|
||||
code.
|
||||
|
||||
It is *not* for users that want to know how to compile LibGTop etc.
|
||||
|
||||
You can subscribe to this mailing list and view the mailing list archives
|
||||
on the LibGTop Page at @uref{http://www.home-of-linux.org/gnome/libgtop}.
|
||||
|
||||
@node Thanks, , Mailing List, About
|
||||
@section Thanks
|
||||
|
||||
At the place I'd like to thank the following people who contributed to
|
||||
LibGTop (listed in chronological order):
|
||||
|
||||
@itemize @bullet
|
||||
@item Sebastian Wilhelmi who had the initial idea of LibGTop and helped
|
||||
me a lot in the early beginning.
|
||||
@item Josh Sled for the initial FreeBSD port.
|
||||
@item Jeremy Lea for his BSD patches.
|
||||
@item Timur Bakeyev for the BSDI port.
|
||||
@item Drazen Kacar and the other people on the LibGTop development mailing
|
||||
list for the Solaris port.
|
||||
@item All people sending me patches, having good ideas, ...
|
||||
@item Everyone I have forgotten in this list ...
|
||||
@end itemize
|
||||
|
12
doc/auto-macros.texi.in
Normal file
12
doc/auto-macros.texi.in
Normal file
@@ -0,0 +1,12 @@
|
||||
@c LibGTop major, minor and micro version.
|
||||
@set LIBGTOP_MAJOR_VERSION %LIBGTOP_MAJOR_VERSION%
|
||||
@set LIBGTOP_MINOR_VERSION %LIBGTOP_MINOR_VERSION%
|
||||
@set LIBGTOP_MICRO_VERSION %LIBGTOP_MICRO_VERSION%
|
||||
|
||||
@c LibGTop version and numerical version code ("1.234.567" -> 1234567).
|
||||
@set LIBGTOP_VERSION "%LIBGTOP_VERSION%"
|
||||
@set LIBGTOP_VERSION_CODE %LIBGTOP_VERSION_CODE%
|
||||
|
||||
@c LibGTop server version, increased each time the protocol changes.
|
||||
@set LIBGTOP_SERVER_VERSION %LIBGTOP_SERVER_VERSION%
|
||||
|
107
doc/internals.texi
Normal file
107
doc/internals.texi
Normal file
@@ -0,0 +1,107 @@
|
||||
@node LibGTop Internals, , Reference Manual, Top
|
||||
@chapter LibGTop Internals
|
||||
|
||||
@menu
|
||||
* General Internals:: General Internals
|
||||
* Sysdeps Internals:: Sysdeps Internals
|
||||
@end menu
|
||||
|
||||
@node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals
|
||||
@section General Internals
|
||||
|
||||
@menu
|
||||
* glibtop:: The server structure
|
||||
@end menu
|
||||
|
||||
@node glibtop, , General Internals, General Internals
|
||||
@subsection The server structure - @code{glibtop}
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
typedef struct _glibtop glibtop;
|
||||
|
||||
struct _glibtop
|
||||
@{
|
||||
unsigned flags;
|
||||
unsigned method;
|
||||
unsigned error_method;
|
||||
#ifdef HAVE_GLIBTOP_MACHINE_H
|
||||
glibtop_machine machine;
|
||||
#endif
|
||||
int input [2];
|
||||
int output [2];
|
||||
int socket;
|
||||
int ncpu;
|
||||
unsigned long os_version_code;
|
||||
const char *name;
|
||||
const char *server_command;
|
||||
const char *server_host;
|
||||
const char *server_user;
|
||||
const char *server_rsh;
|
||||
unsigned long features;
|
||||
unsigned long server_port;
|
||||
glibtop_sysdeps sysdeps;
|
||||
glibtop_sysdeps required;
|
||||
glibtop_sysdeps wanted;
|
||||
pid_t pid;
|
||||
@};
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@node Sysdeps Internals, , General Internals, LibGTop Internals
|
||||
@section Sysdeps Internals
|
||||
|
||||
@menu
|
||||
* glibtop_open_s:: Non-privileged initializations
|
||||
* glibtop_close_s:: Non-privileged cleanups
|
||||
@end menu
|
||||
|
||||
@node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals
|
||||
@subsection glibtop_open_s
|
||||
|
||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
||||
initialize a server. It should do all initializations that do not need any
|
||||
privileges.
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
void
|
||||
glibtop_open_s (glibtop *server, const char *program_name,
|
||||
const unsigned long features,
|
||||
const unsigned flags);
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
@table @code
|
||||
@item server
|
||||
Pointer to the @code{glibtop} server structure.
|
||||
@item program_name
|
||||
Name of the calling program; the implementation will usually
|
||||
set @samp{server->name} to this so it'll be used as the program
|
||||
name in error messages.
|
||||
@end table
|
||||
|
||||
Typically, this function will set @code{server->name}, @code{server->ncpu} and
|
||||
@code{server->os_version_code} and initialize any of the @code{server->machine}
|
||||
fields which do not need any privileges.
|
||||
|
||||
It is normally implemented in @file{open.c} in the sysdeps directory.
|
||||
|
||||
@node glibtop_close_s, , glibtop_open_s, Sysdeps Internals
|
||||
@subsection glibtop_close_s
|
||||
|
||||
This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to
|
||||
clean-up a server when it's no longer used.
|
||||
|
||||
It must free all resources that were allocated in @code{glibtop_open_s}.
|
||||
|
||||
@example
|
||||
@cartouche
|
||||
void
|
||||
glibtop_close_s (glibtop *server);
|
||||
@end cartouche
|
||||
@end example
|
||||
|
||||
It is normally implemented in @file{close.c} in the sysdeps directory, but may
|
||||
be empty.
|
||||
|
80
doc/libgtop.texi
Normal file
80
doc/libgtop.texi
Normal file
@@ -0,0 +1,80 @@
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
@setfilename libgtop.info
|
||||
@settitle LibGTop Reference Manual
|
||||
@setchapternewpage odd
|
||||
@c %**end of header
|
||||
|
||||
@include auto-macros.texi
|
||||
@include version.texi
|
||||
|
||||
@ifinfo
|
||||
This is the LibGTop Reference Manual version @value{VERSION}
|
||||
(last modified @value{UPDATED}).
|
||||
|
||||
Copyright 1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim
|
||||
copies of this manual provided the copyright notice and
|
||||
this permission notice are preserved on all copies.
|
||||
|
||||
@ignore
|
||||
Permission is granted to process this file through TeX
|
||||
and print the results, provided the printed document
|
||||
carries a copying permission notice identical to this
|
||||
one except for the removal of this paragraph (this
|
||||
paragraph not being relevant to the printed manual).
|
||||
|
||||
@end ignore
|
||||
Permission is granted to copy and distribute modified
|
||||
versions of this manual under the conditions for
|
||||
verbatim copying, provided also that the sections
|
||||
entitled ``Copying'' and ``GNU General Public License''
|
||||
are included exactly as in the original, and provided
|
||||
that the entire resulting derived work is distributed
|
||||
under the terms of a permission notice identical to this
|
||||
one.
|
||||
|
||||
Permission is granted to copy and distribute
|
||||
translations of this manual into another language,
|
||||
under the above conditions for modified versions,
|
||||
except that this permission notice may be stated in a
|
||||
translation approved by the Free Software Foundation.
|
||||
|
||||
@end ifinfo
|
||||
|
||||
@titlepage
|
||||
@title LibGTop Reference Manual
|
||||
@subtitle Version @value{VERSION} - @value{UPDATED}
|
||||
@author Martin Baulig
|
||||
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
Copyright @copyright{} 1999 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to make and distribute verbatim
|
||||
copies of this manual provided the copyright notice and
|
||||
this permission notice are preserved on all copies.
|
||||
|
||||
Permission is granted to copy and distribute modified
|
||||
versions of this manual under the conditions for
|
||||
verbatim copying, provided also that the sections
|
||||
entitled ``Copying'' and ``GNU General Public License''
|
||||
are included exactly as in the original, and provided
|
||||
that the entire resulting derived work is distributed
|
||||
under the terms of a permission notice identical to this
|
||||
one.
|
||||
|
||||
Permission is granted to copy and distribute
|
||||
translations of this manual into another language,
|
||||
under the above conditions for modified versions,
|
||||
except that this permission notice may be stated in a
|
||||
translation approved by the Free Software Foundation.
|
||||
@end titlepage
|
||||
|
||||
@contents
|
||||
|
||||
@include main.texi
|
||||
|
||||
@bye
|
||||
|
103
doc/main.texi
Normal file
103
doc/main.texi
Normal file
@@ -0,0 +1,103 @@
|
||||
@node Top, About, (dir), (dir)
|
||||
|
||||
@menu
|
||||
* About:: About LibGTop
|
||||
* White Paper:: LibGTop White Paper
|
||||
* Reference Manual:: LibGTop Reference Manual
|
||||
* LibGTop Internals:: LibGTop Internals
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--- The Detailed Node Listing ---
|
||||
|
||||
About LibGTop
|
||||
|
||||
* Availability:: Where to get LibGTop
|
||||
* Supported Platforms:: Supported Platforms
|
||||
* Mailing List:: Helping with LibGTop development
|
||||
* Thanks:: People who contributed to LibGTop
|
||||
|
||||
LibGTop White Paper
|
||||
|
||||
* Introduction:: Introduction
|
||||
* Overview:: Overview
|
||||
* Servers and Daemons:: Servers and Daemons
|
||||
|
||||
Overview
|
||||
|
||||
* Interface Design:: Things that need to be considered
|
||||
* Server Implementation:: The LibGTop "server"
|
||||
|
||||
LibGTop Reference Manual
|
||||
|
||||
* System Dependent:: System Dependent Functions.
|
||||
* Common Functions:: Common Functions.
|
||||
* Library Functions:: Library Functions.
|
||||
|
||||
System Dependent Functions
|
||||
|
||||
* glibtop_cpu:: CPU Usage.
|
||||
* glibtop_mem:: Memory Usage.
|
||||
* glibtop_swap:: Swap Usage.
|
||||
* glibtop_uptime:: System Uptime.
|
||||
* glibtop_loadavg:: Load Average.
|
||||
* glibtop_proclist:: Process List.
|
||||
* glibtop_proc_state:: Process State.
|
||||
* glibtop_proc_uid:: Process UID and TTY Information.
|
||||
* glibtop_proc_mem:: Process Memory Information.
|
||||
* glibtop_proc_time:: Process Time Information.
|
||||
* glibtop_proc_signal:: Process Signal Information.
|
||||
* glibtop_proc_kernel:: Process Kernel Data Information.
|
||||
* glibtop_proc_segment:: Process Segment Information.
|
||||
* glibtop_proc_args:: Process Arguments.
|
||||
* glibtop_proc_map:: Process Memory Maps.
|
||||
* glibtop_netload:: Network Load.
|
||||
* glibtop_ppp:: PPP Usage.
|
||||
|
||||
Common Functions
|
||||
|
||||
* glibtop_mountlist:: Mount List.
|
||||
* glibtop_fsusage:: File System Usage.
|
||||
|
||||
Library Functions
|
||||
|
||||
* glibtop_init:: Server Initialization.
|
||||
* glibtop_sysdeps:: Server Sysdeps.
|
||||
* Library Parameters:: Library Parameters.
|
||||
|
||||
LibGTop Internals
|
||||
|
||||
* General Internals:: General Internals
|
||||
* Sysdeps Internals:: Sysdeps Internals
|
||||
|
||||
General Internals
|
||||
|
||||
* glibtop:: The server structure
|
||||
|
||||
Sysdeps Internals
|
||||
|
||||
* glibtop_open_s:: Non-privileged initializations
|
||||
* glibtop_close_s:: Non-privileged cleanups
|
||||
@end menu
|
||||
|
||||
@include about.texi
|
||||
@include white-paper.texi
|
||||
@include reference.texi
|
||||
@include internals.texi
|
||||
|
1791
doc/reference.texi
Normal file
1791
doc/reference.texi
Normal file
File diff suppressed because it is too large
Load Diff
136
doc/white-paper.texi
Normal file
136
doc/white-paper.texi
Normal file
@@ -0,0 +1,136 @@
|
||||
@node White Paper, Reference Manual, About, Top
|
||||
@chapter LibGTop White Paper
|
||||
|
||||
@menu
|
||||
* Introduction:: Introduction
|
||||
* Overview:: Overview
|
||||
* Servers and Daemons:: Servers and Daemons
|
||||
@end menu
|
||||
|
||||
@node Introduction, Overview, White Paper, White Paper
|
||||
@section Introduction
|
||||
|
||||
Many modern UNIX systems like Solaris, BSD or Digitial Unix only allow
|
||||
priviledged processes to read information like CPU and Memory Usage or
|
||||
information about running processes.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
BSD, for instance, doesn't have any other way to get those data than reading
|
||||
directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to
|
||||
be able to read this.
|
||||
|
||||
@item
|
||||
Other systems, like Digital Unix, allow all users to get things like CPU and
|
||||
Memory statistics, but only root may read information about any process other
|
||||
than the current one (you may not even get information about your own processes
|
||||
if you're not root).
|
||||
|
||||
@item
|
||||
Linux has a very nice @file{/proc} filesystem, but reading and parsing
|
||||
@file{/proc} is very slow and inefficient.
|
||||
|
||||
@item
|
||||
Solaris is a bit better, but you still need to be in the @code{sys} group or
|
||||
even root to get some data.
|
||||
@end itemize
|
||||
|
||||
Because of this system utilities like @code{ps}, @code{uptime} or @code{top}
|
||||
often are setgid kmem or setuid root. Usually, they're also very specific to
|
||||
the system they're written for and not easily portable to other systems without
|
||||
a lot of work.
|
||||
|
||||
This, of cause, becomes a problem for graphical tools like @code{gtop} - making
|
||||
a GTK+ program setgid or even setuid would be a security hole as big as you can
|
||||
drive the entire X11 source code through. For the GNOME project, we also needed
|
||||
some kind of library which provides all the required information in a portable
|
||||
since there's more than just one single program that wants to use them - for
|
||||
instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and
|
||||
@code{netload} panel applets.
|
||||
|
||||
@node Overview, Servers and Daemons, Introduction, White Paper
|
||||
@section Overview
|
||||
|
||||
This section should give you a short overview on how LibGTop was developed, which
|
||||
things needed to be considered and how it works.
|
||||
|
||||
@menu
|
||||
* Interface Design:: Things that need to be considered
|
||||
* Server Implementation:: The LibGTop "server"
|
||||
@end menu
|
||||
|
||||
@node Interface Design, Server Implementation, Overview, Overview
|
||||
@subsection Interface Design
|
||||
|
||||
At the very beginning, it was necessary to collect all the data the library part
|
||||
should provide and put them into some C structures. This was not that easiy as it
|
||||
might sound since LibGTop should be portable to any modern UNIX system with a common
|
||||
library part on all those systems, but the data that should be returned vary from
|
||||
system to system. For instance some systems support shared memory, but some others
|
||||
may not.
|
||||
|
||||
The header files where we define these C structures (which are system-independent) are
|
||||
shared between client and server. This way we can call the system dependent code
|
||||
directly where we do not need any special privileges to do so.
|
||||
|
||||
All of those structures contain a @code{flags} member which is interpreted as a bit
|
||||
mask and tells the caller of the library functions which of the fields in the returned
|
||||
structure are valid and which are not.
|
||||
|
||||
@node Server Implementation, , Interface Design, Overview
|
||||
@subsection Server Implementation
|
||||
|
||||
The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system
|
||||
dependent code which needs special privileges. It is only build if it's required
|
||||
on the current system (for instance, the Linux kernel provides all the required
|
||||
data via its @file{/proc} filesystem so we do not need the server at all) and it
|
||||
only contains the @dfn{features} which need privileges.
|
||||
|
||||
Whenever we do not need any privileges to get all the data for some of the requested
|
||||
structures (here called @dfn{features}) the library calls the sysdeps code directly
|
||||
rather than using the server.
|
||||
|
||||
@node Servers and Daemons, , Overview, White Paper
|
||||
@section Servers and Daemons
|
||||
|
||||
LibGTop gives you the possibility to use different LibGTop "servers" and
|
||||
"daemons" in your application.
|
||||
|
||||
Normally you do not need to worry about this things since LibGTop auto-
|
||||
matically opens a pipe to its server it it's required, but this can also
|
||||
be customized to fit your needs.
|
||||
|
||||
For instance if you have a small applet which is only interested in disk
|
||||
usage there's no need to fork a separate server process since you don't
|
||||
need any privileges to get them on any of the supported systems. This can
|
||||
be archieved with a special call to @code{glibtop_init_r} on startup.
|
||||
|
||||
There's also an option to tell @code{glibtop_init_r} that you're only
|
||||
interested in several features - for instance cpu and memory usage. In
|
||||
this case LibGTop will only fork a server process if it's required to get
|
||||
cpu and memory.
|
||||
|
||||
You can also tell @code{glibtop_init_r} to start the server only on demand,
|
||||
this might become useful in command-line based programs. For graphical
|
||||
applications it's normally best to start the server directly during their
|
||||
initialization. The same applies for any time critical applications (since
|
||||
@code{fork} is an expensive operation on some systems this may lead to
|
||||
incorrect statistics).
|
||||
|
||||
LibGTop also allows you to talk to a remote machine using the
|
||||
@dfn{LibGTop daemon}. This daemon is based on @code{gnuserv} from
|
||||
GNU Emacs and should be run as an unprivileged user. It has support
|
||||
for either @code{xauth} or host based authorization.
|
||||
|
||||
This daemon itself behaves like a LibGTop client application, i.e. it
|
||||
forks a server process if this is required.
|
||||
|
||||
The main use for this daemon is when you want to monitor a machine which
|
||||
is either very slow or has very low disk space. In this case you don't need
|
||||
to install the whole client application (for instance GTop) on the remote
|
||||
machine but only a very small (maybe also statically linked) executable and
|
||||
run the graphical application on a more powerful machine.
|
||||
|
||||
It can also be used to monitor a remote machine over a very slow link such
|
||||
as a dialup connection since the conversation between LibGTop client and
|
||||
daemon uses much less bandwith than an ordinary X11 connection.
|
@@ -11,3 +11,6 @@ third_linux
|
||||
third_static
|
||||
second_static
|
||||
second_linux
|
||||
smp_static sysdeps_static netload_static procmap_static mountlist_static
|
||||
smp sysdeps netload procmap mountlist
|
||||
timings timings_static
|
||||
|
@@ -1,3 +1,33 @@
|
||||
1999-05-28 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* first.c, second.c, sysdeps.c: Use LibGTop version conditionals
|
||||
so we can more easily merge the code into LIBGTOP_STABLE_1_0.
|
||||
|
||||
1999-05-08 Drazen Kacar <dave@srce.hr>
|
||||
|
||||
* mountlist.c: Changed pfintf formats to "%lld" when printing
|
||||
u_int64_t. This is still utterly unportable, but will
|
||||
hopefully work on all supported architectures. For now.
|
||||
|
||||
1999-05-07 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* timings.c (timersub): Renamed this to `libgtop_timersub' and define
|
||||
it on all systems.
|
||||
|
||||
Fri Apr 9 00:14:52 1999 Timur Bakeyev <timur@gnu.org>
|
||||
|
||||
* timings.c: Added timersub defenition, to make code compilable on
|
||||
BSDI.
|
||||
|
||||
1999-03-24 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* timings.c: New example.
|
||||
|
||||
1999-03-17 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* first.c, second.c: Fixed a bug that caused a core dump when
|
||||
the sysdeps code does not return all data.
|
||||
|
||||
1998-11-22 Martin Baulig <baulig@taurus.uni-trier.de>
|
||||
|
||||
* netload.c: Call inet_ntoa () to get address and subnet
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CFLAGS = -Wall -W @CFLAGS@ -O0
|
||||
INCLUDES = @INCLUDES@
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
@@ -12,19 +12,20 @@ DEFS = @DEFS@
|
||||
libgtopdir = $(libexecdir)/libgtop
|
||||
|
||||
libgtop_PROGRAMS = first second\
|
||||
mountlist procmap netload sysdeps\
|
||||
mountlist procmap netload sysdeps timings \
|
||||
@static_targets@ @guile_examples@ @smp_examples@
|
||||
|
||||
EXTRA_PROGRAMS = first_static second_static \
|
||||
mountlist_static procmap_static \
|
||||
third third_static smp smp_static \
|
||||
netload_static sysdeps_static
|
||||
netload_static sysdeps_static \
|
||||
timings_static
|
||||
|
||||
first_SOURCES = first.c
|
||||
first_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
first_static_SOURCES = $(first_SOURCES)
|
||||
first_static_LDADD = $(first_LDADD)
|
||||
@@ -34,7 +35,7 @@ second_SOURCES = second.c
|
||||
second_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
second_static_SOURCES = $(second_SOURCES)
|
||||
second_static_LDADD = $(second_LDADD)
|
||||
@@ -44,7 +45,7 @@ procmap_SOURCES = procmap.c
|
||||
procmap_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +57,7 @@ netload_SOURCES = netload.c
|
||||
netload_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
netload_static_SOURCES = $(netload_SOURCES)
|
||||
netload_static_LDADD = $(netload_LDADD)
|
||||
@@ -66,7 +67,7 @@ sysdeps_SOURCES = sysdeps.c
|
||||
sysdeps_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
sysdeps_static_SOURCES = $(sysdeps_SOURCES)
|
||||
sysdeps_static_LDADD = $(sysdeps_LDADD)
|
||||
@@ -81,7 +82,7 @@ third_LDADD = $(top_builddir)/sysdeps/guile/libgtop_guile.la \
|
||||
$(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@GUILE_LIBS@ @INTLLIBS@ @LIBSUPPORT@
|
||||
@GUILE_LIBS@ @LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
third_static_SOURCES = $(third_SOURCES)
|
||||
third_static_LDADD = $(third_LDADD)
|
||||
@@ -91,7 +92,7 @@ mountlist_SOURCES = mountlist.c
|
||||
mountlist_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
mountlist_static_SOURCES= $(mountlist_SOURCES)
|
||||
mountlist_static_LDADD = $(mountlist_LDADD)
|
||||
@@ -102,9 +103,19 @@ smp_SOURCES = smp.c
|
||||
smp_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@INTLLIBS@ @LIBSUPPORT@
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
smp_static_SOURCES = $(smp_SOURCES)
|
||||
smp_static_LDADD = $(smp_LDADD)
|
||||
smp_static_LDFLAGS = -static
|
||||
|
||||
timings_SOURCES = timings.c
|
||||
timings_LDADD = $(top_builddir)/lib/libgtop.la \
|
||||
$(top_builddir)/sysdeps/common/libgtop_common.la \
|
||||
$(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps.la \
|
||||
@LIBSUPPORT@ @INTLLIBS@
|
||||
|
||||
timings_static_SOURCES = $(timings_SOURCES)
|
||||
timings_static_LDADD = $(timings_LDADD)
|
||||
timings_static_LDFLAGS = -static
|
||||
|
||||
|
280
examples/first.c
280
examples/first.c
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
@@ -114,9 +116,16 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_uptime (&data.uptime);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Uptime (0x%08lx): %f, %f, %lu\n",
|
||||
(unsigned long) data.uptime.flags,
|
||||
data.uptime.uptime, data.uptime.idletime,
|
||||
(unsigned long) data.uptime.boot_time);
|
||||
#else
|
||||
printf ("Uptime (0x%08lx): %f, %f\n",
|
||||
(unsigned long) data.uptime.flags,
|
||||
data.uptime.uptime, data.uptime.idletime);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_loadavg (&data.loadavg);
|
||||
@@ -240,15 +249,52 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
|
||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
|
||||
(unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
data.proc_state.uid, data.proc_state.gid,
|
||||
data.proc_state.ruid, data.proc_state.rgid,
|
||||
data.proc_state.has_cpu, data.proc_state.processor,
|
||||
data.proc_state.last_processor);
|
||||
#else
|
||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
|
||||
(int) pid, (unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
(unsigned long) data.proc_state.uid,
|
||||
(unsigned long) data.proc_state.gid);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
||||
(int) pid, (unsigned long) data.proc_uid.flags,
|
||||
data.proc_uid.uid, data.proc_uid.euid,
|
||||
data.proc_uid.gid, data.proc_uid.egid,
|
||||
data.proc_uid.suid, data.proc_uid.sgid,
|
||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
||||
data.proc_uid.pid, data.proc_uid.ppid,
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice,
|
||||
data.proc_uid.ngroups);
|
||||
|
||||
if (data.proc_uid.ngroups) {
|
||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
||||
if (i)
|
||||
printf (" %d", data.proc_uid.groups [i]);
|
||||
else
|
||||
printf (" (%d", data.proc_uid.groups [i]);
|
||||
}
|
||||
printf (")");
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
#else
|
||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
||||
(unsigned long) data.proc_uid.flags,
|
||||
@@ -258,6 +304,7 @@ main (int argc, char *argv [])
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
||||
@@ -275,6 +322,30 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
(unsigned long) data.proc_segment.text_rss,
|
||||
(unsigned long) data.proc_segment.shlib_rss,
|
||||
(unsigned long) data.proc_segment.data_rss,
|
||||
(unsigned long) data.proc_segment.stack_rss,
|
||||
(unsigned long) data.proc_segment.dirty_size,
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_data,
|
||||
(unsigned long) data.proc_segment.end_data,
|
||||
(unsigned long) data.proc_segment.start_brk,
|
||||
(unsigned long) data.proc_segment.end_brk,
|
||||
(unsigned long) data.proc_segment.start_stack,
|
||||
(unsigned long) data.proc_segment.start_mmap,
|
||||
(unsigned long) data.proc_segment.arg_start,
|
||||
(unsigned long) data.proc_segment.arg_end,
|
||||
(unsigned long) data.proc_segment.env_start,
|
||||
(unsigned long) data.proc_segment.env_end);
|
||||
#else
|
||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
@@ -286,6 +357,7 @@ main (int argc, char *argv [])
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_stack);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_time (&data.proc_time, pid);
|
||||
@@ -306,6 +378,19 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
(unsigned long) data.proc_signal.signal [0],
|
||||
(unsigned long) data.proc_signal.signal [1],
|
||||
(unsigned long) data.proc_signal.blocked [0],
|
||||
(unsigned long) data.proc_signal.blocked [1],
|
||||
(unsigned long) data.proc_signal.sigignore [0],
|
||||
(unsigned long) data.proc_signal.sigignore [1],
|
||||
(unsigned long) data.proc_signal.sigcatch [0],
|
||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
||||
#else
|
||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
@@ -313,12 +398,13 @@ main (int argc, char *argv [])
|
||||
(unsigned long) data.proc_signal.blocked,
|
||||
(unsigned long) data.proc_signal.sigignore,
|
||||
(unsigned long) data.proc_signal.sigcatch);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
||||
|
||||
printf ("Proc_Kernel PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", (int) pid,
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
|
||||
(unsigned long) data.proc_kernel.flags,
|
||||
(unsigned long) data.proc_kernel.k_flags,
|
||||
(unsigned long) data.proc_kernel.min_flt,
|
||||
@@ -342,7 +428,7 @@ main (int argc, char *argv [])
|
||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) pid,
|
||||
(unsigned long) data.proc_args.flags,
|
||||
(unsigned long) data.proc_args.size,
|
||||
args);
|
||||
args ? args : "");
|
||||
|
||||
glibtop_free (args);
|
||||
|
||||
@@ -351,15 +437,52 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, ppid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_State PPID %5d (0x%08lx): '%s', %u - "
|
||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) ppid,
|
||||
(unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
data.proc_state.uid, data.proc_state.gid,
|
||||
data.proc_state.ruid, data.proc_state.rgid,
|
||||
data.proc_state.has_cpu, data.proc_state.processor,
|
||||
data.proc_state.last_processor);
|
||||
#else
|
||||
printf ("Proc_State PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n",
|
||||
(int) ppid, (unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
(unsigned long) data.proc_state.uid,
|
||||
(unsigned long) data.proc_state.gid);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, ppid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Uid PPID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
||||
(int) ppid, (unsigned long) data.proc_uid.flags,
|
||||
data.proc_uid.uid, data.proc_uid.euid,
|
||||
data.proc_uid.gid, data.proc_uid.egid,
|
||||
data.proc_uid.suid, data.proc_uid.sgid,
|
||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
||||
data.proc_uid.pid, data.proc_uid.ppid,
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice,
|
||||
data.proc_uid.ngroups);
|
||||
|
||||
if (data.proc_uid.ngroups) {
|
||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
||||
if (i)
|
||||
printf (" %d", data.proc_uid.groups [i]);
|
||||
else
|
||||
printf (" (%d", data.proc_uid.groups [i]);
|
||||
}
|
||||
printf (")");
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
#else
|
||||
printf ("Proc_Uid PPID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid,
|
||||
(unsigned long) data.proc_uid.flags,
|
||||
@@ -369,6 +492,7 @@ main (int argc, char *argv [])
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_mem (&data.proc_mem, ppid);
|
||||
@@ -386,6 +510,30 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_segment (&data.proc_segment, ppid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Segment PPID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) ppid,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
(unsigned long) data.proc_segment.text_rss,
|
||||
(unsigned long) data.proc_segment.shlib_rss,
|
||||
(unsigned long) data.proc_segment.data_rss,
|
||||
(unsigned long) data.proc_segment.stack_rss,
|
||||
(unsigned long) data.proc_segment.dirty_size,
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_data,
|
||||
(unsigned long) data.proc_segment.end_data,
|
||||
(unsigned long) data.proc_segment.start_brk,
|
||||
(unsigned long) data.proc_segment.end_brk,
|
||||
(unsigned long) data.proc_segment.start_stack,
|
||||
(unsigned long) data.proc_segment.start_mmap,
|
||||
(unsigned long) data.proc_segment.arg_start,
|
||||
(unsigned long) data.proc_segment.arg_end,
|
||||
(unsigned long) data.proc_segment.env_start,
|
||||
(unsigned long) data.proc_segment.env_end);
|
||||
#else
|
||||
printf ("Proc_Segment PPID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
@@ -397,6 +545,7 @@ main (int argc, char *argv [])
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_stack);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_time (&data.proc_time, ppid);
|
||||
@@ -417,18 +566,32 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_signal (&data.proc_signal, ppid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Signal PPID %5d (0x%08lx): "
|
||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n",
|
||||
(int) ppid, (unsigned long) data.proc_signal.flags,
|
||||
(unsigned long) data.proc_signal.signal [0],
|
||||
(unsigned long) data.proc_signal.signal [1],
|
||||
(unsigned long) data.proc_signal.blocked [0],
|
||||
(unsigned long) data.proc_signal.blocked [1],
|
||||
(unsigned long) data.proc_signal.sigignore [0],
|
||||
(unsigned long) data.proc_signal.sigignore [1],
|
||||
(unsigned long) data.proc_signal.sigcatch [0],
|
||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
||||
#else
|
||||
printf ("Proc_Signal PPID %5d (0x%08lx): %lu %lu %lu %lu\n",
|
||||
(int) ppid, (unsigned long) data.proc_signal.flags,
|
||||
(unsigned long) data.proc_signal.signal,
|
||||
(unsigned long) data.proc_signal.blocked,
|
||||
(unsigned long) data.proc_signal.sigignore,
|
||||
(unsigned long) data.proc_signal.sigcatch);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_kernel (&data.proc_kernel, ppid);
|
||||
|
||||
printf ("Proc_Kernel PPID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", (int) ppid,
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid,
|
||||
(unsigned long) data.proc_kernel.flags,
|
||||
(unsigned long) data.proc_kernel.k_flags,
|
||||
(unsigned long) data.proc_kernel.min_flt,
|
||||
@@ -452,7 +615,7 @@ main (int argc, char *argv [])
|
||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) ppid,
|
||||
(unsigned long) data.proc_args.flags,
|
||||
(unsigned long) data.proc_args.size,
|
||||
args);
|
||||
args ? args : "");
|
||||
|
||||
glibtop_free (args);
|
||||
|
||||
@@ -461,15 +624,52 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, 1);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_State INIT %5d (0x%08lx): '%s', %u - "
|
||||
"%u, %u, %u, %u - %u, %u, %u\n", 1,
|
||||
(unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
data.proc_state.uid, data.proc_state.gid,
|
||||
data.proc_state.ruid, data.proc_state.rgid,
|
||||
data.proc_state.has_cpu, data.proc_state.processor,
|
||||
data.proc_state.last_processor);
|
||||
#else
|
||||
printf ("Proc_State INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1,
|
||||
(unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
(unsigned long) data.proc_state.uid,
|
||||
(unsigned long) data.proc_state.gid);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, 1);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Uid INIT %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d", 1,
|
||||
(unsigned long) data.proc_uid.flags,
|
||||
data.proc_uid.uid, data.proc_uid.euid,
|
||||
data.proc_uid.gid, data.proc_uid.egid,
|
||||
data.proc_uid.suid, data.proc_uid.sgid,
|
||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
||||
data.proc_uid.pid, data.proc_uid.ppid,
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice,
|
||||
data.proc_uid.ngroups);
|
||||
|
||||
if (data.proc_uid.ngroups) {
|
||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
||||
if (i)
|
||||
printf (" %d", data.proc_uid.groups [i]);
|
||||
else
|
||||
printf (" (%d", data.proc_uid.groups [i]);
|
||||
}
|
||||
printf (")");
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
#else
|
||||
printf ("Proc_Uid INIT %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", 1,
|
||||
(unsigned long) data.proc_uid.flags,
|
||||
@@ -479,6 +679,7 @@ main (int argc, char *argv [])
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_mem (&data.proc_mem, 1);
|
||||
@@ -496,6 +697,30 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_segment (&data.proc_segment, 1);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Segment INIT %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", 1,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
(unsigned long) data.proc_segment.text_rss,
|
||||
(unsigned long) data.proc_segment.shlib_rss,
|
||||
(unsigned long) data.proc_segment.data_rss,
|
||||
(unsigned long) data.proc_segment.stack_rss,
|
||||
(unsigned long) data.proc_segment.dirty_size,
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_data,
|
||||
(unsigned long) data.proc_segment.end_data,
|
||||
(unsigned long) data.proc_segment.start_brk,
|
||||
(unsigned long) data.proc_segment.end_brk,
|
||||
(unsigned long) data.proc_segment.start_stack,
|
||||
(unsigned long) data.proc_segment.start_mmap,
|
||||
(unsigned long) data.proc_segment.arg_start,
|
||||
(unsigned long) data.proc_segment.arg_end,
|
||||
(unsigned long) data.proc_segment.env_start,
|
||||
(unsigned long) data.proc_segment.env_end);
|
||||
#else
|
||||
printf ("Proc_Segment INIT %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
@@ -507,6 +732,7 @@ main (int argc, char *argv [])
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_stack);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_time (&data.proc_time, 1);
|
||||
@@ -527,6 +753,19 @@ main (int argc, char *argv [])
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_signal (&data.proc_signal, 1);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Signal INIT %5d (0x%08lx): "
|
||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", 1,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
(unsigned long) data.proc_signal.signal [0],
|
||||
(unsigned long) data.proc_signal.signal [1],
|
||||
(unsigned long) data.proc_signal.blocked [0],
|
||||
(unsigned long) data.proc_signal.blocked [1],
|
||||
(unsigned long) data.proc_signal.sigignore [0],
|
||||
(unsigned long) data.proc_signal.sigignore [1],
|
||||
(unsigned long) data.proc_signal.sigcatch [0],
|
||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
||||
#else
|
||||
printf ("Proc_Signal INIT %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", 1,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
@@ -534,12 +773,13 @@ main (int argc, char *argv [])
|
||||
(unsigned long) data.proc_signal.blocked,
|
||||
(unsigned long) data.proc_signal.sigignore,
|
||||
(unsigned long) data.proc_signal.sigcatch);
|
||||
#endif
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_kernel (&data.proc_kernel, 1);
|
||||
|
||||
printf ("Proc_Kernel INIT %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", 1,
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1,
|
||||
(unsigned long) data.proc_kernel.flags,
|
||||
(unsigned long) data.proc_kernel.k_flags,
|
||||
(unsigned long) data.proc_kernel.min_flt,
|
||||
@@ -563,7 +803,7 @@ main (int argc, char *argv [])
|
||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", 1,
|
||||
(unsigned long) data.proc_args.flags,
|
||||
(unsigned long) data.proc_args.size,
|
||||
args);
|
||||
args ? args : "");
|
||||
|
||||
glibtop_free (args);
|
||||
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
@@ -94,7 +96,7 @@ main (int argc, char *argv [])
|
||||
glibtop_get_fsusage (&fsusage,
|
||||
mount_entries [index].mountdir);
|
||||
|
||||
printf ("Usage: %-16s %9Lu %9Lu %9Lu %9Lu %9Lu\n",
|
||||
printf ("Usage: %-16s %9llu %9llu %9llu %9llu %9llu\n",
|
||||
mount_entries [index].mountdir,
|
||||
fsusage.blocks, fsusage.bfree,
|
||||
fsusage.bavail, fsusage.files,
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
@@ -95,7 +97,7 @@ main (int argc, char *argv [])
|
||||
unsigned device, device_major, device_minor;
|
||||
char perm [5];
|
||||
|
||||
if (maps [i].flags & (1 << GLIBTOP_MAP_ENTRY_FILENAME))
|
||||
if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME))
|
||||
filename = maps [i].filename;
|
||||
|
||||
#ifdef GLIBTOP_INODEDB
|
||||
@@ -114,24 +116,41 @@ main (int argc, char *argv [])
|
||||
device_minor = (device & 255);
|
||||
device_major = ((device >> 8) & 255);
|
||||
|
||||
if (filename)
|
||||
fprintf (stderr, "%08lx-%08lx %08lx - "
|
||||
"%02x:%02x %08lu - %4s - %s\n",
|
||||
if (filename) {
|
||||
char *format;
|
||||
|
||||
if (sizeof (void*) == 8)
|
||||
format = "%016lx-%016lx %016lx - "
|
||||
"%02x:%02x %08lu - %4s - %s\n";
|
||||
else
|
||||
format = "%08lx-%08lx %08lx - "
|
||||
"%02x:%02x %08lu - %4s - %s\n";
|
||||
|
||||
fprintf (stderr, format,
|
||||
(unsigned long) maps [i].start,
|
||||
(unsigned long) maps [i].end,
|
||||
(unsigned long) maps [i].offset,
|
||||
device_major, device_minor,
|
||||
(unsigned long) maps [i].inode,
|
||||
perm, filename);
|
||||
else
|
||||
fprintf (stderr, "%08lx-%08lx %08lx - "
|
||||
"%02x:%02x %08lu - %4s\n",
|
||||
} else {
|
||||
char * format;
|
||||
|
||||
if (sizeof (void*) == 8)
|
||||
format = "%016lx-%016lx %016lx - "
|
||||
"%02x:%02x %08lu - %4s\n";
|
||||
else
|
||||
format = "%08lx-%08lx %08lx - "
|
||||
"%02x:%02x %08lu - %4s\n";
|
||||
|
||||
fprintf (stderr, format,
|
||||
(unsigned long) maps [i].start,
|
||||
(unsigned long) maps [i].end,
|
||||
(unsigned long) maps [i].offset,
|
||||
device_major, device_minor,
|
||||
(unsigned long) maps [i].inode,
|
||||
perm);
|
||||
}
|
||||
|
||||
if (filename && (filename != maps [i].filename))
|
||||
glibtop_free (filename);
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
@@ -50,16 +52,53 @@ output (pid_t pid)
|
||||
printf ("\n");
|
||||
|
||||
glibtop_get_proc_state (&data.proc_state, pid);
|
||||
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_State PID %5d (0x%08lx): '%s', %u - "
|
||||
"%u, %u, %u, %u - %u, %u, %u\n", (int) pid,
|
||||
(unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
data.proc_state.uid, data.proc_state.gid,
|
||||
data.proc_state.ruid, data.proc_state.rgid,
|
||||
data.proc_state.has_cpu, data.proc_state.processor,
|
||||
data.proc_state.last_processor);
|
||||
#else
|
||||
printf ("Proc_State PID %5d (0x%08lx): "
|
||||
"'%s', %c, %lu, %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_state.flags,
|
||||
data.proc_state.cmd, data.proc_state.state,
|
||||
(unsigned long) data.proc_state.uid,
|
||||
(unsigned long) data.proc_state.gid);
|
||||
#endif
|
||||
|
||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d - %d",
|
||||
(int) pid, (unsigned long) data.proc_uid.flags,
|
||||
data.proc_uid.uid, data.proc_uid.euid,
|
||||
data.proc_uid.gid, data.proc_uid.egid,
|
||||
data.proc_uid.suid, data.proc_uid.sgid,
|
||||
data.proc_uid.fsuid, data.proc_uid.fsgid,
|
||||
data.proc_uid.pid, data.proc_uid.ppid,
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice,
|
||||
data.proc_uid.ngroups);
|
||||
|
||||
if (data.proc_uid.ngroups) {
|
||||
for (i = 0; i < data.proc_uid.ngroups; i++) {
|
||||
if (i)
|
||||
printf (" %d", data.proc_uid.groups [i]);
|
||||
else
|
||||
printf (" (%d", data.proc_uid.groups [i]);
|
||||
}
|
||||
printf (")");
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
#else
|
||||
printf ("Proc_Uid PID %5d (0x%08lx): "
|
||||
"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid,
|
||||
(unsigned long) data.proc_uid.flags,
|
||||
@@ -69,7 +108,8 @@ output (pid_t pid)
|
||||
data.proc_uid.pgrp, data.proc_uid.session,
|
||||
data.proc_uid.tty, data.proc_uid.tpgid,
|
||||
data.proc_uid.priority, data.proc_uid.nice);
|
||||
|
||||
#endif
|
||||
|
||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
||||
|
||||
printf ("Proc_Mem PID %5d (0x%08lx): "
|
||||
@@ -84,6 +124,30 @@ output (pid_t pid)
|
||||
|
||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx 0x%lx "
|
||||
"0x%lx 0x%lx 0x%lx 0x%lx\n", (int) pid,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
(unsigned long) data.proc_segment.text_rss,
|
||||
(unsigned long) data.proc_segment.shlib_rss,
|
||||
(unsigned long) data.proc_segment.data_rss,
|
||||
(unsigned long) data.proc_segment.stack_rss,
|
||||
(unsigned long) data.proc_segment.dirty_size,
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_data,
|
||||
(unsigned long) data.proc_segment.end_data,
|
||||
(unsigned long) data.proc_segment.start_brk,
|
||||
(unsigned long) data.proc_segment.end_brk,
|
||||
(unsigned long) data.proc_segment.start_stack,
|
||||
(unsigned long) data.proc_segment.start_mmap,
|
||||
(unsigned long) data.proc_segment.arg_start,
|
||||
(unsigned long) data.proc_segment.arg_end,
|
||||
(unsigned long) data.proc_segment.env_start,
|
||||
(unsigned long) data.proc_segment.env_end);
|
||||
#else
|
||||
printf ("Proc_Segment PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_segment.flags,
|
||||
@@ -95,6 +159,7 @@ output (pid_t pid)
|
||||
(unsigned long) data.proc_segment.start_code,
|
||||
(unsigned long) data.proc_segment.end_code,
|
||||
(unsigned long) data.proc_segment.start_stack);
|
||||
#endif
|
||||
|
||||
glibtop_get_proc_time (&data.proc_time, pid);
|
||||
|
||||
@@ -113,6 +178,19 @@ output (pid_t pid)
|
||||
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
||||
"%lx %lx %lx %lx %lx %lx %lx %lx\n", (int) pid,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
(unsigned long) data.proc_signal.signal [0],
|
||||
(unsigned long) data.proc_signal.signal [1],
|
||||
(unsigned long) data.proc_signal.blocked [0],
|
||||
(unsigned long) data.proc_signal.blocked [1],
|
||||
(unsigned long) data.proc_signal.sigignore [0],
|
||||
(unsigned long) data.proc_signal.sigignore [1],
|
||||
(unsigned long) data.proc_signal.sigcatch [0],
|
||||
(unsigned long) data.proc_signal.sigcatch [1]);
|
||||
#else
|
||||
printf ("Proc_Signal PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu\n", (int) pid,
|
||||
(unsigned long) data.proc_signal.flags,
|
||||
@@ -120,11 +198,12 @@ output (pid_t pid)
|
||||
(unsigned long) data.proc_signal.blocked,
|
||||
(unsigned long) data.proc_signal.sigignore,
|
||||
(unsigned long) data.proc_signal.sigcatch);
|
||||
#endif
|
||||
|
||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
||||
|
||||
printf ("Proc_Kernel PID %5d (0x%08lx): "
|
||||
"%lu %lu %lu %lu %lu %lu %lu %lu (%s)\n", (int) pid,
|
||||
"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid,
|
||||
(unsigned long) data.proc_kernel.flags,
|
||||
(unsigned long) data.proc_kernel.k_flags,
|
||||
(unsigned long) data.proc_kernel.min_flt,
|
||||
@@ -148,7 +227,7 @@ output (pid_t pid)
|
||||
printf ("Proc_Args PID %5d (0x%08lx): %lu - '%s'\n", (int) pid,
|
||||
(unsigned long) data.proc_args.flags,
|
||||
(unsigned long) data.proc_args.size,
|
||||
args);
|
||||
args ? args : "");
|
||||
|
||||
glibtop_free (args);
|
||||
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, September 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
@@ -67,10 +69,13 @@ main (int argc, char *argv [])
|
||||
|
||||
glibtop_get_sysdeps (&sysdeps);
|
||||
|
||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1 << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
|
||||
#define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f##)) ? 1 : 0)
|
||||
|
||||
printf ("Sysdeps (0x%08lx):\n\n"
|
||||
"\tfeatures:\t\t0x%08lx\n\n"
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
"\tpointer_size:\t\t0x%08lx\n\n"
|
||||
#endif
|
||||
"\tcpu:\t\t%d\t0x%08lx\n"
|
||||
"\tmem:\t\t%d\t0x%08lx\n"
|
||||
"\tswap:\t\t%d\t0x%08lx\n\n"
|
||||
@@ -95,6 +100,9 @@ main (int argc, char *argv [])
|
||||
"\tppp:\t\t%d\t0x%08lx\n\n",
|
||||
(unsigned long) sysdeps.flags,
|
||||
(unsigned long) sysdeps.features,
|
||||
#if LIBGTOP_VERSION_CODE > 1001000
|
||||
(unsigned long) sysdeps.pointer_size,
|
||||
#endif
|
||||
FEATURE_CHECK(CPU),
|
||||
(unsigned long) sysdeps.cpu,
|
||||
FEATURE_CHECK(MEM),
|
||||
|
@@ -1,23 +1,25 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
|
360
examples/timings.c
Normal file
360
examples/timings.c
Normal file
@@ -0,0 +1,360 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
#include <glibtop/close.h>
|
||||
#include <glibtop/xmalloc.h>
|
||||
|
||||
#include <glibtop/parameter.h>
|
||||
|
||||
#include <glibtop/union.h>
|
||||
#include <glibtop/sysdeps.h>
|
||||
|
||||
#include <sys/times.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
#ifndef PROFILE_COUNT
|
||||
#define PROFILE_COUNT 100000L
|
||||
#endif
|
||||
|
||||
#ifndef PROFILE_COUNT_EXPENSIVE
|
||||
#define PROFILE_COUNT_EXPENSIVE 10000L
|
||||
#endif
|
||||
|
||||
#define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 + (unsigned long) elapsed_utime.tv_usec)
|
||||
#define ELAPSED_STIME ((unsigned long) elapsed_stime.tv_sec * 1000000 + (unsigned long) elapsed_stime.tv_usec)
|
||||
|
||||
#define libgtop_timeradd(tvp, uvp, vvp) \
|
||||
do { \
|
||||
(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \
|
||||
(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
|
||||
if ((vvp)->tv_usec >= 1000000) { \
|
||||
(vvp)->tv_sec++; \
|
||||
(vvp)->tv_usec -= 1000000; \
|
||||
} \
|
||||
} while (0)
|
||||
#define libgtop_timersub(tvp, uvp, vvp) \
|
||||
do { \
|
||||
(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \
|
||||
(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
|
||||
if ((vvp)->tv_usec < 0) { \
|
||||
(vvp)->tv_sec--; \
|
||||
(vvp)->tv_usec += 1000000; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
int
|
||||
main (int argc, char *argv [])
|
||||
{
|
||||
glibtop_union data;
|
||||
glibtop_sysdeps sysdeps;
|
||||
unsigned c, count, port, i, *ptr;
|
||||
struct rusage total_start, total_end;
|
||||
struct rusage rusage_start, rusage_end;
|
||||
struct timeval elapsed_utime, elapsed_stime;
|
||||
char buffer [BUFSIZ];
|
||||
pid_t pid, ppid;
|
||||
char *args;
|
||||
|
||||
count = PROFILE_COUNT;
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain (PACKAGE, GTOPLOCALEDIR);
|
||||
textdomain (PACKAGE);
|
||||
|
||||
printf ("%-12s (%-10s): %7s - %9s - %9s\n",
|
||||
"Feature", "Flags", "Count", "utime", "stime");
|
||||
printf ("-------------------------------------------"
|
||||
"---------------\n");
|
||||
|
||||
glibtop_init_r (&glibtop_global_server, 0, 0);
|
||||
|
||||
getrusage (RUSAGE_SELF, &total_start);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_cpu (&data.cpu);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("CPU (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.cpu.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
|
||||
glibtop_get_mem (&data.mem);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Memory (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.mem.flags, PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++)
|
||||
glibtop_get_swap (&data.swap);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Swap (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.swap.flags, PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_uptime (&data.uptime);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Uptime (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.uptime.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_loadavg (&data.loadavg);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Loadavg (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.loadavg.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
printf ("\n");
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) {
|
||||
ptr = glibtop_get_proclist (&data.proclist, 0, 0);
|
||||
glibtop_free (ptr);
|
||||
}
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proclist (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proclist.flags,
|
||||
PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE);
|
||||
|
||||
pid = getpid ();
|
||||
|
||||
printf ("\n");
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_state (&data.proc_state, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_State (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_state.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_uid (&data.proc_uid, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_Uid (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_uid.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_mem (&data.proc_mem, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_Mem (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_mem.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_segment (&data.proc_segment, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_segment.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_time (&data.proc_time, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_Time (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_time.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_signal (&data.proc_signal, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_Signal (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_signal.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_start);
|
||||
|
||||
for (c = 0; c < PROFILE_COUNT; c++)
|
||||
glibtop_get_proc_kernel (&data.proc_kernel, pid);
|
||||
|
||||
getrusage (RUSAGE_SELF, &rusage_end);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("Proc_Kernel (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
|
||||
(unsigned long) data.proc_kernel.flags, PROFILE_COUNT,
|
||||
(long double) ELAPSED_UTIME / PROFILE_COUNT,
|
||||
(long double) ELAPSED_STIME / PROFILE_COUNT);
|
||||
|
||||
getrusage (RUSAGE_SELF, &total_end);
|
||||
|
||||
libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
|
||||
&elapsed_utime);
|
||||
|
||||
libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime,
|
||||
&elapsed_stime);
|
||||
|
||||
printf ("-------------------------------------------"
|
||||
"---------------\n");
|
||||
|
||||
printf ("%-36s %9lu - %9lu\n\n", "TOTAL",
|
||||
ELAPSED_UTIME, ELAPSED_STIME);
|
||||
|
||||
printf ("All timings are in clock ticks "
|
||||
"(1000000 ticks per second).\n\n");
|
||||
|
||||
glibtop_close ();
|
||||
|
||||
exit (0);
|
||||
}
|
12
features.def
12
features.def
@@ -1,19 +1,19 @@
|
||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4])
|
||||
void|cpu|ulong(total,user,nice,sys,idle,frequency,xcpu_total[GLIBTOP_NCPU],xcpu_user[GLIBTOP_NCPU],xcpu_nice[GLIBTOP_NCPU],xcpu_sys[GLIBTOP_NCPU],xcpu_idle[GLIBTOP_NCPU],xcpu_flags)
|
||||
void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
|
||||
void|swap|ulong(total,used,free,pagein,pageout)
|
||||
void|uptime|double(uptime,idletime)
|
||||
void|uptime|double(uptime,idletime):ulong(boot_time)
|
||||
void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
|
||||
void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
|
||||
void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
|
||||
void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
|
||||
unsigned *|proclist|ulong(number,size,total)|long(which,arg)
|
||||
void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid)
|
||||
void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid)
|
||||
void|proc_state|str(cmd):unsigned(state):ulong(uid,gid,ruid,rgid,has_cpu,processor,last_processor)|pid_t(pid)
|
||||
void|proc_uid|long(uid,euid,gid,egid,suid,sgid,fsuid,fsgid,pid,ppid,pgrp,session,tty,tpgid,priority,nice,ngroups,groups[GLIBTOP_MAX_GROUPS])|pid_t(pid)
|
||||
void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
|
||||
void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[4],xcpu_stime[4])|pid_t(pid)
|
||||
void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[GLIBTOP_NCPU],xcpu_stime[GLIBTOP_NCPU],xcpu_flags)|pid_t(pid)
|
||||
void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid)
|
||||
void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid)
|
||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid)
|
||||
void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_data,end_data,start_brk,end_brk,start_stack,start_mmap,arg_start,arg_end,env_start,env_end)|pid_t(pid)
|
||||
char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
|
||||
glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
|
||||
glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
|
||||
|
55
glibtop.h
55
glibtop.h
@@ -1,28 +1,35 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_H__
|
||||
#define __GLIBTOP_H__
|
||||
|
||||
#ifndef _IN_LIBGTOP
|
||||
#include <glibtop-config.h>
|
||||
#endif
|
||||
|
||||
#include <glibtop/global.h>
|
||||
#include <glibtop/limits.h>
|
||||
|
||||
#include <glibtop_server.h>
|
||||
#include <glibtop/types.h>
|
||||
@@ -31,10 +38,6 @@
|
||||
#include <glibtop_machine.h>
|
||||
#endif
|
||||
|
||||
#ifndef GLIBTOP_MOUNTENTRY_LEN
|
||||
#define GLIBTOP_MOUNTENTRY_LEN 79
|
||||
#endif
|
||||
|
||||
typedef struct _glibtop glibtop;
|
||||
|
||||
#include <glibtop/sysdeps.h>
|
||||
@@ -61,6 +64,7 @@ struct _glibtop
|
||||
unsigned long server_port; /* Port on which daemon is listening */
|
||||
glibtop_sysdeps sysdeps; /* Detailed feature list */
|
||||
glibtop_sysdeps required; /* Required feature list */
|
||||
glibtop_sysdeps wanted; /* We only want this features */
|
||||
pid_t pid; /* PID of the server */
|
||||
};
|
||||
|
||||
@@ -72,14 +76,21 @@ extern const unsigned long glibtop_server_features;
|
||||
|
||||
#define glibtop_close() glibtop_close_r(glibtop_global_server);
|
||||
|
||||
extern glibtop *glibtop_init_r __P((glibtop **, unsigned long, unsigned));
|
||||
extern glibtop *glibtop_init_s __P((glibtop **, unsigned long, unsigned));
|
||||
glibtop *
|
||||
glibtop_init_r (glibtop **server_ptr,
|
||||
unsigned long features,
|
||||
unsigned flags);
|
||||
|
||||
glibtop *
|
||||
glibtop_init_s (glibtop **server_ptr,
|
||||
unsigned long features,
|
||||
unsigned flags);
|
||||
|
||||
#ifdef GLIBTOP_GUILE
|
||||
|
||||
/* You need to link with -lgtop_guile to get this stuff here. */
|
||||
|
||||
extern void glibtop_boot_guile __P((void));
|
||||
void glibtop_boot_guile (void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -87,7 +98,7 @@ extern void glibtop_boot_guile __P((void));
|
||||
|
||||
/* You need to link with -lgtop_guile_names to get this stuff here. */
|
||||
|
||||
extern void glibtop_boot_guile_names __P((void));
|
||||
void glibtop_boot_guile_names (void);
|
||||
|
||||
#ifndef GLIBTOP_NAMES
|
||||
#define GLIBTOP_NAMES
|
||||
|
@@ -7,4 +7,5 @@ glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
|
||||
procsegment.h read.h sysdeps.h xmalloc.h global.h \
|
||||
procsignal.h read_data.h union.h types.h gnuserv.h \
|
||||
parameter.h mountlist.h fsusage.h procmap.h signal.h \
|
||||
inodedb.h sysinfo.h ppp.h procargs.h netload.h
|
||||
inodedb.h sysinfo.h ppp.h procargs.h netload.h \
|
||||
limits.h
|
||||
|
@@ -1,36 +1,40 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_CLOSE_H__
|
||||
#define __GLIBTOP_CLOSE_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
extern void glibtop_close_r __P((glibtop *));
|
||||
void glibtop_close_r (glibtop *server);
|
||||
|
||||
extern void glibtop_close_s __P((glibtop *));
|
||||
extern void glibtop_close_p __P((glibtop *));
|
||||
void glibtop_close_s (glibtop *server);
|
||||
void glibtop_close_p (glibtop *server);
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_COMMAND_H__
|
||||
#define __GLIBTOP_COMMAND_H__
|
||||
@@ -26,7 +30,7 @@
|
||||
#include <glibtop/sysdeps.h>
|
||||
#include <glibtop/union.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_CMND_QUIT 0
|
||||
#define GLIBTOP_CMND_SYSDEPS 1
|
||||
@@ -67,29 +71,34 @@ typedef union _glibtop_response_union glibtop_response_union;
|
||||
|
||||
struct _glibtop_command
|
||||
{
|
||||
u_int64_t command;
|
||||
u_int64_t size, data_size;
|
||||
char parameter [_GLIBTOP_PARAM_SIZE];
|
||||
u_int64_t command;
|
||||
u_int64_t size, data_size;
|
||||
char parameter [_GLIBTOP_PARAM_SIZE];
|
||||
};
|
||||
|
||||
union _glibtop_response_union
|
||||
{
|
||||
glibtop_union data;
|
||||
glibtop_sysdeps sysdeps;
|
||||
glibtop_union data;
|
||||
glibtop_sysdeps sysdeps;
|
||||
};
|
||||
|
||||
struct _glibtop_response
|
||||
{
|
||||
int64_t offset;
|
||||
u_int64_t size, data_size;
|
||||
glibtop_response_union u;
|
||||
int64_t offset;
|
||||
u_int64_t size, data_size;
|
||||
glibtop_response_union u;
|
||||
};
|
||||
|
||||
#define glibtop_call(p1, p2, p3, p4) glibtop_call_r(glibtop_global_server, p1, p2, p3, p4)
|
||||
|
||||
extern void *glibtop_call_l __P((glibtop *, unsigned, size_t, const void *, size_t, void *));
|
||||
extern void *glibtop_call_s __P((glibtop *, unsigned, size_t, const void *, size_t, void *));
|
||||
void *
|
||||
glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
|
||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
||||
|
||||
__END_DECLS
|
||||
void *
|
||||
glibtop_call_s (glibtop *server, unsigned command, size_t send_size,
|
||||
const void *send_buf, size_t recv_size, void *recv_buf);
|
||||
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_CPU_H__
|
||||
#define __GLIBTOP_CPU_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_CPU_TOTAL 0
|
||||
#define GLIBTOP_CPU_USER 1
|
||||
@@ -39,28 +43,27 @@ __BEGIN_DECLS
|
||||
#define GLIBTOP_XCPU_NICE 8
|
||||
#define GLIBTOP_XCPU_SYS 9
|
||||
#define GLIBTOP_XCPU_IDLE 10
|
||||
#define GLIBTOP_XCPU_FLAGS 11
|
||||
|
||||
#define GLIBTOP_MAX_CPU 11
|
||||
|
||||
/* Nobody should really be using more than 4 processors. */
|
||||
#define GLIBTOP_NCPU 4
|
||||
#define GLIBTOP_MAX_CPU 12
|
||||
|
||||
typedef struct _glibtop_cpu glibtop_cpu;
|
||||
|
||||
struct _glibtop_cpu
|
||||
{
|
||||
u_int64_t flags,
|
||||
total, /* GLIBTOP_CPU_TOTAL */
|
||||
user, /* GLIBTOP_CPU_USER */
|
||||
nice, /* GLIBTOP_CPU_NICE */
|
||||
sys, /* GLIBTOP_CPU_SYS */
|
||||
idle, /* GLIBTOP_CPU_IDLE */
|
||||
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
||||
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
|
||||
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
|
||||
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
|
||||
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
|
||||
xcpu_idle [GLIBTOP_NCPU]; /* GLIBTOP_XCPU_IDLE */
|
||||
u_int64_t flags,
|
||||
total, /* GLIBTOP_CPU_TOTAL */
|
||||
user, /* GLIBTOP_CPU_USER */
|
||||
nice, /* GLIBTOP_CPU_NICE */
|
||||
sys, /* GLIBTOP_CPU_SYS */
|
||||
idle, /* GLIBTOP_CPU_IDLE */
|
||||
frequency, /* GLIBTOP_CPU_FREQUENCY */
|
||||
xcpu_total [GLIBTOP_NCPU], /* GLIBTOP_XCPU_TOTAL */
|
||||
xcpu_user [GLIBTOP_NCPU], /* GLIBTOP_XCPU_USER */
|
||||
xcpu_nice [GLIBTOP_NCPU], /* GLIBTOP_XCPU_NICE */
|
||||
xcpu_sys [GLIBTOP_NCPU], /* GLIBTOP_XCPU_SYS */
|
||||
xcpu_idle [GLIBTOP_NCPU], /* GLIBTOP_XCPU_IDLE */
|
||||
xcpu_flags; /* GLIBTOP_XCPU_FLAGS */
|
||||
};
|
||||
|
||||
#define glibtop_get_cpu(cpu) glibtop_get_cpu_l(glibtop_global_server, cpu)
|
||||
@@ -71,14 +74,14 @@ struct _glibtop_cpu
|
||||
#define glibtop_get_cpu_r glibtop_get_cpu_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_cpu_l __P((glibtop *, glibtop_cpu *));
|
||||
void glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf);
|
||||
|
||||
#if GLIBTOP_SUID_CPU
|
||||
extern void glibtop_init_cpu_p __P((glibtop *));
|
||||
extern void glibtop_get_cpu_p __P((glibtop *, glibtop_cpu *));
|
||||
void glibtop_init_cpu_p (glibtop *server);
|
||||
void glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf);
|
||||
#else
|
||||
extern void glibtop_init_cpu_s __P((glibtop *));
|
||||
extern void glibtop_get_cpu_s __P((glibtop *, glibtop_cpu *));
|
||||
void glibtop_init_cpu_s (glibtop *server);
|
||||
void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -92,6 +95,6 @@ extern const char *glibtop_descriptions_cpu [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,30 +1,82 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_ERROR_H__
|
||||
#define __GLIBTOP_ERROR_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
void glibtop_error_vr (glibtop *server, char *format, va_list args);
|
||||
void glibtop_warn_vr (glibtop *server, char *format, va_list args);
|
||||
|
||||
void glibtop_error_io_vr (glibtop *server, char *format, int, va_list args);
|
||||
void glibtop_warn_io_vr (glibtop *server, char *format, int, va_list args);
|
||||
|
||||
static void
|
||||
glibtop_error_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_error_vr (server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_warn_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_warn_vr (server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_error_io_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_error_io_vr (server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_warn_io_r (glibtop *server, char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
glibtop_warn_io_vr (server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
#define glibtop_error(p1, args...) glibtop_error_r(glibtop_global_server , p1 , ## args)
|
||||
#define glibtop_warn(p1, args...) glibtop_warn_r(glibtop_global_server , p1 , ## args)
|
||||
@@ -32,12 +84,46 @@ __BEGIN_DECLS
|
||||
#define glibtop_error_io(p1, args...) glibtop_error_io_r(glibtop_global_server , p1 , ## args)
|
||||
#define glibtop_warn_io(p1, args...) glibtop_warn_io_r(glibtop_global_server , p1 , ## args)
|
||||
|
||||
extern void glibtop_error_r __P((glibtop *, char *, ...));
|
||||
extern void glibtop_warn_r __P((glibtop *, char *, ...));
|
||||
#else /* no __GNUC__ */
|
||||
|
||||
extern void glibtop_error_io_r __P((glibtop *, char *, ...));
|
||||
extern void glibtop_warn_io_r __P((glibtop *, char *, ...));
|
||||
static void
|
||||
glibtop_error (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_error_vr (glibtop_global_server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
__END_DECLS
|
||||
static void
|
||||
glibtop_warn (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_warn_vr (glibtop_global_server, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_error_io (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_error_io_vr (glibtop_global_server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
static void
|
||||
glibtop_warn_io (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start (args, format);
|
||||
glibtop_warn_io_vr (glibtop_global_server, format, errno, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
#endif /* no __GNUC__ */
|
||||
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_FSUSAGE_H__
|
||||
#define __GLIBTOP_FSUSAGE_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_FSUSAGE_BLOCKS 0
|
||||
#define GLIBTOP_FSUSAGE_BFREE 1
|
||||
@@ -39,21 +43,20 @@ typedef struct _glibtop_fsusage glibtop_fsusage;
|
||||
|
||||
struct _glibtop_fsusage
|
||||
{
|
||||
u_int64_t flags,
|
||||
blocks, /* Total blocks. */
|
||||
bfree, /* Free blocks available to superuser. */
|
||||
bavail, /* Free blocks available to non-superuser. */
|
||||
files, /* Total file nodes. */
|
||||
ffree; /* Free file nodes. */
|
||||
u_int64_t flags,
|
||||
blocks, /* Total blocks. */
|
||||
bfree, /* Free blocks available to superuser. */
|
||||
bavail, /* Free blocks available to non-superuser. */
|
||||
files, /* Total file nodes. */
|
||||
ffree; /* Free file nodes. */
|
||||
};
|
||||
|
||||
#define glibtop_get_fsusage(fsusage,disk) glibtop_get_fsusage_l(glibtop_global_server, fsusage, disk)
|
||||
|
||||
#define glibtop_get_fsusage_r glibtop_get_fsusage_s
|
||||
|
||||
extern void glibtop_get_fsusage_l __P((glibtop *, glibtop_fsusage *, const char *));
|
||||
|
||||
extern void glibtop_get_fsusage_s __P((glibtop *, glibtop_fsusage *, const char *));
|
||||
void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||
void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir);
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
|
||||
@@ -66,6 +69,6 @@ extern const char *glibtop_descriptions_fsusage [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,54 +1,49 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_GLOBAL_H__
|
||||
#define __GLIBTOP_GLOBAL_H__
|
||||
|
||||
#ifdef _IN_LIBGTOP
|
||||
#include <config.h>
|
||||
|
||||
/* __BEGIN_DECLS should be used at the beginning of your declarations,
|
||||
so that C++ compilers don't mangle their names. Use __END_DECLS at
|
||||
the end of C declarations. */
|
||||
|
||||
#undef __BEGIN_DECLS
|
||||
#undef __END_DECLS
|
||||
#ifdef __cplusplus
|
||||
# define __BEGIN_DECLS extern "C" {
|
||||
# define __END_DECLS }
|
||||
#else
|
||||
# define __BEGIN_DECLS /* empty */
|
||||
# define __END_DECLS /* empty */
|
||||
#endif
|
||||
|
||||
/* __P is a macro used to wrap function prototypes, so that compilers
|
||||
that don't understand ANSI C prototypes still work, and ANSI C
|
||||
compilers can issue warnings about type mismatches. */
|
||||
|
||||
#undef __P
|
||||
#if defined (__STDC__) || defined (_AIX) \
|
||||
|| (defined (__mips) && defined (_SYSTYPE_SVR4)) \
|
||||
|| defined(WIN32) || defined(__cplusplus)
|
||||
# define __P(protos) protos
|
||||
/*
|
||||
* All declarations are enclosed in BEGIN_LIBGTOP_DECLS and
|
||||
* END_LIBGTOP_DECLS so that C++ compilers don't mangle their names.
|
||||
*
|
||||
*/
|
||||
|
||||
#undef BEGIN_LIBGTOP_DECLS
|
||||
#undef END_LIBGTOP_DECLS
|
||||
#ifdef __cplusplus
|
||||
# define BEGIN_LIBGTOP_DECLS extern "C" {
|
||||
# define END_LIBGTOP_DECLS }
|
||||
#else
|
||||
# define __P(protos) ()
|
||||
# define BEGIN_LIBGTOP_DECLS /* empty */
|
||||
# define END_LIBGTOP_DECLS /* empty */
|
||||
#endif
|
||||
|
||||
#ifdef _IN_LIBGTOP
|
||||
@@ -129,17 +124,21 @@
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
#ifdef _IN_LIBGTOP
|
||||
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#ifndef _
|
||||
#define _(String) gettext (String)
|
||||
#define _(String) dgettext (PACKAGE, String)
|
||||
#define N_(String) (String)
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRERROR
|
||||
extern char *strerror __P((int));
|
||||
char *strerror (int errno);
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif /* _IN_LIBGTOP */
|
||||
|
||||
#endif
|
||||
|
@@ -153,8 +153,9 @@ static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup a
|
||||
#define CONN_IPC 2
|
||||
|
||||
/* function declarations */
|
||||
extern int glibtop_make_connection __P((const char *, int, int *));
|
||||
int glibtop_make_connection (const char *hostarg, int portarg, int *s);
|
||||
|
||||
#ifdef INTERNET_DOMAIN_SOCKETS
|
||||
extern long glibtop_internet_addr __P((const char *));
|
||||
long glibtop_internet_addr (const char *host);
|
||||
#endif
|
||||
|
||||
|
@@ -1,21 +1,25 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_INODEDB_H__
|
||||
#define __GLIBTOP_INODEDB_H__
|
||||
@@ -29,7 +33,7 @@
|
||||
|
||||
#define GLIBTOP_INODEDB_ALL 7
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
typedef struct _glibtop_inodedb glibtop_inodedb;
|
||||
|
||||
@@ -37,22 +41,29 @@ typedef struct _glibtop_inodedb_key glibtop_inodedb_key;
|
||||
|
||||
struct _glibtop_inodedb_key
|
||||
{
|
||||
u_int64_t device, inode;
|
||||
u_int64_t device, inode;
|
||||
};
|
||||
|
||||
struct _glibtop_inodedb
|
||||
{
|
||||
GDBM_FILE system_dbf, user_dbf;
|
||||
GDBM_FILE system_dbf, user_dbf;
|
||||
};
|
||||
|
||||
#define glibtop_inodedb_open(p1,p2) glibtop_inodedb_open_s(glibtop_global_server, p1, p2)
|
||||
#define glibtop_inodedb_lookup(p1,p2,p3) glibtop_inodedb_lookup_s(glibtop_global_server, p1, p2, p3)
|
||||
#define glibtop_inodedb_close(p1) glibtop_inodedb_close_s(glibtop_global_server)
|
||||
|
||||
extern glibtop_inodedb *glibtop_inodedb_open_s __P((glibtop *, unsigned, unsigned long));
|
||||
extern const char *glibtop_inodedb_lookup_s __P((glibtop *, glibtop_inodedb *, u_int64_t, u_int64_t));
|
||||
extern void glibtop_inodedb_close_s __P((glibtop *, glibtop_inodedb *));
|
||||
glibtop_inodedb *
|
||||
glibtop_inodedb_open_s (glibtop *server, unsigned databases, unsigned long cache_size);
|
||||
|
||||
__END_DECLS
|
||||
const char *
|
||||
glibtop_inodedb_lookup_s (glibtop *server,
|
||||
glibtop_inodedb *inodedb,
|
||||
u_int64_t device, u_int64_t inode);
|
||||
|
||||
void
|
||||
glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb);
|
||||
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
44
include/glibtop/limits.h
Normal file
44
include/glibtop/limits.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_LIMITS_H__
|
||||
#define __GLIBTOP_LIMITS_H__
|
||||
|
||||
#include <glibtop/global.h>
|
||||
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
/* Nobody should really be using more than 64 processors. */
|
||||
#define GLIBTOP_NCPU 64
|
||||
|
||||
/* Maximum number of process groups in glibtop_proc_uid. */
|
||||
#define GLIBTOP_MAX_GROUPS 32
|
||||
|
||||
/* Maximum length of a mountpoint/device name in glibtop_mountlist. */
|
||||
#define GLIBTOP_MOUNTENTRY_LEN 79
|
||||
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_LOADAVG_H__
|
||||
#define __GLIBTOP_LOADAVG_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_LOADAVG_LOADAVG 0
|
||||
#define GLIBTOP_LOADAVG_NR_RUNNING 1
|
||||
@@ -38,11 +42,11 @@ typedef struct _glibtop_loadavg glibtop_loadavg;
|
||||
|
||||
struct _glibtop_loadavg
|
||||
{
|
||||
u_int64_t flags;
|
||||
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
|
||||
u_int64_t nr_running, /* GLIBTOP_LOADAVG_NR_RUNNING */
|
||||
nr_tasks, /* GLIBTOP_LOADAVG_NR_TASKS */
|
||||
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
||||
u_int64_t flags;
|
||||
double loadavg [3]; /* GLIBTOP_LOADAVG_LOADAVG */
|
||||
u_int64_t nr_running, /* GLIBTOP_LOADAVG_NR_RUNNING */
|
||||
nr_tasks, /* GLIBTOP_LOADAVG_NR_TASKS */
|
||||
last_pid; /* GLIBTOP_LOADAVG_LAST_PID */
|
||||
};
|
||||
|
||||
#define glibtop_get_loadavg(loadavg) glibtop_get_loadavg_l(glibtop_global_server, loadavg)
|
||||
@@ -53,14 +57,14 @@ struct _glibtop_loadavg
|
||||
#define glibtop_get_loadavg_r glibtop_get_loadavg_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_loadavg_l __P((glibtop *, glibtop_loadavg *));
|
||||
void glibtop_get_loadavg_l (glibtop *server, glibtop_loadavg *buf);
|
||||
|
||||
#if GLIBTOP_SUID_LOADAVG
|
||||
extern void glibtop_init_loadavg_p __P((glibtop *));
|
||||
extern void glibtop_get_loadavg_p __P((glibtop *, glibtop_loadavg *));
|
||||
void glibtop_init_loadavg_p (glibtop *server);
|
||||
void glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf);
|
||||
#else
|
||||
extern void glibtop_init_loadavg_s __P((glibtop *));
|
||||
extern void glibtop_get_loadavg_s __P((glibtop *, glibtop_loadavg *));
|
||||
void glibtop_init_loadavg_s (glibtop *server);
|
||||
void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -74,6 +78,6 @@ extern const char *glibtop_descriptions_loadavg [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_MEM_H__
|
||||
#define __GLIBTOP_MEM_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_MEM_TOTAL 0
|
||||
#define GLIBTOP_MEM_USED 1
|
||||
@@ -42,15 +46,15 @@ typedef struct _glibtop_mem glibtop_mem;
|
||||
|
||||
struct _glibtop_mem
|
||||
{
|
||||
u_int64_t flags,
|
||||
total, /* GLIBTOP_MEM_TOTAL */
|
||||
used, /* GLIBTOP_MEM_USED */
|
||||
free, /* GLIBTOP_MEM_FREE */
|
||||
shared, /* GLIBTOP_MEM_SHARED */
|
||||
buffer, /* GLIBTOP_MEM_BUFFER */
|
||||
cached, /* GLIBTOP_MEM_CACHED */
|
||||
user, /* GLIBTOP_MEM_USER */
|
||||
locked; /* GLIBTOP_MEM_LOCKED */
|
||||
u_int64_t flags,
|
||||
total, /* GLIBTOP_MEM_TOTAL */
|
||||
used, /* GLIBTOP_MEM_USED */
|
||||
free, /* GLIBTOP_MEM_FREE */
|
||||
shared, /* GLIBTOP_MEM_SHARED */
|
||||
buffer, /* GLIBTOP_MEM_BUFFER */
|
||||
cached, /* GLIBTOP_MEM_CACHED */
|
||||
user, /* GLIBTOP_MEM_USER */
|
||||
locked; /* GLIBTOP_MEM_LOCKED */
|
||||
};
|
||||
|
||||
#define glibtop_get_mem(mem) glibtop_get_mem_l(glibtop_global_server, mem)
|
||||
@@ -61,14 +65,14 @@ struct _glibtop_mem
|
||||
#define glibtop_get_mem_r glibtop_get_mem_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_mem_l __P((glibtop *, glibtop_mem *));
|
||||
void glibtop_get_mem_l (glibtop *server, glibtop_mem *buf);
|
||||
|
||||
#if GLIBTOP_SUID_MEM
|
||||
extern void glibtop_init_mem_p __P((glibtop *));
|
||||
extern void glibtop_get_mem_p __P((glibtop *, glibtop_mem *));
|
||||
void glibtop_init_mem_p (glibtop *server);
|
||||
void glibtop_get_mem_p (glibtop *server, glibtop_mem *buf);
|
||||
#else
|
||||
extern void glibtop_init_mem_s __P((glibtop *));
|
||||
extern void glibtop_get_mem_s __P((glibtop *, glibtop_mem *));
|
||||
void glibtop_init_mem_s (glibtop *server);
|
||||
void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -82,6 +86,6 @@ extern const char *glibtop_descriptions_mem [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_MOUNTLIST_H__
|
||||
#define __GLIBTOP_MOUNTLIST_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_MOUNTLIST_NUMBER 0
|
||||
#define GLIBTOP_MOUNTLIST_TOTAL 1
|
||||
@@ -39,27 +43,29 @@ typedef struct _glibtop_mountlist glibtop_mountlist;
|
||||
|
||||
struct _glibtop_mountentry
|
||||
{
|
||||
u_int64_t dev;
|
||||
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
u_int64_t dev;
|
||||
char devname [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
char mountdir [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
char type [GLIBTOP_MOUNTENTRY_LEN+1];
|
||||
};
|
||||
|
||||
struct _glibtop_mountlist
|
||||
{
|
||||
u_int64_t flags,
|
||||
number, /* GLIBTOP_MOUNTLIST_NUMBER */
|
||||
total, /* GLIBTOP_MOUNTLIST_TOTAL */
|
||||
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
||||
u_int64_t flags,
|
||||
number, /* GLIBTOP_MOUNTLIST_NUMBER */
|
||||
total, /* GLIBTOP_MOUNTLIST_TOTAL */
|
||||
size; /* GLIBTOP_MOUNTLIST_SIZE */
|
||||
};
|
||||
|
||||
#define glibtop_get_mountlist(mountlist,all_fs) glibtop_get_mountlist_l(glibtop_global_server, mountlist, all_fs)
|
||||
|
||||
#define glibtop_get_mountlist_r glibtop_get_mountlist_s
|
||||
|
||||
extern glibtop_mountentry *glibtop_get_mountlist_l __P((glibtop *, glibtop_mountlist *, int));
|
||||
glibtop_mountentry *
|
||||
glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
||||
|
||||
extern glibtop_mountentry *glibtop_get_mountlist_s __P((glibtop *, glibtop_mountlist *, int));
|
||||
glibtop_mountentry *
|
||||
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
|
||||
@@ -72,6 +78,6 @@ extern const char *glibtop_descriptions_mountlist [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_MSG_LIMITS_H__
|
||||
#define __GLIBTOP_MSG_LIMITS_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_IPC_MSGPOOL 0
|
||||
#define GLIBTOP_IPC_MSGMAP 1
|
||||
@@ -41,14 +45,14 @@ typedef struct _glibtop_msg_limits glibtop_msg_limits;
|
||||
|
||||
struct _glibtop_msg_limits
|
||||
{
|
||||
u_int64_t flags,
|
||||
msgpool, /* GLIBTOP_IPC_MSGPOOL */
|
||||
msgmap, /* GLIBTOP_IPC_MSGMAP */
|
||||
msgmax, /* GLIBTOP_IPC_MSGMAX */
|
||||
msgmnb, /* GLIBTOP_IPC_MSGMNB */
|
||||
msgmni, /* GLIBTOP_IPC_MSGMNI */
|
||||
msgssz, /* GLIBTOP_IPC_MSGSSZ */
|
||||
msgtql; /* GLIBTOP_IPC_MSGTQL */
|
||||
u_int64_t flags,
|
||||
msgpool, /* GLIBTOP_IPC_MSGPOOL */
|
||||
msgmap, /* GLIBTOP_IPC_MSGMAP */
|
||||
msgmax, /* GLIBTOP_IPC_MSGMAX */
|
||||
msgmnb, /* GLIBTOP_IPC_MSGMNB */
|
||||
msgmni, /* GLIBTOP_IPC_MSGMNI */
|
||||
msgssz, /* GLIBTOP_IPC_MSGSSZ */
|
||||
msgtql; /* GLIBTOP_IPC_MSGTQL */
|
||||
};
|
||||
|
||||
#define glibtop_get_msg_limits(msg) glibtop_get_msg_limits_l(glibtop_global_server, msg)
|
||||
@@ -59,14 +63,14 @@ struct _glibtop_msg_limits
|
||||
#define glibtop_get_msg_limits_r glibtop_get_msg_limits_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_msg_limits_l __P((glibtop *, glibtop_msg_limits *));
|
||||
void glibtop_get_msg_limits_l (glibtop *server, glibtop_msg_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_MSG_LIMITS
|
||||
extern void glibtop_init_msg_limits_p __P((glibtop *));
|
||||
extern void glibtop_get_msg_limits_p __P((glibtop *, glibtop_msg_limits *));
|
||||
void glibtop_init_msg_limits_p (glibtop *server);
|
||||
void glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf);
|
||||
#else
|
||||
extern void glibtop_init_msg_limits_s __P((glibtop *));
|
||||
extern void glibtop_get_msg_limits_s __P((glibtop *, glibtop_msg_limits *));
|
||||
void glibtop_init_msg_limits_s (glibtop *server);
|
||||
void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -80,6 +84,7 @@ extern const char *glibtop_descriptions_msg_limits [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_NETLOAD_H__
|
||||
#define __GLIBTOP_NETLOAD_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_NETLOAD_IF_FLAGS 0
|
||||
#define GLIBTOP_NETLOAD_MTU 1
|
||||
@@ -47,41 +51,41 @@ __BEGIN_DECLS
|
||||
typedef struct _glibtop_netload glibtop_netload;
|
||||
|
||||
enum {
|
||||
GLIBTOP_IF_FLAGS_UP = 1,
|
||||
GLIBTOP_IF_FLAGS_BROADCAST,
|
||||
GLIBTOP_IF_FLAGS_DEBUG,
|
||||
GLIBTOP_IF_FLAGS_LOOPBACK,
|
||||
GLIBTOP_IF_FLAGS_POINTOPOINT,
|
||||
GLIBTOP_IF_FLAGS_RUNNING,
|
||||
GLIBTOP_IF_FLAGS_NOARP,
|
||||
GLIBTOP_IF_FLAGS_PROMISC,
|
||||
GLIBTOP_IF_FLAGS_ALLMULTI,
|
||||
GLIBTOP_IF_FLAGS_OACTIVE,
|
||||
GLIBTOP_IF_FLAGS_SIMPLEX,
|
||||
GLIBTOP_IF_FLAGS_LINK0,
|
||||
GLIBTOP_IF_FLAGS_LINK1,
|
||||
GLIBTOP_IF_FLAGS_LINK2,
|
||||
GLIBTOP_IF_FLAGS_ALTPHYS,
|
||||
GLIBTOP_IF_FLAGS_MULTICAST
|
||||
GLIBTOP_IF_FLAGS_UP = 1,
|
||||
GLIBTOP_IF_FLAGS_BROADCAST,
|
||||
GLIBTOP_IF_FLAGS_DEBUG,
|
||||
GLIBTOP_IF_FLAGS_LOOPBACK,
|
||||
GLIBTOP_IF_FLAGS_POINTOPOINT,
|
||||
GLIBTOP_IF_FLAGS_RUNNING,
|
||||
GLIBTOP_IF_FLAGS_NOARP,
|
||||
GLIBTOP_IF_FLAGS_PROMISC,
|
||||
GLIBTOP_IF_FLAGS_ALLMULTI,
|
||||
GLIBTOP_IF_FLAGS_OACTIVE,
|
||||
GLIBTOP_IF_FLAGS_SIMPLEX,
|
||||
GLIBTOP_IF_FLAGS_LINK0,
|
||||
GLIBTOP_IF_FLAGS_LINK1,
|
||||
GLIBTOP_IF_FLAGS_LINK2,
|
||||
GLIBTOP_IF_FLAGS_ALTPHYS,
|
||||
GLIBTOP_IF_FLAGS_MULTICAST
|
||||
};
|
||||
|
||||
struct _glibtop_netload
|
||||
{
|
||||
u_int64_t flags,
|
||||
if_flags, /* GLIBTOP_NETLOAD_IF_FLAGS */
|
||||
mtu, /* GLIBTOP_NETLOAD_MTU */
|
||||
subnet, /* GLIBTOP_NETLOAD_SUBNET */
|
||||
address, /* GLIBTOP_NETLOAD_ADDRESS */
|
||||
packets_in, /* GLIBTOP_NETLOAD_PACKETS_IN */
|
||||
packets_out, /* GLIBTOP_NETLOAD_PACKETS_OUT */
|
||||
packets_total, /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
|
||||
bytes_in, /* GLIBTOP_NETLOAD_BYTES_IN */
|
||||
bytes_out, /* GLIBTOP_NETLOAD_BYTES_OUT */
|
||||
bytes_total, /* GLIBTOP_NETLOAD_BYTES_TOTAL */
|
||||
errors_in, /* GLIBTOP_NETLOAD_ERRORS_IN */
|
||||
errors_out, /* GLIBTOP_NETLOAD_ERRORS_OUT */
|
||||
errors_total, /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
|
||||
collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
|
||||
u_int64_t flags,
|
||||
if_flags, /* GLIBTOP_NETLOAD_IF_FLAGS */
|
||||
mtu, /* GLIBTOP_NETLOAD_MTU */
|
||||
subnet, /* GLIBTOP_NETLOAD_SUBNET */
|
||||
address, /* GLIBTOP_NETLOAD_ADDRESS */
|
||||
packets_in, /* GLIBTOP_NETLOAD_PACKETS_IN */
|
||||
packets_out, /* GLIBTOP_NETLOAD_PACKETS_OUT */
|
||||
packets_total, /* GLIBTOP_NETLOAD_PACKETS_TOTAL*/
|
||||
bytes_in, /* GLIBTOP_NETLOAD_BYTES_IN */
|
||||
bytes_out, /* GLIBTOP_NETLOAD_BYTES_OUT */
|
||||
bytes_total, /* GLIBTOP_NETLOAD_BYTES_TOTAL */
|
||||
errors_in, /* GLIBTOP_NETLOAD_ERRORS_IN */
|
||||
errors_out, /* GLIBTOP_NETLOAD_ERRORS_OUT */
|
||||
errors_total, /* GLIBTOP_NETLOAD_ERRORS_TOTAL */
|
||||
collisions; /* GLIBTOP_NETLOAD_COLLISIONS */
|
||||
};
|
||||
|
||||
#define glibtop_get_netload(netload,interface) glibtop_get_netload_l(glibtop_global_server, netload, interface)
|
||||
@@ -92,14 +96,14 @@ struct _glibtop_netload
|
||||
#define glibtop_get_netload_r glibtop_get_netload_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_netload_l __P((glibtop *, glibtop_netload *, const char *));
|
||||
void glibtop_get_netload_l (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||
|
||||
#if GLIBTOP_SUID_NETLOAD
|
||||
extern void glibtop_init_netload_p __P((glibtop *));
|
||||
extern void glibtop_get_netload_p __P((glibtop *, glibtop_netload *, const char *));
|
||||
void glibtop_init_netload_p (glibtop *server);
|
||||
void glibtop_get_netload_p (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||
#else
|
||||
extern void glibtop_init_netload_s __P((glibtop *));
|
||||
extern void glibtop_get_netload_s __P((glibtop *, glibtop_netload *, const char *));
|
||||
void glibtop_init_netload_s (glibtop *server);
|
||||
void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -113,6 +117,6 @@ extern const char *glibtop_descriptions_netload [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,21 +1,25 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_OPEN_H__
|
||||
#define __GLIBTOP_OPEN_H__
|
||||
@@ -24,7 +28,7 @@
|
||||
#include <glibtop/read.h>
|
||||
#include <glibtop/error.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define _GLIBTOP_INIT_STATE_INIT 0x10000
|
||||
#define _GLIBTOP_INIT_STATE_OPEN 0x20000
|
||||
@@ -49,12 +53,23 @@ __BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_ERROR_METHOD_DEFAULT GLIBTOP_ERROR_METHOD_WARN_ONCE
|
||||
|
||||
extern void glibtop_open_l __P((glibtop *, const char *, const unsigned long, const unsigned));
|
||||
void
|
||||
glibtop_open_l (glibtop *server, const char *program_name,
|
||||
const unsigned long features, const unsigned flags);
|
||||
|
||||
extern void glibtop_init_p __P((glibtop *, const unsigned long, const unsigned));
|
||||
extern void glibtop_open_p __P((glibtop *, const char *, const unsigned long, const unsigned));
|
||||
extern void glibtop_open_s __P((glibtop *, const char *, const unsigned long, const unsigned));
|
||||
void
|
||||
glibtop_init_p (glibtop *server, const unsigned long features,
|
||||
const unsigned flags);
|
||||
|
||||
__END_DECLS
|
||||
void
|
||||
glibtop_open_p (glibtop *server, const char *program_name,
|
||||
const unsigned long features, const unsigned flags);
|
||||
|
||||
void
|
||||
glibtop_open_s (glibtop *server, const char *program_name,
|
||||
const unsigned long features, const unsigned flags);
|
||||
|
||||
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,21 +1,25 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PARAMETER_H__
|
||||
#define __GLIBTOP_PARAMETER_H__
|
||||
@@ -23,7 +27,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/open.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PARAM_METHOD 1
|
||||
#define GLIBTOP_PARAM_FEATURES 2
|
||||
@@ -36,9 +40,14 @@ __BEGIN_DECLS
|
||||
#define glibtop_get_parameter(p1,p2,p3) glibtop_get_parameter_l(glibtop_global_server,p1,p2,p3)
|
||||
#define glibtop_set_parameter(p1,p2,p3) glibtop_set_parameter_l(glibtop_global_server,p1,p2,p3)
|
||||
|
||||
extern size_t glibtop_get_parameter_l __P((glibtop *, const unsigned, void *, size_t));
|
||||
extern void glibtop_set_parameter_l __P((glibtop *, const unsigned, const void *, size_t));
|
||||
size_t
|
||||
glibtop_get_parameter_l (glibtop *server, const unsigned parameter,
|
||||
void *data_ptr, size_t data_size);
|
||||
|
||||
__END_DECLS
|
||||
void
|
||||
glibtop_set_parameter_l (glibtop *server, const unsigned parameter,
|
||||
const void *data_ptr, size_t data_size);
|
||||
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PPP_H__
|
||||
#define __GLIBTOP_PPP_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PPP_STATE 0
|
||||
#define GLIBTOP_PPP_BYTES_IN 1
|
||||
@@ -36,17 +40,17 @@ __BEGIN_DECLS
|
||||
typedef struct _glibtop_ppp glibtop_ppp;
|
||||
|
||||
enum {
|
||||
GLIBTOP_PPP_STATE_UNKNOWN = 0,
|
||||
GLIBTOP_PPP_STATE_HANGUP,
|
||||
GLIBTOP_PPP_STATE_ONLINE
|
||||
GLIBTOP_PPP_STATE_UNKNOWN = 0,
|
||||
GLIBTOP_PPP_STATE_HANGUP,
|
||||
GLIBTOP_PPP_STATE_ONLINE
|
||||
};
|
||||
|
||||
struct _glibtop_ppp
|
||||
{
|
||||
u_int64_t flags,
|
||||
state, /* GLIBTOP_PPP_STATE */
|
||||
bytes_in, /* GLIBTOP_PPP_BYTES_IN */
|
||||
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
|
||||
u_int64_t flags,
|
||||
state, /* GLIBTOP_PPP_STATE */
|
||||
bytes_in, /* GLIBTOP_PPP_BYTES_IN */
|
||||
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
|
||||
};
|
||||
|
||||
#define glibtop_get_ppp(ppp,device) glibtop_get_ppp_l(glibtop_global_server, ppp, device)
|
||||
@@ -57,14 +61,14 @@ struct _glibtop_ppp
|
||||
#define glibtop_get_ppp_r glibtop_get_ppp_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_ppp_l __P((glibtop *, glibtop_ppp *, unsigned short));
|
||||
void glibtop_get_ppp_l (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||
|
||||
#if GLIBTOP_SUID_PPP
|
||||
extern void glibtop_init_ppp_p __P((glibtop *));
|
||||
extern void glibtop_get_ppp_p __P((glibtop *, glibtop_ppp *, unsigned short));
|
||||
void glibtop_init_ppp_p (glibtop *server);
|
||||
void glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||
#else
|
||||
extern void glibtop_init_ppp_s __P((glibtop *));
|
||||
extern void glibtop_get_ppp_s __P((glibtop *, glibtop_ppp *, unsigned short));
|
||||
void glibtop_init_ppp_s (glibtop *server);
|
||||
void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -78,6 +82,6 @@ extern const char *glibtop_descriptions_ppp [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROC_ARGS_H__
|
||||
#define __GLIBTOP_PROC_ARGS_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_ARGS_SIZE 0
|
||||
|
||||
@@ -35,8 +39,8 @@ typedef struct _glibtop_proc_args glibtop_proc_args;
|
||||
|
||||
struct _glibtop_proc_args
|
||||
{
|
||||
u_int64_t flags,
|
||||
size; /* GLIBTOP_PROC_ARGS_SIZE */
|
||||
u_int64_t flags,
|
||||
size; /* GLIBTOP_PROC_ARGS_SIZE */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_args(proc_args,pid,max_len) glibtop_get_proc_args_l(glibtop_global_server, proc_args, pid, max_len)
|
||||
@@ -47,14 +51,22 @@ struct _glibtop_proc_args
|
||||
#define glibtop_get_proc_args_r glibtop_get_proc_args_s
|
||||
#endif
|
||||
|
||||
extern char *glibtop_get_proc_args_l __P((glibtop *, glibtop_proc_args *, pid_t, unsigned));
|
||||
char *
|
||||
glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_ARGS
|
||||
extern void glibtop_init_proc_args_p __P((glibtop *));
|
||||
extern char *glibtop_get_proc_args_p __P((glibtop *, glibtop_proc_args *, pid_t, unsigned));
|
||||
void glibtop_init_proc_args_p (glibtop *server);
|
||||
|
||||
char *
|
||||
glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
#else
|
||||
extern void glibtop_init_proc_args_s __P((glibtop *));
|
||||
extern char *glibtop_get_proc_args_s __P((glibtop *, glibtop_proc_args *, pid_t, unsigned));
|
||||
void glibtop_init_proc_args_s (glibtop *server);
|
||||
|
||||
char *
|
||||
glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf,
|
||||
pid_t pid, unsigned max_len);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -68,6 +80,6 @@ extern const char *glibtop_descriptions_proc_args [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCKERNEL_H__
|
||||
#define __GLIBTOP_PROCKERNEL_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_KERNEL_K_FLAGS 0
|
||||
#define GLIBTOP_PROC_KERNEL_MIN_FLT 1
|
||||
@@ -39,27 +43,38 @@ __BEGIN_DECLS
|
||||
|
||||
#define GLIBTOP_MAX_PROC_KERNEL 9
|
||||
|
||||
/* Constants for the `k_flags' field. */
|
||||
#define GLIBTOP_KFLAGS_STARTING 1 /* being created */
|
||||
#define GLIBTOP_KFLAGS_EXITING 2 /* getting shut down */
|
||||
#define GLIBTOP_KFLAGS_PTRACED 4 /* set if ptrace (0) has
|
||||
been called */
|
||||
#define GLIBTOP_KFLAGS_TRACESYS 8 /* tracing system calls */
|
||||
#define GLIBTOP_KFLAGS_FORKNOEXEC 16 /* forked but didn't exec */
|
||||
#define GLIBTOP_KFLAGS_SUPERPRIV 32 /* used super-user privileges */
|
||||
#define GLIBTOP_KFLAGS_DUMPEDCORE 64 /* dumped core */
|
||||
#define GLIBTOP_KFLAGS_SIGNALED 128 /* killed by a signal */
|
||||
|
||||
typedef struct _glibtop_proc_kernel glibtop_proc_kernel;
|
||||
|
||||
/* Kernel stuff */
|
||||
|
||||
struct _glibtop_proc_kernel
|
||||
{
|
||||
u_int64_t flags;
|
||||
u_int64_t k_flags, /* kernel flags for the process */
|
||||
min_flt, /* number of minor page faults since
|
||||
* process start */
|
||||
maj_flt, /* number of major page faults since
|
||||
* process start */
|
||||
cmin_flt, /* cumulative min_flt of process and
|
||||
* child processes */
|
||||
cmaj_flt, /* cumulative maj_flt of process and
|
||||
* child processes */
|
||||
kstk_esp, /* kernel stack pointer */
|
||||
kstk_eip, /* kernel stack pointer */
|
||||
nwchan; /* address of kernel wait channel
|
||||
* proc is sleeping in */
|
||||
char wchan [40];
|
||||
u_int64_t flags;
|
||||
u_int64_t k_flags, /* kernel flags for the process */
|
||||
min_flt, /* number of minor page faults since
|
||||
* process start */
|
||||
maj_flt, /* number of major page faults since
|
||||
* process start */
|
||||
cmin_flt, /* cumulative min_flt of process and
|
||||
* child processes */
|
||||
cmaj_flt, /* cumulative maj_flt of process and
|
||||
* child processes */
|
||||
kstk_esp, /* kernel stack pointer */
|
||||
kstk_eip, /* kernel stack pointer */
|
||||
nwchan; /* address of kernel wait channel
|
||||
* proc is sleeping in */
|
||||
char wchan [40];
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_kernel(p1, p2) glibtop_get_proc_kernel_l(glibtop_global_server, p1, p2)
|
||||
@@ -70,14 +85,14 @@ struct _glibtop_proc_kernel
|
||||
#define glibtop_get_proc_kernel_r glibtop_get_proc_kernel_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_kernel_l __P((glibtop *, glibtop_proc_kernel *, pid_t));
|
||||
void glibtop_get_proc_kernel_l (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_KERNEL
|
||||
extern void glibtop_init_proc_kernel_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_kernel_p __P((glibtop *, glibtop_proc_kernel *, pid_t));
|
||||
void glibtop_init_proc_kernel_p (glibtop *server);
|
||||
void glibtop_get_proc_kernel_p (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_kernel_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_kernel_s __P((glibtop *, glibtop_proc_kernel *, pid_t));
|
||||
void glibtop_init_proc_kernel_s (glibtop *server);
|
||||
void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -91,6 +106,6 @@ extern const char *glibtop_descriptions_proc_kernel [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCLIST_H__
|
||||
#define __GLIBTOP_PROCLIST_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROCLIST_NUMBER 0
|
||||
#define GLIBTOP_PROCLIST_TOTAL 1
|
||||
@@ -54,10 +58,10 @@ typedef struct _glibtop_proclist glibtop_proclist;
|
||||
|
||||
struct _glibtop_proclist
|
||||
{
|
||||
u_int64_t flags,
|
||||
number, /* GLIBTOP_PROCLIST_NUMBER */
|
||||
total, /* GLIBTOP_PROCLIST_TOTAL */
|
||||
size; /* GLIBTOP_PROCLIST_SIZE */
|
||||
u_int64_t flags,
|
||||
number, /* GLIBTOP_PROCLIST_NUMBER */
|
||||
total, /* GLIBTOP_PROCLIST_TOTAL */
|
||||
size; /* GLIBTOP_PROCLIST_SIZE */
|
||||
};
|
||||
|
||||
#define glibtop_get_proclist(proclist,which,arg) glibtop_get_proclist_l(glibtop_global_server, proclist, which, arg)
|
||||
@@ -68,14 +72,22 @@ struct _glibtop_proclist
|
||||
#define glibtop_get_proclist_r glibtop_get_proclist_s
|
||||
#endif
|
||||
|
||||
extern unsigned *glibtop_get_proclist_l __P((glibtop *, glibtop_proclist *, int64_t, int64_t));
|
||||
unsigned *
|
||||
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
|
||||
int64_t which, int64_t arg);
|
||||
|
||||
#if GLIBTOP_SUID_PROCLIST
|
||||
extern void glibtop_init_proclist_p __P((glibtop *));
|
||||
extern unsigned *glibtop_get_proclist_p __P((glibtop *, glibtop_proclist *, int64_t, int64_t));
|
||||
void glibtop_init_proclist_p (glibtop *server);
|
||||
|
||||
unsigned *
|
||||
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
|
||||
int64_t which, int64_t arg);
|
||||
#else
|
||||
extern void glibtop_init_proclist_s __P((glibtop *));
|
||||
extern unsigned *glibtop_get_proclist_s __P((glibtop *, glibtop_proclist *, int64_t, int64_t));
|
||||
void glibtop_init_proclist_s (glibtop *server);
|
||||
|
||||
unsigned *
|
||||
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
|
||||
int64_t which, int64_t arg);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -89,6 +101,6 @@ extern const char *glibtop_descriptions_proclist [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROC_MAP_H__
|
||||
#define __GLIBTOP_PROC_MAP_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_MAP_NUMBER 0
|
||||
#define GLIBTOP_PROC_MAP_TOTAL 1
|
||||
@@ -57,16 +61,16 @@ typedef struct _glibtop_proc_map glibtop_proc_map;
|
||||
|
||||
struct _glibtop_map_entry
|
||||
{
|
||||
u_int64_t flags, start, end, offset, perm, inode, device;
|
||||
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
|
||||
u_int64_t flags, start, end, offset, perm, inode, device;
|
||||
char filename [GLIBTOP_MAP_FILENAME_LEN+1];
|
||||
};
|
||||
|
||||
struct _glibtop_proc_map
|
||||
{
|
||||
u_int64_t flags,
|
||||
number, /* GLIBTOP_PROC_MAP_NUMBER */
|
||||
total, /* GLIBTOP_PROC_MAP_TOTAL */
|
||||
size; /* GLIBTOP_PROC_MAP_SIZE */
|
||||
u_int64_t flags,
|
||||
number, /* GLIBTOP_PROC_MAP_NUMBER */
|
||||
total, /* GLIBTOP_PROC_MAP_TOTAL */
|
||||
size; /* GLIBTOP_PROC_MAP_SIZE */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_map(proc_map,pid) glibtop_get_proc_map_l(glibtop_global_server, proc_map, pid)
|
||||
@@ -77,14 +81,19 @@ struct _glibtop_proc_map
|
||||
#define glibtop_get_proc_map_r glibtop_get_proc_map_s
|
||||
#endif
|
||||
|
||||
extern glibtop_map_entry *glibtop_get_proc_map_l __P((glibtop *, glibtop_proc_map *, pid_t));
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map_l (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MAP
|
||||
extern void glibtop_init_proc_map_p __P((glibtop *));
|
||||
extern glibtop_map_entry *glibtop_get_proc_map_p __P((glibtop *, glibtop_proc_map *, pid_t));
|
||||
void glibtop_init_proc_map_p (glibtop *server);
|
||||
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_map_s __P((glibtop *));
|
||||
extern glibtop_map_entry *glibtop_get_proc_map_s __P((glibtop *, glibtop_proc_map *, pid_t));
|
||||
void glibtop_init_proc_map_s (glibtop *server);
|
||||
|
||||
glibtop_map_entry *
|
||||
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -98,6 +107,6 @@ extern const char *glibtop_descriptions_proc_map [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCMEM_H__
|
||||
#define __GLIBTOP_PROCMEM_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_MEM_SIZE 0
|
||||
#define GLIBTOP_PROC_MEM_VSIZE 1
|
||||
@@ -42,15 +46,15 @@ typedef struct _glibtop_proc_mem glibtop_proc_mem;
|
||||
|
||||
struct _glibtop_proc_mem
|
||||
{
|
||||
u_int64_t flags,
|
||||
size, /* total # of pages of memory */
|
||||
vsize, /* number of pages of virtual memory ... */
|
||||
resident, /* number of resident set
|
||||
* (non-swapped) pages (4k) */
|
||||
share, /* number of pages of shared (mmap'd) memory */
|
||||
rss, /* resident set size */
|
||||
rss_rlim; /* current limit (in bytes) of the rss
|
||||
* of the process; usually 2,147,483,647 */
|
||||
u_int64_t flags,
|
||||
size, /* total # of pages of memory */
|
||||
vsize, /* number of pages of virtual memory ... */
|
||||
resident, /* number of resident set
|
||||
* (non-swapped) pages (4k) */
|
||||
share, /* number of pages of shared (mmap'd) memory */
|
||||
rss, /* resident set size */
|
||||
rss_rlim; /* current limit (in bytes) of the rss
|
||||
* of the process; usually 2,147,483,647 */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_mem(p1, p2) glibtop_get_proc_mem_l(glibtop_global_server, p1, p2)
|
||||
@@ -61,14 +65,14 @@ struct _glibtop_proc_mem
|
||||
#define glibtop_get_proc_mem_r glibtop_get_proc_mem_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_mem_l __P((glibtop *, glibtop_proc_mem *, pid_t));
|
||||
void glibtop_get_proc_mem_l (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_MEM
|
||||
extern void glibtop_init_proc_mem_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_mem_p __P((glibtop *, glibtop_proc_mem *, pid_t));
|
||||
void glibtop_init_proc_mem_p (glibtop *server);
|
||||
void glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_mem_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_mem_s __P((glibtop *, glibtop_proc_mem *, pid_t));
|
||||
void glibtop_init_proc_mem_s (glibtop *server);
|
||||
void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -82,6 +86,6 @@ extern const char *glibtop_descriptions_proc_mem [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCSEGMENT_H__
|
||||
#define __GLIBTOP_PROCSEGMENT_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_SEGMENT_TEXT_RSS 0
|
||||
#define GLIBTOP_PROC_SEGMENT_SHLIB_RSS 1
|
||||
@@ -34,9 +38,18 @@ __BEGIN_DECLS
|
||||
#define GLIBTOP_PROC_SEGMENT_DIRTY_SIZE 4
|
||||
#define GLIBTOP_PROC_SEGMENT_START_CODE 5
|
||||
#define GLIBTOP_PROC_SEGMENT_END_CODE 6
|
||||
#define GLIBTOP_PROC_SEGMENT_START_STACK 7
|
||||
#define GLIBTOP_PROC_SEGMENT_START_DATA 7
|
||||
#define GLIBTOP_PROC_SEGMENT_END_DATA 8
|
||||
#define GLIBTOP_PROC_SEGMENT_START_BRK 9
|
||||
#define GLIBTOP_PROC_SEGMENT_END_BRK 10
|
||||
#define GLIBTOP_PROC_SEGMENT_START_STACK 11
|
||||
#define GLIBTOP_PROC_SEGMENT_START_MMAP 12
|
||||
#define GLIBTOP_PROC_SEGMENT_ARG_START 13
|
||||
#define GLIBTOP_PROC_SEGMENT_ARG_END 14
|
||||
#define GLIBTOP_PROC_SEGMENT_ENV_START 15
|
||||
#define GLIBTOP_PROC_SEGMENT_ENV_END 16
|
||||
|
||||
#define GLIBTOP_MAX_PROC_SEGMENT 8
|
||||
#define GLIBTOP_MAX_PROC_SEGMENT 17
|
||||
|
||||
typedef struct _glibtop_proc_segment glibtop_proc_segment;
|
||||
|
||||
@@ -44,16 +57,24 @@ typedef struct _glibtop_proc_segment glibtop_proc_segment;
|
||||
|
||||
struct _glibtop_proc_segment
|
||||
{
|
||||
u_int64_t flags,
|
||||
text_rss, /* text resident set size */
|
||||
shlib_rss, /* shared-lib resident set size */
|
||||
data_rss, /* data resident set size */
|
||||
stack_rss, /* stack resident set size */
|
||||
dirty_size, /* size of dirty pages */
|
||||
start_code,
|
||||
/* address of beginning of code segment */
|
||||
end_code, /* address of end of code segment */
|
||||
start_stack; /* address of the bottom of stack segment */
|
||||
u_int64_t flags,
|
||||
text_rss, /* text resident set size */
|
||||
shlib_rss, /* shared-lib resident set size */
|
||||
data_rss, /* data resident set size */
|
||||
stack_rss, /* stack resident set size */
|
||||
dirty_size, /* size of dirty pages */
|
||||
start_code, /* address of beginning of code segment */
|
||||
end_code, /* address of end of code segment */
|
||||
start_data, /* address of beginning of data segment */
|
||||
end_data, /* address of end of data segment */
|
||||
start_brk,
|
||||
end_brk,
|
||||
start_stack, /* address of the bottom of stack segment */
|
||||
start_mmap,
|
||||
arg_start,
|
||||
arg_end,
|
||||
env_start,
|
||||
env_end;
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_segment(p1, p2) glibtop_get_proc_segment_l(glibtop_global_server, p1, p2)
|
||||
@@ -64,14 +85,14 @@ struct _glibtop_proc_segment
|
||||
#define glibtop_get_proc_segment_r glibtop_get_proc_segment_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_segment_l __P((glibtop *, glibtop_proc_segment *, pid_t));
|
||||
void glibtop_get_proc_segment_l (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SEGMENT
|
||||
extern void glibtop_init_proc_segment_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_segment_p __P((glibtop *, glibtop_proc_segment *, pid_t));
|
||||
void glibtop_init_proc_segment_p (glibtop *server);
|
||||
void glibtop_get_proc_segment_p (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_segment_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_segment_s __P((glibtop *, glibtop_proc_segment *, pid_t));
|
||||
void glibtop_init_proc_segment_s (glibtop *server);
|
||||
void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -85,6 +106,6 @@ extern const char *glibtop_descriptions_proc_segment [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCSIGNAL_H__
|
||||
#define __GLIBTOP_PROCSIGNAL_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_SIGNAL_SIGNAL 0
|
||||
#define GLIBTOP_PROC_SIGNAL_BLOCKED 1
|
||||
@@ -40,11 +44,11 @@ typedef struct _glibtop_proc_signal glibtop_proc_signal;
|
||||
|
||||
struct _glibtop_proc_signal
|
||||
{
|
||||
u_int64_t flags,
|
||||
signal [2], /* mask of pending signals */
|
||||
blocked [2], /* mask of blocked signals */
|
||||
sigignore [2], /* mask of ignored signals */
|
||||
sigcatch [2]; /* mask of caught signals */
|
||||
u_int64_t flags,
|
||||
signal [2], /* mask of pending signals */
|
||||
blocked [2], /* mask of blocked signals */
|
||||
sigignore [2], /* mask of ignored signals */
|
||||
sigcatch [2]; /* mask of caught signals */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_signal(p1, p2) glibtop_get_proc_signal_l(glibtop_global_server, p1, p2)
|
||||
@@ -55,14 +59,14 @@ struct _glibtop_proc_signal
|
||||
#define glibtop_get_proc_signal_r glibtop_get_proc_signal_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_signal_l __P((glibtop *, glibtop_proc_signal *, pid_t));
|
||||
void glibtop_get_proc_signal_l (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_SIGNAL
|
||||
extern void glibtop_init_proc_signal_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_signal_p __P((glibtop *, glibtop_proc_signal *, pid_t));
|
||||
void glibtop_init_proc_signal_p (glibtop *server);
|
||||
void glibtop_get_proc_signal_p (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_signal_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_signal_s __P((glibtop *, glibtop_proc_signal *, pid_t));
|
||||
void glibtop_init_proc_signal_s (glibtop *server);
|
||||
void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -76,6 +80,6 @@ extern const char *glibtop_descriptions_proc_signal [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCSTATE_H__
|
||||
#define __GLIBTOP_PROCSTATE_H__
|
||||
@@ -25,14 +29,27 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_STATE_CMD 0
|
||||
#define GLIBTOP_PROC_STATE_STATE 1
|
||||
#define GLIBTOP_PROC_STATE_UID 2
|
||||
#define GLIBTOP_PROC_STATE_GID 3
|
||||
#define GLIBTOP_PROC_STATE_CMD 0
|
||||
#define GLIBTOP_PROC_STATE_STATE 1
|
||||
#define GLIBTOP_PROC_STATE_UID 2
|
||||
#define GLIBTOP_PROC_STATE_GID 3
|
||||
#define GLIBTOP_PROC_STATE_RUID 4
|
||||
#define GLIBTOP_PROC_STATE_RGID 5
|
||||
#define GLIBTOP_PROC_STATE_HAS_CPU 6
|
||||
#define GLIBTOP_PROC_STATE_PROCESSOR 7
|
||||
#define GLIBTOP_PROC_STATE_LAST_PROCESSOR 8
|
||||
|
||||
#define GLIBTOP_MAX_PROC_STATE 4
|
||||
#define GLIBTOP_MAX_PROC_STATE 9
|
||||
|
||||
/* Constants for the `state' field. */
|
||||
#define GLIBTOP_PROCESS_RUNNING 1
|
||||
#define GLIBTOP_PROCESS_INTERRUPTIBLE 2
|
||||
#define GLIBTOP_PROCESS_UNINTERRUPTIBLE 4
|
||||
#define GLIBTOP_PROCESS_ZOMBIE 8
|
||||
#define GLIBTOP_PROCESS_STOPPED 16
|
||||
#define GLIBTOP_PROCESS_SWAPPING 32
|
||||
|
||||
typedef struct _glibtop_proc_state glibtop_proc_state;
|
||||
|
||||
@@ -40,18 +57,24 @@ typedef struct _glibtop_proc_state glibtop_proc_state;
|
||||
|
||||
struct _glibtop_proc_state
|
||||
{
|
||||
u_int64_t flags;
|
||||
char cmd[40], /* basename of executable file in
|
||||
u_int64_t flags;
|
||||
char cmd[40]; /* basename of executable file in
|
||||
* call to exec(2) */
|
||||
state; /* single-char code for process state
|
||||
* (S=sleeping) */
|
||||
/* NOTE: when porting the library, TRY HARD to implement the
|
||||
* following two fields. */
|
||||
/* IMPORTANT NOTICE: For security reasons, it is extremely important
|
||||
* only to set the flags value for those two
|
||||
* fields if their values are corrent ! */
|
||||
int uid, /* UID of process */
|
||||
gid; /* GID of process */
|
||||
unsigned state; /* process state */
|
||||
/* NOTE: when porting the library, TRY HARD to implement the
|
||||
* following two fields. */
|
||||
/* IMPORTANT NOTICE: For security reasons, it is extremely important
|
||||
* only to set the flags value for those two
|
||||
* fields if their values are corrent ! */
|
||||
int uid, /* effective UID of process */
|
||||
gid, /* effective GID of process */
|
||||
ruid, /* real UID of process */
|
||||
rgid; /* real GID of process */
|
||||
/* SMP values. */
|
||||
int has_cpu,
|
||||
processor,
|
||||
last_processor;
|
||||
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_state(p1, p2) glibtop_get_proc_state_l(glibtop_global_server, p1, p2)
|
||||
@@ -62,14 +85,14 @@ struct _glibtop_proc_state
|
||||
#define glibtop_get_proc_state_r glibtop_get_proc_state_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_state_l __P((glibtop *, glibtop_proc_state *, pid_t));
|
||||
void glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_STATE
|
||||
extern void glibtop_init_proc_state_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_state_p __P((glibtop *, glibtop_proc_state *, pid_t));
|
||||
void glibtop_init_proc_state_p (glibtop *server);
|
||||
void glibtop_get_proc_state_p (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_state_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_state_s __P((glibtop *, glibtop_proc_state *, pid_t));
|
||||
void glibtop_init_proc_state_s (glibtop *server);
|
||||
void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -83,6 +106,6 @@ extern const char *glibtop_descriptions_proc_state [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCTIME_H__
|
||||
#define __GLIBTOP_PROCTIME_H__
|
||||
@@ -26,7 +30,7 @@
|
||||
#include <glibtop/cpu.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_TIME_START_TIME 0
|
||||
#define GLIBTOP_PROC_TIME_RTIME 1
|
||||
@@ -39,8 +43,9 @@ __BEGIN_DECLS
|
||||
#define GLIBTOP_PROC_TIME_FREQUENCY 8
|
||||
#define GLIBTOP_PROC_TIME_XCPU_UTIME 9
|
||||
#define GLIBTOP_PROC_TIME_XCPU_STIME 10
|
||||
#define GLIBTOP_PROC_TIME_XCPU_FLAGS 11
|
||||
|
||||
#define GLIBTOP_MAX_PROC_TIME 11
|
||||
#define GLIBTOP_MAX_PROC_TIME 12
|
||||
|
||||
typedef struct _glibtop_proc_time glibtop_proc_time;
|
||||
|
||||
@@ -48,24 +53,25 @@ typedef struct _glibtop_proc_time glibtop_proc_time;
|
||||
|
||||
struct _glibtop_proc_time
|
||||
{
|
||||
u_int64_t flags,
|
||||
start_time, /* start time of process --
|
||||
* seconds since 1-1-70 */
|
||||
rtime, /* real time accumulated by process */
|
||||
utime, /* user-mode CPU time accumulated by process */
|
||||
stime, /* kernel-mode CPU time accumulated by process */
|
||||
cutime, /* cumulative utime of process and
|
||||
* reaped children */
|
||||
cstime, /* cumulative stime of process and
|
||||
* reaped children */
|
||||
timeout, /* The time (in jiffies) of the process's
|
||||
* next timeout */
|
||||
it_real_value, /* The time (in jiffies) before the
|
||||
* next SIGALRM is sent to the process
|
||||
* due to an interval timer. */
|
||||
frequency, /* Tick frequency. */
|
||||
xcpu_utime [GLIBTOP_NCPU], /* utime and stime for all CPUs on */
|
||||
xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
|
||||
u_int64_t flags,
|
||||
start_time, /* start time of process --
|
||||
* seconds since 1-1-70 */
|
||||
rtime, /* real time accumulated by process */
|
||||
utime, /* user-mode CPU time accumulated by process */
|
||||
stime, /* kernel-mode CPU time accumulated by process */
|
||||
cutime, /* cumulative utime of process and
|
||||
* reaped children */
|
||||
cstime, /* cumulative stime of process and
|
||||
* reaped children */
|
||||
timeout, /* The time (in jiffies) of the process's
|
||||
* next timeout */
|
||||
it_real_value, /* The time (in jiffies) before the
|
||||
* next SIGALRM is sent to the process
|
||||
* due to an interval timer. */
|
||||
frequency, /* Tick frequency. */
|
||||
xcpu_utime [GLIBTOP_NCPU], /* utime and stime for all CPUs on */
|
||||
xcpu_stime [GLIBTOP_NCPU], /* SMP machines. */
|
||||
xcpu_flags;
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_time(p1, p2) glibtop_get_proc_time_l(glibtop_global_server, p1, p2)
|
||||
@@ -76,14 +82,14 @@ struct _glibtop_proc_time
|
||||
#define glibtop_get_proc_time_r glibtop_get_proc_time_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_time_l __P((glibtop *, glibtop_proc_time *, pid_t));
|
||||
void glibtop_get_proc_time_l (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_TIME
|
||||
extern void glibtop_init_proc_time_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_time_p __P((glibtop *, glibtop_proc_time *, pid_t));
|
||||
void glibtop_init_proc_time_p (glibtop *server);
|
||||
void glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_time_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_time_s __P((glibtop *, glibtop_proc_time *, pid_t));
|
||||
void glibtop_init_proc_time_s (glibtop *server);
|
||||
void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -97,6 +103,6 @@ extern const char *glibtop_descriptions_proc_time [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_PROCUID_H__
|
||||
#define __GLIBTOP_PROCUID_H__
|
||||
@@ -25,22 +29,28 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_PROC_UID_UID 0
|
||||
#define GLIBTOP_PROC_UID_EUID 1
|
||||
#define GLIBTOP_PROC_UID_GID 2
|
||||
#define GLIBTOP_PROC_UID_EGID 3
|
||||
#define GLIBTOP_PROC_UID_PID 4
|
||||
#define GLIBTOP_PROC_UID_PPID 5
|
||||
#define GLIBTOP_PROC_UID_PGRP 6
|
||||
#define GLIBTOP_PROC_UID_SESSION 7
|
||||
#define GLIBTOP_PROC_UID_TTY 8
|
||||
#define GLIBTOP_PROC_UID_TPGID 9
|
||||
#define GLIBTOP_PROC_UID_PRIORITY 10
|
||||
#define GLIBTOP_PROC_UID_NICE 11
|
||||
#define GLIBTOP_PROC_UID_SUID 4
|
||||
#define GLIBTOP_PROC_UID_SGID 5
|
||||
#define GLIBTOP_PROC_UID_FSUID 6
|
||||
#define GLIBTOP_PROC_UID_FSGID 7
|
||||
#define GLIBTOP_PROC_UID_PID 8
|
||||
#define GLIBTOP_PROC_UID_PPID 9
|
||||
#define GLIBTOP_PROC_UID_PGRP 10
|
||||
#define GLIBTOP_PROC_UID_SESSION 11
|
||||
#define GLIBTOP_PROC_UID_TTY 12
|
||||
#define GLIBTOP_PROC_UID_TPGID 13
|
||||
#define GLIBTOP_PROC_UID_PRIORITY 14
|
||||
#define GLIBTOP_PROC_UID_NICE 15
|
||||
#define GLIBTOP_PROC_UID_NGROUPS 16
|
||||
#define GLIBTOP_PROC_UID_GROUPS 17
|
||||
|
||||
#define GLIBTOP_MAX_PROC_UID 12
|
||||
#define GLIBTOP_MAX_PROC_UID 18
|
||||
|
||||
typedef struct _glibtop_proc_uid glibtop_proc_uid;
|
||||
|
||||
@@ -48,19 +58,25 @@ typedef struct _glibtop_proc_uid glibtop_proc_uid;
|
||||
|
||||
struct _glibtop_proc_uid
|
||||
{
|
||||
u_int64_t flags;
|
||||
int uid, /* user id */
|
||||
euid, /* effective user id */
|
||||
gid, /* group id */
|
||||
egid, /* effective group id */
|
||||
pid, /* process id */
|
||||
ppid, /* pid of parent process */
|
||||
pgrp, /* process group id */
|
||||
session, /* session id */
|
||||
tty, /* full device number of controlling terminal */
|
||||
tpgid, /* terminal process group id */
|
||||
priority, /* kernel scheduling priority */
|
||||
nice; /* standard unix nice level of process */
|
||||
u_int64_t flags;
|
||||
int uid, /* user id */
|
||||
euid, /* effective user id */
|
||||
gid, /* group id */
|
||||
egid, /* effective group id */
|
||||
suid, /* saved user id */
|
||||
sgid, /* saved group id */
|
||||
fsuid, /* file system user id */
|
||||
fsgid, /* file system group id */
|
||||
pid, /* process id */
|
||||
ppid, /* pid of parent process */
|
||||
pgrp, /* process group id */
|
||||
session, /* session id */
|
||||
tty, /* full device number of controlling terminal */
|
||||
tpgid, /* terminal process group id */
|
||||
priority, /* kernel scheduling priority */
|
||||
nice, /* standard unix nice level of process */
|
||||
ngroups, /* number of additional process groups */
|
||||
groups [GLIBTOP_MAX_GROUPS]; /* additional prcess groups */
|
||||
};
|
||||
|
||||
#define glibtop_get_proc_uid(p1, p2) glibtop_get_proc_uid_l(glibtop_global_server, p1, p2)
|
||||
@@ -71,14 +87,14 @@ struct _glibtop_proc_uid
|
||||
#define glibtop_get_proc_uid_r glibtop_get_proc_uid_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_proc_uid_l __P((glibtop *, glibtop_proc_uid *, pid_t));
|
||||
void glibtop_get_proc_uid_l (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
||||
|
||||
#if GLIBTOP_SUID_PROC_UID
|
||||
extern void glibtop_init_proc_uid_p __P((glibtop *));
|
||||
extern void glibtop_get_proc_uid_p __P((glibtop *, glibtop_proc_uid *, pid_t));
|
||||
void glibtop_init_proc_uid_p (glibtop *server);
|
||||
void glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
||||
#else
|
||||
extern void glibtop_init_proc_uid_s __P((glibtop *));
|
||||
extern void glibtop_get_proc_uid_s __P((glibtop *, glibtop_proc_uid *, pid_t));
|
||||
void glibtop_init_proc_uid_s (glibtop *server);
|
||||
void glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -92,6 +108,6 @@ extern const char *glibtop_descriptions_proc_uid [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_READ_H__
|
||||
#define __GLIBTOP_READ_H__
|
||||
@@ -25,13 +29,13 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/error.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define glibtop_read(p1, p2) glibtop_read(glibtop_global_server, p1, p2)
|
||||
|
||||
extern void glibtop_read_l __P((glibtop *, size_t, void *));
|
||||
extern void glibtop_read_s __P((glibtop *, size_t, void *));
|
||||
void glibtop_read_l (glibtop *server, size_t size, void *buf);
|
||||
void glibtop_read_s (glibtop *server, size_t size, void *buf);
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_READ_DATA_H__
|
||||
#define __GLIBTOP_READ_DATA_H__
|
||||
@@ -25,13 +29,13 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/error.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define glibtop_read_data() glibtop_read_data_r(glibtop_global_server)
|
||||
|
||||
extern void *glibtop_read_data_l __P((glibtop *));
|
||||
extern void *glibtop_read_data_s __P((glibtop *));
|
||||
void *glibtop_read_data_l (glibtop *server);
|
||||
void *glibtop_read_data_s (glibtop *server);
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SEM_LIMITS_H__
|
||||
#define __GLIBTOP_SEM_LIMITS_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_IPC_SEMMAP 0
|
||||
#define GLIBTOP_IPC_SEMMNI 1
|
||||
@@ -44,17 +48,17 @@ typedef struct _glibtop_sem_limits glibtop_sem_limits;
|
||||
|
||||
struct _glibtop_sem_limits
|
||||
{
|
||||
u_int64_t flags,
|
||||
semmap, /* GLIBTOP_IPC_SEMMAP */
|
||||
semmni, /* GLIBTOP_IPC_SEMMNI */
|
||||
semmns, /* GLIBTOP_IPC_SEMMNS */
|
||||
semmnu, /* GLIBTOP_IPC_SEMMNU */
|
||||
semmsl, /* GLIBTOP_IPC_SEMMSL */
|
||||
semopm, /* GLIBTOP_IPC_SEMOPM */
|
||||
semume, /* GLIBTOP_IPC_SEMUME */
|
||||
semusz, /* GLIBTOP_IPC_SEMUSZ */
|
||||
semvmx, /* GLIBTOP_IPC_SEMVMX */
|
||||
semaem; /* GLIBTOP_IPC_SEMAEM */
|
||||
u_int64_t flags,
|
||||
semmap, /* GLIBTOP_IPC_SEMMAP */
|
||||
semmni, /* GLIBTOP_IPC_SEMMNI */
|
||||
semmns, /* GLIBTOP_IPC_SEMMNS */
|
||||
semmnu, /* GLIBTOP_IPC_SEMMNU */
|
||||
semmsl, /* GLIBTOP_IPC_SEMMSL */
|
||||
semopm, /* GLIBTOP_IPC_SEMOPM */
|
||||
semume, /* GLIBTOP_IPC_SEMUME */
|
||||
semusz, /* GLIBTOP_IPC_SEMUSZ */
|
||||
semvmx, /* GLIBTOP_IPC_SEMVMX */
|
||||
semaem; /* GLIBTOP_IPC_SEMAEM */
|
||||
};
|
||||
|
||||
#define glibtop_get_sem_limits(sem) glibtop_get_sem_limits_l(glibtop_global_server, sem)
|
||||
@@ -65,14 +69,14 @@ struct _glibtop_sem_limits
|
||||
#define glibtop_get_sem_limits_r glibtop_get_sem_limits_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_sem_limits_l __P((glibtop *, glibtop_sem_limits *));
|
||||
void glibtop_get_sem_limits_l (glibtop *server, glibtop_sem_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SEM_LIMITS
|
||||
extern void glibtop_init_sem_limits_p __P((glibtop *));
|
||||
extern void glibtop_get_sem_limits_p __P((glibtop *, glibtop_sem_limits *));
|
||||
void glibtop_init_sem_limits_p (glibtop *server);
|
||||
void glibtop_get_sem_limits_p (glibtop *server, glibtop_sem_limits *buf);
|
||||
#else
|
||||
extern void glibtop_init_sem_limits_s __P((glibtop *));
|
||||
extern void glibtop_get_sem_limits_s __P((glibtop *, glibtop_sem_limits *));
|
||||
void glibtop_init_sem_limits_s (glibtop *server);
|
||||
void glibtop_get_sem_limits_s (glibtop *server, glibtop_sem_limits *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -86,6 +90,6 @@ extern const char *glibtop_descriptions_sem_limits [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SHM_LIMITS_H__
|
||||
#define __GLIBTOP_SHM_LIMITS_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_IPC_SHMMAX 0
|
||||
#define GLIBTOP_IPC_SHMMIN 1
|
||||
@@ -39,12 +43,12 @@ typedef struct _glibtop_shm_limits glibtop_shm_limits;
|
||||
|
||||
struct _glibtop_shm_limits
|
||||
{
|
||||
u_int64_t flags,
|
||||
shmmax, /* GLIBTOP_IPC_SHMMAX */
|
||||
shmmin, /* GLIBTOP_IPC_SHMMIN */
|
||||
shmmni, /* GLIBTOP_IPC_SHMMNI */
|
||||
shmseg, /* GLIBTOP_IPC_SHMSEG */
|
||||
shmall; /* GLIBTOP_IPC_SHMALL */
|
||||
u_int64_t flags,
|
||||
shmmax, /* GLIBTOP_IPC_SHMMAX */
|
||||
shmmin, /* GLIBTOP_IPC_SHMMIN */
|
||||
shmmni, /* GLIBTOP_IPC_SHMMNI */
|
||||
shmseg, /* GLIBTOP_IPC_SHMSEG */
|
||||
shmall; /* GLIBTOP_IPC_SHMALL */
|
||||
};
|
||||
|
||||
#define glibtop_get_shm_limits(shm) glibtop_get_shm_limits_l(glibtop_global_server, shm)
|
||||
@@ -55,14 +59,14 @@ struct _glibtop_shm_limits
|
||||
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_shm_limits_l __P((glibtop *, glibtop_shm_limits *));
|
||||
void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SHM_LIMITS
|
||||
extern void glibtop_init_shm_limits_p __P((glibtop *));
|
||||
extern void glibtop_get_shm_limits_p __P((glibtop *, glibtop_shm_limits *));
|
||||
void glibtop_init_shm_limits_p (glibtop *server);
|
||||
void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf);
|
||||
#else
|
||||
extern void glibtop_init_shm_limits_s __P((glibtop *));
|
||||
extern void glibtop_get_shm_limits_s __P((glibtop *, glibtop_shm_limits *));
|
||||
void glibtop_init_shm_limits_s (glibtop *server);
|
||||
void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -76,6 +80,6 @@ extern const char *glibtop_descriptions_shm_limits [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SIGNAL_H__
|
||||
#define __GLIBTOP_SIGNAL_H__
|
||||
@@ -28,18 +32,18 @@
|
||||
#include <sys/signal.h>
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
typedef struct _glibtop_signame glibtop_signame;
|
||||
|
||||
struct _glibtop_signame
|
||||
{
|
||||
const int number;
|
||||
const char *name, *label;
|
||||
const int number;
|
||||
const char *name, *label;
|
||||
};
|
||||
|
||||
extern const glibtop_signame glibtop_sys_siglist [];
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SWAP_H__
|
||||
#define __GLIBTOP_SWAP_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_SWAP_TOTAL 0
|
||||
#define GLIBTOP_SWAP_USED 1
|
||||
@@ -39,12 +43,12 @@ typedef struct _glibtop_swap glibtop_swap;
|
||||
|
||||
struct _glibtop_swap
|
||||
{
|
||||
u_int64_t flags,
|
||||
total, /* GLIBTOP_SWAP_TOTAL */
|
||||
used, /* GLIBTOP_SWAP_USED */
|
||||
free, /* GLIBTOP_SWAP_FREE */
|
||||
pagein, /* GLIBTOP_SWAP_PAGEIN */
|
||||
pageout; /* GLIBTOP_SWAP_PAGEOUT */
|
||||
u_int64_t flags,
|
||||
total, /* GLIBTOP_SWAP_TOTAL */
|
||||
used, /* GLIBTOP_SWAP_USED */
|
||||
free, /* GLIBTOP_SWAP_FREE */
|
||||
pagein, /* GLIBTOP_SWAP_PAGEIN */
|
||||
pageout; /* GLIBTOP_SWAP_PAGEOUT */
|
||||
};
|
||||
|
||||
#define glibtop_get_swap(swap) glibtop_get_swap_l(glibtop_global_server, swap)
|
||||
@@ -55,14 +59,14 @@ struct _glibtop_swap
|
||||
#define glibtop_get_swap_r glibtop_get_swap_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_swap_l __P((glibtop *, glibtop_swap *));
|
||||
void glibtop_get_swap_l (glibtop *server, glibtop_swap *buf);
|
||||
|
||||
#if GLIBTOP_SUID_SWAP
|
||||
extern void glibtop_init_swap_p __P((glibtop *));
|
||||
extern void glibtop_get_swap_p __P((glibtop *, glibtop_swap *));
|
||||
void glibtop_init_swap_p (glibtop *server);
|
||||
void glibtop_get_swap_p (glibtop *server, glibtop_swap *buf);
|
||||
#else
|
||||
extern void glibtop_init_swap_s __P((glibtop *));
|
||||
extern void glibtop_get_swap_s __P((glibtop *, glibtop_swap *));
|
||||
void glibtop_init_swap_s (glibtop *server);
|
||||
void glibtop_get_swap_s (glibtop *server, glibtop_swap *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -76,6 +80,6 @@ extern const char *glibtop_descriptions_swap [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,56 +1,59 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SYSDEPS_H__
|
||||
#define __GLIBTOP_SYSDEPS_H__
|
||||
|
||||
#include <glibtop.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_SYSDEPS_FEATURES 0
|
||||
#define GLIBTOP_SYSDEPS_CPU 1
|
||||
#define GLIBTOP_SYSDEPS_MEM 2
|
||||
#define GLIBTOP_SYSDEPS_SWAP 3
|
||||
#define GLIBTOP_SYSDEPS_UPTIME 4
|
||||
#define GLIBTOP_SYSDEPS_LOADAVG 5
|
||||
#define GLIBTOP_SYSDEPS_SHM_LIMITS 6
|
||||
#define GLIBTOP_SYSDEPS_MSG_LIMITS 7
|
||||
#define GLIBTOP_SYSDEPS_SEM_LIMITS 8
|
||||
#define GLIBTOP_SYSDEPS_PROCLIST 9
|
||||
#define GLIBTOP_SYSDEPS_PROC_STATE 10
|
||||
#define GLIBTOP_SYSDEPS_PROC_UID 11
|
||||
#define GLIBTOP_SYSDEPS_PROC_MEM 12
|
||||
#define GLIBTOP_SYSDEPS_PROC_TIME 13
|
||||
#define GLIBTOP_SYSDEPS_PROC_SIGNAL 14
|
||||
#define GLIBTOP_SYSDEPS_PROC_KERNEL 15
|
||||
#define GLIBTOP_SYSDEPS_PROC_SEGMENT 16
|
||||
#define GLIBTOP_SYSDEPS_PROC_ARGS 17
|
||||
#define GLIBTOP_SYSDEPS_PROC_MAP 18
|
||||
#define GLIBTOP_SYSDEPS_MOUNTLIST 19
|
||||
#define GLIBTOP_SYSDEPS_FSUSAGE 20
|
||||
#define GLIBTOP_SYSDEPS_NETLOAD 21
|
||||
#define GLIBTOP_SYSDEPS_PPP 22
|
||||
#define GLIBTOP_SYSDEPS_CPU 0
|
||||
#define GLIBTOP_SYSDEPS_MEM 1
|
||||
#define GLIBTOP_SYSDEPS_SWAP 2
|
||||
#define GLIBTOP_SYSDEPS_UPTIME 3
|
||||
#define GLIBTOP_SYSDEPS_LOADAVG 4
|
||||
#define GLIBTOP_SYSDEPS_SHM_LIMITS 5
|
||||
#define GLIBTOP_SYSDEPS_MSG_LIMITS 6
|
||||
#define GLIBTOP_SYSDEPS_SEM_LIMITS 7
|
||||
#define GLIBTOP_SYSDEPS_PROCLIST 8
|
||||
#define GLIBTOP_SYSDEPS_PROC_STATE 9
|
||||
#define GLIBTOP_SYSDEPS_PROC_UID 10
|
||||
#define GLIBTOP_SYSDEPS_PROC_MEM 11
|
||||
#define GLIBTOP_SYSDEPS_PROC_TIME 12
|
||||
#define GLIBTOP_SYSDEPS_PROC_SIGNAL 13
|
||||
#define GLIBTOP_SYSDEPS_PROC_KERNEL 14
|
||||
#define GLIBTOP_SYSDEPS_PROC_SEGMENT 15
|
||||
#define GLIBTOP_SYSDEPS_PROC_ARGS 16
|
||||
#define GLIBTOP_SYSDEPS_PROC_MAP 17
|
||||
#define GLIBTOP_SYSDEPS_MOUNTLIST 18
|
||||
#define GLIBTOP_SYSDEPS_FSUSAGE 19
|
||||
#define GLIBTOP_SYSDEPS_NETLOAD 20
|
||||
#define GLIBTOP_SYSDEPS_PPP 21
|
||||
|
||||
#define GLIBTOP_MAX_SYSDEPS 23
|
||||
#define GLIBTOP_MAX_SYSDEPS 24
|
||||
|
||||
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
|
||||
|
||||
@@ -62,35 +65,36 @@ typedef struct _glibtop_sysdeps glibtop_sysdeps;
|
||||
|
||||
struct _glibtop_sysdeps
|
||||
{
|
||||
u_int64_t flags,
|
||||
features, /* server features */
|
||||
cpu, /* glibtop_cpu */
|
||||
mem, /* glibtop_mem */
|
||||
swap, /* glibtop_swap */
|
||||
uptime, /* glibtop_uptime */
|
||||
loadavg, /* glibtop_loadavg */
|
||||
shm_limits, /* glibtop_shm_limits */
|
||||
msg_limits, /* glibtop_msg_limits */
|
||||
sem_limits, /* glibtop_sem_limits */
|
||||
proclist, /* glibtop_proclist */
|
||||
proc_state, /* glibtop_proc_state */
|
||||
proc_uid, /* glibtop_proc_uid */
|
||||
proc_mem, /* glibtop_proc_mem */
|
||||
proc_time, /* glibtop_proc_time */
|
||||
proc_signal, /* glibtop_proc_signal */
|
||||
proc_kernel, /* glibtop_proc_kernel */
|
||||
proc_segment, /* glibtop_proc_segment */
|
||||
proc_args, /* glibtop_proc_args */
|
||||
proc_map, /* glibtop_proc_map */
|
||||
mountlist, /* glibtop_mountlist */
|
||||
fsusage, /* glibtop_fsusage */
|
||||
netload, /* glibtop_netload */
|
||||
ppp; /* glibtop_ppp */
|
||||
u_int64_t flags,
|
||||
features, /* server features */
|
||||
pointer_size, /* sizeof(void*)*8 */
|
||||
cpu, /* glibtop_cpu */
|
||||
mem, /* glibtop_mem */
|
||||
swap, /* glibtop_swap */
|
||||
uptime, /* glibtop_uptime */
|
||||
loadavg, /* glibtop_loadavg */
|
||||
shm_limits, /* glibtop_shm_limits */
|
||||
msg_limits, /* glibtop_msg_limits */
|
||||
sem_limits, /* glibtop_sem_limits */
|
||||
proclist, /* glibtop_proclist */
|
||||
proc_state, /* glibtop_proc_state */
|
||||
proc_uid, /* glibtop_proc_uid */
|
||||
proc_mem, /* glibtop_proc_mem */
|
||||
proc_time, /* glibtop_proc_time */
|
||||
proc_signal, /* glibtop_proc_signal */
|
||||
proc_kernel, /* glibtop_proc_kernel */
|
||||
proc_segment, /* glibtop_proc_segment */
|
||||
proc_args, /* glibtop_proc_args */
|
||||
proc_map, /* glibtop_proc_map */
|
||||
mountlist, /* glibtop_mountlist */
|
||||
fsusage, /* glibtop_fsusage */
|
||||
netload, /* glibtop_netload */
|
||||
ppp; /* glibtop_ppp */
|
||||
};
|
||||
|
||||
#define glibtop_get_sysdeps(sysdeps) glibtop_get_sysdeps_r(glibtop_global_server,sysdeps)
|
||||
|
||||
extern void glibtop_get_sysdeps_r __P((glibtop *, glibtop_sysdeps *));
|
||||
void glibtop_get_sysdeps_r (glibtop *server, glibtop_sysdeps *buf);
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
|
||||
@@ -103,6 +107,6 @@ extern const char *glibtop_descriptions_sysdeps [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_SYSINFO_H__
|
||||
#define __GLIBTOP_SYSINFO_H__
|
||||
@@ -28,7 +32,7 @@
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_SYSINFO_CPUINFO 0
|
||||
|
||||
@@ -40,23 +44,23 @@ typedef struct _glibtop_entry glibtop_entry;
|
||||
|
||||
struct _glibtop_entry
|
||||
{
|
||||
GPtrArray *labels;
|
||||
GHashTable *values;
|
||||
GHashTable *descriptions;
|
||||
GPtrArray *labels;
|
||||
GHashTable *values;
|
||||
GHashTable *descriptions;
|
||||
};
|
||||
|
||||
struct _glibtop_sysinfo
|
||||
{
|
||||
u_int64_t flags, ncpu;
|
||||
glibtop_entry cpuinfo [GLIBTOP_NCPU];
|
||||
u_int64_t flags, ncpu;
|
||||
glibtop_entry cpuinfo [GLIBTOP_NCPU];
|
||||
};
|
||||
|
||||
#define glibtop_get_sysinfo() glibtop_get_sysinfo_s(glibtop_global_server)
|
||||
|
||||
#define glibtop_get_sysinfo_r glibtop_get_sysinfo_s
|
||||
|
||||
extern glibtop_sysinfo * glibtop_get_sysinfo_s __P((glibtop *));
|
||||
glibtop_sysinfo *glibtop_get_sysinfo_s (glibtop *server);
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,36 +1,41 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_TYPES_H__
|
||||
#define __GLIBTOP_TYPES_H__
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_TYPE_LONG 1
|
||||
#define GLIBTOP_TYPE_ULONG 2
|
||||
#define GLIBTOP_TYPE_DOUBLE 3
|
||||
#define GLIBTOP_TYPE_INT 4
|
||||
#define GLIBTOP_TYPE_CHAR 5
|
||||
#define GLIBTOP_TYPE_STRING 6
|
||||
#define GLIBTOP_TYPE_UNSIGNED 5
|
||||
#define GLIBTOP_TYPE_CHAR 6
|
||||
#define GLIBTOP_TYPE_STRING 7
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_UNION_H__
|
||||
#define __GLIBTOP_UNION_H__
|
||||
@@ -48,36 +52,36 @@
|
||||
#include <glibtop/netload.h>
|
||||
#include <glibtop/ppp.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
typedef union _glibtop_union glibtop_union;
|
||||
|
||||
union _glibtop_union
|
||||
{
|
||||
glibtop_cpu cpu;
|
||||
glibtop_mem mem;
|
||||
glibtop_swap swap;
|
||||
glibtop_uptime uptime;
|
||||
glibtop_loadavg loadavg;
|
||||
glibtop_shm_limits shm_limits;
|
||||
glibtop_msg_limits msg_limits;
|
||||
glibtop_sem_limits sem_limits;
|
||||
glibtop_proclist proclist;
|
||||
glibtop_proc_state proc_state;
|
||||
glibtop_proc_uid proc_uid;
|
||||
glibtop_proc_mem proc_mem;
|
||||
glibtop_proc_time proc_time;
|
||||
glibtop_proc_signal proc_signal;
|
||||
glibtop_proc_kernel proc_kernel;
|
||||
glibtop_proc_segment proc_segment;
|
||||
glibtop_proc_args proc_args;
|
||||
glibtop_proc_map proc_map;
|
||||
glibtop_mountlist mountlist;
|
||||
glibtop_fsusage fsusage;
|
||||
glibtop_netload netload;
|
||||
glibtop_ppp ppp;
|
||||
glibtop_cpu cpu;
|
||||
glibtop_mem mem;
|
||||
glibtop_swap swap;
|
||||
glibtop_uptime uptime;
|
||||
glibtop_loadavg loadavg;
|
||||
glibtop_shm_limits shm_limits;
|
||||
glibtop_msg_limits msg_limits;
|
||||
glibtop_sem_limits sem_limits;
|
||||
glibtop_proclist proclist;
|
||||
glibtop_proc_state proc_state;
|
||||
glibtop_proc_uid proc_uid;
|
||||
glibtop_proc_mem proc_mem;
|
||||
glibtop_proc_time proc_time;
|
||||
glibtop_proc_signal proc_signal;
|
||||
glibtop_proc_kernel proc_kernel;
|
||||
glibtop_proc_segment proc_segment;
|
||||
glibtop_proc_args proc_args;
|
||||
glibtop_proc_map proc_map;
|
||||
glibtop_mountlist mountlist;
|
||||
glibtop_fsusage fsusage;
|
||||
glibtop_netload netload;
|
||||
glibtop_ppp ppp;
|
||||
};
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_UPTIME_H__
|
||||
#define __GLIBTOP_UPTIME_H__
|
||||
@@ -25,20 +29,22 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/global.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define GLIBTOP_UPTIME_UPTIME 0
|
||||
#define GLIBTOP_UPTIME_IDLETIME 1
|
||||
#define GLIBTOP_UPTIME_BOOT_TIME 2
|
||||
|
||||
#define GLIBTOP_MAX_UPTIME 2
|
||||
#define GLIBTOP_MAX_UPTIME 3
|
||||
|
||||
typedef struct _glibtop_uptime glibtop_uptime;
|
||||
|
||||
struct _glibtop_uptime
|
||||
{
|
||||
u_int64_t flags;
|
||||
double uptime, /* GLIBTOP_UPTIME_UPTIME */
|
||||
idletime; /* GLIBTOP_UPTIME_IDLETIME */
|
||||
u_int64_t flags;
|
||||
double uptime, /* GLIBTOP_UPTIME_UPTIME */
|
||||
idletime; /* GLIBTOP_UPTIME_IDLETIME */
|
||||
u_int64_t boot_time; /* GLIBTOP_UPTIME_BOOT_TIME */
|
||||
};
|
||||
|
||||
#define glibtop_get_uptime(uptime) glibtop_get_uptime_l(glibtop_global_server, uptime)
|
||||
@@ -49,14 +55,14 @@ struct _glibtop_uptime
|
||||
#define glibtop_get_uptime_r glibtop_get_uptime_s
|
||||
#endif
|
||||
|
||||
extern void glibtop_get_uptime_l __P((glibtop *, glibtop_uptime *));
|
||||
void glibtop_get_uptime_l (glibtop *server, glibtop_uptime *buf);
|
||||
|
||||
#if GLIBTOP_SUID_UPTIME
|
||||
extern void glibtop_init_uptime_p __P((glibtop *));
|
||||
extern void glibtop_get_uptime_p __P((glibtop *, glibtop_uptime *));
|
||||
void glibtop_init_uptime_p (glibtop *server);
|
||||
void glibtop_get_uptime_p (glibtop *server, glibtop_uptime *buf);
|
||||
#else
|
||||
extern void glibtop_init_uptime_s __P((glibtop *));
|
||||
extern void glibtop_get_uptime_s __P((glibtop *, glibtop_uptime *));
|
||||
void glibtop_init_uptime_s (glibtop *server);
|
||||
void glibtop_get_uptime_s (glibtop *server, glibtop_uptime *buf);
|
||||
#endif
|
||||
|
||||
#ifdef GLIBTOP_NAMES
|
||||
@@ -70,6 +76,6 @@ extern const char *glibtop_descriptions_uptime [];
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,21 +1,25 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_VERSION_H__
|
||||
#define __GLIBTOP_VERSION_H__
|
||||
@@ -27,14 +31,14 @@
|
||||
|
||||
#define LIBGTOP_VERSION_STRING "Libgtop %s server version %s (%u,%u,%u,%u)."
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#if _IN_LIBGTOP
|
||||
|
||||
extern void glibtop_send_version __P((glibtop *, int));
|
||||
void glibtop_send_version (glibtop *server, int fd);
|
||||
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_WRITE_H__
|
||||
#define __GLIBTOP_WRITE_H__
|
||||
@@ -25,13 +29,13 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/error.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define glibtop_write(p1, p2) glibtop_write(glibtop_global_server, p1, p2)
|
||||
|
||||
extern void glibtop_write_l __P((glibtop *, size_t, void *));
|
||||
extern void glibtop_write_s __P((glibtop *, size_t, void *));
|
||||
void glibtop_write_l (glibtop *server, size_t size, void *buf);
|
||||
void glibtop_write_s (glibtop *server, size_t size, void *buf);
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,23 +1,27 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the Gnome Top Library.
|
||||
/* Copyright (C) 1998-99 Martin Baulig
|
||||
This file is part of LibGTop 1.0.
|
||||
|
||||
Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
|
||||
|
||||
The Gnome Top Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
LibGTop is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
The Gnome Top Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
LibGTop is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with LibGTop; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GLIBTOP_XMALLOC_H__
|
||||
#define __GLIBTOP_XMALLOC_H__
|
||||
@@ -25,7 +29,7 @@
|
||||
#include <glibtop.h>
|
||||
#include <glibtop/error.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
BEGIN_LIBGTOP_DECLS
|
||||
|
||||
#define glibtop_malloc(p1) glibtop_malloc_r(glibtop_global_server, p1)
|
||||
#define glibtop_calloc(p1, p2) glibtop_calloc_r(glibtop_global_server, p1, p2)
|
||||
@@ -33,12 +37,12 @@ __BEGIN_DECLS
|
||||
#define glibtop_strdup(p1) glibtop_strdup_r(glibtop_global_server, p1)
|
||||
#define glibtop_free(p1) glibtop_free_r(glibtop_global_server, p1)
|
||||
|
||||
extern void *glibtop_malloc_r __P((glibtop *, size_t));
|
||||
extern void *glibtop_calloc_r __P((glibtop *, size_t, size_t));
|
||||
extern void *glibtop_realloc_r __P((glibtop *, void *, size_t));
|
||||
extern char *glibtop_strdup_r __P((glibtop *, const char *));
|
||||
extern void glibtop_free_r __P((glibtop *, const void *));
|
||||
void *glibtop_malloc_r (glibtop *server, size_t size);
|
||||
void *glibtop_calloc_r (glibtop *server, size_t nmemb, size_t size);
|
||||
void *glibtop_realloc_r (glibtop *server, void *ptr, size_t size);
|
||||
char *glibtop_strdup_r (glibtop *server, const char *string);
|
||||
void glibtop_free_r (glibtop *server, const void *ptr);
|
||||
|
||||
__END_DECLS
|
||||
END_LIBGTOP_DECLS
|
||||
|
||||
#endif
|
||||
|
@@ -1,14 +0,0 @@
|
||||
1998-07-21 Martin Baulig <martin@home-of-linux.org>
|
||||
|
||||
* table20: New directory for 2.0.xx kernels.
|
||||
|
||||
* table21: New directory for 2.1.xx kernels.
|
||||
|
||||
* *: Moved into `table20' and `table21'.
|
||||
|
||||
1998-06-14 Martin Baulig <baulig@taurus.uni-trier.de>
|
||||
|
||||
* README: Added README.
|
||||
|
||||
* kernel.patch: Patch for the Linux kernel to add the
|
||||
new system call.
|
1
kernel/sysctl/.cvsignore
Normal file
1
kernel/sysctl/.cvsignore
Normal file
@@ -0,0 +1 @@
|
||||
*.flags
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Makefile for the linux system information tables.
|
||||
# Makefile for the LibGTop linux sysctl interface.
|
||||
#
|
||||
# Note! Dependencies are done automagically by 'make dep', which also
|
||||
# removes any old dependencies. DON'T put your own dependencies here
|
||||
@@ -7,7 +7,16 @@
|
||||
#
|
||||
# Note 2! The CFLAGS definition is now in the main makefile...
|
||||
|
||||
O_TARGET := table.o
|
||||
O_TARGET := kernel.o
|
||||
ifeq ($(CONFIG_LIBGTOP),y)
|
||||
O_OJBS := main.o libgtop.o
|
||||
else
|
||||
O_OBJS := main.o
|
||||
endif
|
||||
OX_OBJS := libgtop_syms.o
|
||||
|
||||
ifeq ($(CONFIG_LIBGTOP),m)
|
||||
M_OBJS := libgtop.o
|
||||
endif
|
||||
|
||||
include $(TOPDIR)/Rules.make
|
1268
kernel/sysctl/libgtop.c
Normal file
1268
kernel/sysctl/libgtop.c
Normal file
File diff suppressed because it is too large
Load Diff
242
kernel/sysctl/libgtop.h
Normal file
242
kernel/sysctl/libgtop.h
Normal file
@@ -0,0 +1,242 @@
|
||||
#ifndef _LINUX_LIBGTOP_H
|
||||
#define _LINUX_LIBGTOP_H 1
|
||||
|
||||
#include <linux/tasks.h>
|
||||
|
||||
enum {
|
||||
LIBGTOP_VERSION = 1,
|
||||
LIBGTOP_UPDATE_EXPENSIVE,
|
||||
LIBGTOP_STAT = 101,
|
||||
LIBGTOP_MEM,
|
||||
LIBGTOP_SWAP,
|
||||
LIBGTOP_PROCLIST = 201,
|
||||
LIBGTOP_PROC_STATE = 211,
|
||||
LIBGTOP_PROC_KERNEL,
|
||||
LIBGTOP_PROC_SEGMENT,
|
||||
LIBGTOP_PROC_MEM,
|
||||
LIBGTOP_PROC_SIGNAL,
|
||||
LIBGTOP_PROC_ARGS = 251,
|
||||
LIBGTOP_PROC_MAPS,
|
||||
LIBGTOP_NETLOAD = 301
|
||||
};
|
||||
|
||||
enum {
|
||||
LIBGTOP_PROCLIST_ALL = 0,
|
||||
LIBGTOP_PROCLIST_PID,
|
||||
LIBGTOP_PROCLIST_PGRP,
|
||||
LIBGTOP_PROCLIST_SESSION,
|
||||
LIBGTOP_PROCLIST_TTY,
|
||||
LIBGTOP_PROCLIST_UID,
|
||||
LIBGTOP_PROCLIST_RUID
|
||||
};
|
||||
|
||||
#define LIBGTOP_NSIG 4
|
||||
|
||||
#define LIBGTOP_PROCLIST_MASK 15
|
||||
#define LIBGTOP_MAX_GROUPS 32
|
||||
|
||||
#define LIBGTOP_EXCLUDE_IDLE 0x1000
|
||||
#define LIBGTOP_EXCLUDE_SYSTEM 0x2000
|
||||
#define LIBGTOP_EXCLUDE_NOTTY 0x4000
|
||||
|
||||
#define LIBGTOP_TASK_RUNNING 1
|
||||
#define LIBGTOP_TASK_INTERRUPTIBLE 2
|
||||
#define LIBGTOP_TASK_UNINTERRUPTIBLE 4
|
||||
#define LIBGTOP_TASK_ZOMBIE 8
|
||||
#define LIBGTOP_TASK_STOPPED 16
|
||||
#define LIBGTOP_TASK_SWAPPING 32
|
||||
|
||||
#define LIBGTOP_VM_READ 0x0001 /* currently active flags */
|
||||
#define LIBGTOP_VM_WRITE 0x0002
|
||||
#define LIBGTOP_VM_EXEC 0x0004
|
||||
#define LIBGTOP_VM_SHARED 0x0008
|
||||
|
||||
#define LIBGTOP_VM_MAYREAD 0x0010 /* limits for mprotect() etc */
|
||||
#define LIBGTOP_VM_MAYWRITE 0x0020
|
||||
#define LIBGTOP_VM_MAYEXEC 0x0040
|
||||
#define LIBGTOP_VM_MAYSHARE 0x0080
|
||||
|
||||
#define LIBGTOP_VM_GROWSDOWN 0x0100 /* general info on the segment */
|
||||
#define LIBGTOP_VM_GROWSUP 0x0200
|
||||
#define LIBGTOP_VM_SHM 0x0400 /* shared memory area, don't swap out */
|
||||
#define LIBGTOP_VM_DENYWRITE 0x0800 /* ETXTBSY on write attempts.. */
|
||||
|
||||
#define LIBGTOP_VM_EXECUTABLE 0x1000
|
||||
#define LIBGTOP_VM_LOCKED 0x2000
|
||||
#define LIBGTOP_VM_IO 0x4000 /* Memory mapped I/O or similar */
|
||||
|
||||
#define LIBGTOP_MAP_PATH_LEN (PAGE_SIZE - sizeof (libgtop_proc_maps_header_t))
|
||||
|
||||
#ifndef min
|
||||
#define min(a,b) ((a < b) ? a : b)
|
||||
#endif
|
||||
|
||||
typedef struct libgtop_stat libgtop_stat_t;
|
||||
|
||||
typedef struct libgtop_cpu libgtop_cpu_t;
|
||||
typedef struct libgtop_mem libgtop_mem_t;
|
||||
typedef struct libgtop_swap libgtop_swap_t;
|
||||
typedef struct libgtop_proclist libgtop_proclist_t;
|
||||
|
||||
typedef struct libgtop_proc_state libgtop_proc_state_t;
|
||||
typedef struct libgtop_proc_kernel libgtop_proc_kernel_t;
|
||||
typedef struct libgtop_proc_segment libgtop_proc_segment_t;
|
||||
typedef struct libgtop_proc_mem libgtop_proc_mem_t;
|
||||
typedef struct libgtop_proc_signal libgtop_proc_signal_t;
|
||||
|
||||
typedef struct libgtop_proc_maps_header libgtop_proc_maps_header_t;
|
||||
typedef struct libgtop_proc_maps libgtop_proc_maps_t;
|
||||
|
||||
typedef struct libgtop_netload libgtop_netload_t;
|
||||
|
||||
struct libgtop_cpu
|
||||
{
|
||||
unsigned long total; /* Total CPU Time */
|
||||
unsigned long user; /* CPU Time in User Mode */
|
||||
unsigned long nice; /* CPU Time in User Mode (nice) */
|
||||
unsigned long sys; /* CPU Time in System Mode */
|
||||
unsigned long idle; /* CPU Time in the Idle Task */
|
||||
};
|
||||
|
||||
struct libgtop_mem
|
||||
{
|
||||
unsigned long totalram; /* Total usable main memory size */
|
||||
unsigned long freeram; /* Available memory size */
|
||||
unsigned long sharedram; /* Amount of shared memory */
|
||||
unsigned long bufferram; /* Memory used by buffers */
|
||||
unsigned long cachedram;
|
||||
};
|
||||
|
||||
struct libgtop_swap
|
||||
{
|
||||
unsigned long totalswap; /* Total swap space size */
|
||||
unsigned long freeswap; /* swap space still available */
|
||||
};
|
||||
|
||||
struct libgtop_proclist
|
||||
{
|
||||
int count;
|
||||
int nr_running, nr_tasks, last_pid;
|
||||
unsigned pids [NR_TASKS];
|
||||
};
|
||||
|
||||
struct libgtop_stat
|
||||
{
|
||||
int ncpu; /* Number of CPUs */
|
||||
unsigned long frequency; /* Tick frequency (HZ) */
|
||||
libgtop_cpu_t cpu; /* CPU statistics */
|
||||
libgtop_cpu_t xcpu [NR_CPUS]; /* SMP per-CPU statistics */
|
||||
double loadavg [3]; /* Load average */
|
||||
unsigned long total_forks; /* Total # of forks */
|
||||
unsigned int context_swtch; /* Total # of context switches */
|
||||
unsigned long boot_time; /* Boot time (seconds s. epoch) */
|
||||
unsigned int pgpgin, pgpgout; /* # of pages paged in/out */
|
||||
unsigned int pswpin, pswpout; /* # of swap pgs brought in/out */
|
||||
};
|
||||
|
||||
struct libgtop_proc_state
|
||||
{
|
||||
long state;
|
||||
unsigned long flags;
|
||||
char comm [16];
|
||||
int uid, euid, suid, fsuid;
|
||||
int gid, egid, sgid, fsgid;
|
||||
int pid, pgrp, ppid;
|
||||
int session;
|
||||
unsigned int tty;
|
||||
int tpgid;
|
||||
long priority, counter, def_priority;
|
||||
long utime, stime, cutime, cstime, start_time;
|
||||
long per_cpu_utime [NR_CPUS], per_cpu_stime [NR_CPUS];
|
||||
int has_cpu, processor, last_processor;
|
||||
|
||||
unsigned long context;
|
||||
unsigned long start_code, end_code, start_data, end_data;
|
||||
unsigned long start_brk, brk, start_stack, start_mmap;
|
||||
unsigned long arg_start, arg_end, env_start, env_end;
|
||||
unsigned long rss, rlim, total_vm, locked_vm;
|
||||
|
||||
unsigned long policy, rt_priority;
|
||||
unsigned long it_real_value, it_prof_value, it_virt_value;
|
||||
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
|
||||
|
||||
unsigned long keip, kesp;
|
||||
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
|
||||
unsigned long nswap, cnswap;
|
||||
|
||||
int ngroups, groups [LIBGTOP_MAX_GROUPS];
|
||||
};
|
||||
|
||||
struct libgtop_proc_kernel
|
||||
{
|
||||
unsigned long wchan;
|
||||
};
|
||||
|
||||
struct libgtop_proc_segment
|
||||
{
|
||||
unsigned long vsize, data, exec, stack, lib;
|
||||
};
|
||||
|
||||
struct libgtop_proc_mem
|
||||
{
|
||||
libgtop_proc_segment_t segment;
|
||||
int size, resident, share, trs, lrs, drs, dt;
|
||||
unsigned long rss, rlim;
|
||||
};
|
||||
|
||||
struct libgtop_proc_signal
|
||||
{
|
||||
unsigned long signal [LIBGTOP_NSIG];
|
||||
unsigned long blocked [LIBGTOP_NSIG];
|
||||
unsigned long ignore [LIBGTOP_NSIG];
|
||||
unsigned long catch [LIBGTOP_NSIG];
|
||||
};
|
||||
|
||||
struct libgtop_proc_maps_header
|
||||
{
|
||||
unsigned long start, end, offset, perm;
|
||||
off_t filename_offset;
|
||||
ino_t inode;
|
||||
dev_t device;
|
||||
} __attribute__ ((aligned (64)));
|
||||
|
||||
struct libgtop_proc_maps
|
||||
{
|
||||
libgtop_proc_maps_header_t header;
|
||||
char filename [LIBGTOP_MAP_PATH_LEN];
|
||||
};
|
||||
|
||||
struct libgtop_netload
|
||||
{
|
||||
unsigned long rx_packets; /* total packets received */
|
||||
unsigned long tx_packets; /* total packets transmitted */
|
||||
unsigned long rx_bytes; /* total bytes received */
|
||||
unsigned long tx_bytes; /* total bytes transmitted */
|
||||
unsigned long rx_errors; /* bad packets received */
|
||||
unsigned long tx_errors; /* packet transmit problems */
|
||||
unsigned long rx_dropped; /* no space in linux buffers */
|
||||
unsigned long tx_dropped; /* no space available in linux */
|
||||
unsigned long multicast; /* multicast packets received */
|
||||
unsigned long collisions;
|
||||
|
||||
/* detailed rx_errors: */
|
||||
unsigned long rx_length_errors;
|
||||
unsigned long rx_over_errors; /* receiver ring buff overflow */
|
||||
unsigned long rx_crc_errors; /* recved pkt with crc error */
|
||||
unsigned long rx_frame_errors; /* recv'd frame alignment error */
|
||||
unsigned long rx_fifo_errors; /* recv'r fifo overrun */
|
||||
unsigned long rx_missed_errors; /* receiver missed packet */
|
||||
|
||||
/* detailed tx_errors */
|
||||
unsigned long tx_aborted_errors;
|
||||
unsigned long tx_carrier_errors;
|
||||
unsigned long tx_fifo_errors;
|
||||
unsigned long tx_heartbeat_errors;
|
||||
unsigned long tx_window_errors;
|
||||
|
||||
/* for cslip etc */
|
||||
unsigned long rx_compressed;
|
||||
unsigned long tx_compressed;
|
||||
};
|
||||
|
||||
#endif
|
30
kernel/sysctl/libgtop_syms.c
Normal file
30
kernel/sysctl/libgtop_syms.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* linux/libgtop/libgtop_syms.c
|
||||
* Copyright (C) 1999 Martin Baulig
|
||||
*/
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
#include <linux/sched.h>
|
||||
|
||||
#include <linux/mm.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/swap.h>
|
||||
|
||||
extern unsigned long total_forks;
|
||||
|
||||
EXPORT_SYMBOL(task);
|
||||
EXPORT_SYMBOL(init_mm);
|
||||
EXPORT_SYMBOL(pidhash);
|
||||
EXPORT_SYMBOL(avenrun);
|
||||
EXPORT_SYMBOL(nr_running);
|
||||
EXPORT_SYMBOL(nr_tasks);
|
||||
EXPORT_SYMBOL(last_pid);
|
||||
EXPORT_SYMBOL(total_forks);
|
||||
EXPORT_SYMBOL(si_swapinfo);
|
||||
|
||||
extern void scheduling_functions_start_here(void);
|
||||
extern void scheduling_functions_end_here(void);
|
||||
EXPORT_SYMBOL(scheduling_functions_start_here);
|
||||
EXPORT_SYMBOL(scheduling_functions_end_here);
|
4
kernel/sysctl/main.c
Normal file
4
kernel/sysctl/main.c
Normal file
@@ -0,0 +1,4 @@
|
||||
/*
|
||||
* linux/libgtop/main.c
|
||||
* Copyright (C) 1999 Martin Baulig
|
||||
*/
|
81
kernel/sysctl/patch-2.2.1
Normal file
81
kernel/sysctl/patch-2.2.1
Normal file
@@ -0,0 +1,81 @@
|
||||
diff -ru linux-2.2.1/Makefile hacker/Makefile
|
||||
--- linux-2.2.1/Makefile Sun Jan 31 22:45:42 1999
|
||||
+++ hacker/Makefile Sun Mar 21 16:10:41 1999
|
||||
@@ -109,6 +109,7 @@
|
||||
DRIVERS =drivers/block/block.a \
|
||||
drivers/char/char.a \
|
||||
drivers/misc/misc.a
|
||||
+EXTRAS =
|
||||
LIBS =$(TOPDIR)/lib/lib.a
|
||||
SUBDIRS =kernel drivers mm fs net ipc lib
|
||||
|
||||
@@ -186,6 +187,11 @@
|
||||
DRIVERS := $(DRIVERS) drivers/net/irda/irda_drivers.a
|
||||
endif
|
||||
|
||||
+ifdef CONFIG_LIBGTOP
|
||||
+SUBDIRS := $(SUBDIRS) libgtop
|
||||
+EXTRAS := $(EXTRAS) libgtop/kernel.o
|
||||
+endif
|
||||
+
|
||||
include arch/$(ARCH)/Makefile
|
||||
|
||||
.S.s:
|
||||
@@ -206,6 +212,7 @@
|
||||
$(FILESYSTEMS) \
|
||||
$(NETWORKS) \
|
||||
$(DRIVERS) \
|
||||
+ $(EXTRAS) \
|
||||
$(LIBS) \
|
||||
--end-group \
|
||||
-o vmlinux
|
||||
diff -ru linux-2.2.1/arch/i386/config.in hacker/arch/i386/config.in
|
||||
--- linux-2.2.1/arch/i386/config.in Sun Jan 31 22:25:25 1999
|
||||
+++ hacker/arch/i386/config.in Sat Mar 20 18:26:18 1999
|
||||
@@ -84,6 +84,9 @@
|
||||
bool 'System V IPC' CONFIG_SYSVIPC
|
||||
bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT
|
||||
bool 'Sysctl support' CONFIG_SYSCTL
|
||||
+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
|
||||
+ tristate 'LibGTop support' CONFIG_LIBGTOP
|
||||
+fi
|
||||
tristate 'Kernel support for a.out binaries' CONFIG_BINFMT_AOUT
|
||||
tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
|
||||
tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
|
||||
diff -ru linux-2.2.1/include/linux/sysctl.h hacker/include/linux/sysctl.h
|
||||
--- linux-2.2.1/include/linux/sysctl.h Sun Jan 31 22:24:14 1999
|
||||
+++ hacker/include/linux/sysctl.h Sat Mar 20 19:12:54 1999
|
||||
@@ -56,7 +56,8 @@
|
||||
CTL_PROC=4, /* Process info */
|
||||
CTL_FS=5, /* Filesystems */
|
||||
CTL_DEBUG=6, /* Debugging */
|
||||
- CTL_DEV=7 /* Devices */
|
||||
+ CTL_DEV=7, /* Devices */
|
||||
+ CTL_LIBGTOP=408 /* LibGTop */
|
||||
};
|
||||
|
||||
|
||||
diff -ru linux-2.2.1/kernel/sysctl.c hacker/kernel/sysctl.c
|
||||
--- linux-2.2.1/kernel/sysctl.c Sun Jan 31 22:24:43 1999
|
||||
+++ hacker/kernel/sysctl.c Sat Mar 20 19:24:34 1999
|
||||
@@ -82,7 +82,9 @@
|
||||
static ctl_table fs_table[];
|
||||
static ctl_table debug_table[];
|
||||
static ctl_table dev_table[];
|
||||
-
|
||||
+#ifdef CONFIG_LIBGTOP
|
||||
+extern ctl_table libgtop_table[];
|
||||
+#endif
|
||||
|
||||
/* /proc declarations: */
|
||||
|
||||
@@ -148,6 +150,9 @@
|
||||
{CTL_FS, "fs", NULL, 0, 0555, fs_table},
|
||||
{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
|
||||
{CTL_DEV, "dev", NULL, 0, 0555, dev_table},
|
||||
+#ifdef CONFIG_LIBGTOP
|
||||
+ {CTL_LIBGTOP, "libgtop", NULL, 0, 0555, libgtop_table},
|
||||
+#endif
|
||||
{0}
|
||||
};
|
||||
|
188
kernel/table.h
188
kernel/table.h
@@ -1,188 +0,0 @@
|
||||
#ifndef _LINUX_TABLE_H
|
||||
#define _LINUX_TABLE_H
|
||||
|
||||
#ifdef _KERNEL
|
||||
#include <linux/types.h>
|
||||
#else
|
||||
#define NR_TASKS 512
|
||||
#endif
|
||||
|
||||
#define TABLE_KERN_PROC_ALL 0 /* all processes */
|
||||
#define TABLE_KERN_PROC_PID 1
|
||||
#define TABLE_KERN_PROC_PGRP 2
|
||||
#define TABLE_KERN_PROC_SESSION 3
|
||||
#define TABLE_KERN_PROC_TTY 4
|
||||
#define TABLE_KERN_PROC_UID 5
|
||||
#define TABLE_KERN_PROC_RUID 6
|
||||
|
||||
#define TABLE_KERN_PROC_MASK 15
|
||||
|
||||
#define TABLE_EXCLUDE_IDLE 0x1000
|
||||
#define TABLE_EXCLUDE_SYSTEM 0x2000
|
||||
#define TABLE_EXCLUDE_NOTTY 0x4000
|
||||
|
||||
#define TABLE_VERSION 0
|
||||
#define TABLE_CPU 1
|
||||
#define TABLE_MEM 2
|
||||
#define TABLE_SWAP 3
|
||||
#define TABLE_LOADAVG 4
|
||||
#define TABLE_UPTIME 5
|
||||
#define TABLE_PROCLIST 6
|
||||
#define TABLE_PROC_UID 7
|
||||
#define TABLE_PROC_MEM 8
|
||||
#define TABLE_PROC_SEGMENT 9
|
||||
#define TABLE_PROC_TIME 10
|
||||
#define TABLE_PROC_STATE 11
|
||||
#define TABLE_PROC_SIGNAL 12
|
||||
#define TABLE_PROC_KERNEL 13
|
||||
|
||||
/* CPU Usage (in jiffies = 1/100th seconds) */
|
||||
|
||||
struct table_cpu
|
||||
{
|
||||
unsigned long total; /* Total CPU Time */
|
||||
unsigned long user; /* CPU Time in User Mode */
|
||||
unsigned long nice; /* CPU Time in User Mode (nice) */
|
||||
unsigned long sys; /* CPU Time in System Mode */
|
||||
unsigned long idle; /* CPU Time in the Idle Task */
|
||||
unsigned long frequency; /* Tick frequency */
|
||||
};
|
||||
|
||||
/* Memory Usage (in bytes) */
|
||||
|
||||
struct table_mem
|
||||
{
|
||||
unsigned long total; /* Total physical memory */
|
||||
unsigned long used; /* Used memory size */
|
||||
unsigned long free; /* Free memory size */
|
||||
unsigned long shared; /* Shared memory size */
|
||||
unsigned long buffer; /* Size of buffers */
|
||||
unsigned long cached; /* Size of cached memory */
|
||||
};
|
||||
|
||||
/* Swap Space (in bytes) */
|
||||
|
||||
struct table_swap
|
||||
{
|
||||
unsigned long total; /* Total swap space */
|
||||
unsigned long used; /* Used swap space */
|
||||
unsigned long free; /* Free swap space */
|
||||
unsigned long pagein; /* Total # of pages swapped in */
|
||||
unsigned long pageout; /* Total # of pages swapped out */
|
||||
};
|
||||
|
||||
/* Load average */
|
||||
|
||||
struct table_loadavg
|
||||
{
|
||||
double loadavg [3];
|
||||
unsigned nr_running;
|
||||
unsigned nr_tasks;
|
||||
unsigned last_pid;
|
||||
};
|
||||
|
||||
/* Uptime */
|
||||
|
||||
struct table_uptime
|
||||
{
|
||||
unsigned long uptime;
|
||||
unsigned long idle;
|
||||
};
|
||||
|
||||
/* Process list. */
|
||||
|
||||
struct proclist_args
|
||||
{
|
||||
int which, arg;
|
||||
};
|
||||
|
||||
struct table_proclist
|
||||
{
|
||||
int nr_running, nr_tasks, last_pid;
|
||||
unsigned pids [NR_TASKS];
|
||||
};
|
||||
|
||||
/* Information about processes. */
|
||||
|
||||
struct table_proc_state
|
||||
{
|
||||
long state;
|
||||
unsigned long flags;
|
||||
char comm[16];
|
||||
int uid, gid;
|
||||
};
|
||||
|
||||
struct table_proc_uid
|
||||
{
|
||||
int uid, euid, suid, fsuid;
|
||||
int gid, egid, sgid, fsgid;
|
||||
int pid, pgrp, ppid;
|
||||
int session;
|
||||
unsigned int tty;
|
||||
int tpgid;
|
||||
long priority;
|
||||
long counter;
|
||||
long def_priority;
|
||||
};
|
||||
|
||||
struct table_proc_mem
|
||||
{
|
||||
unsigned long context;
|
||||
unsigned long start_code, end_code, start_data, end_data;
|
||||
unsigned long start_brk, brk, start_stack, start_mmap;
|
||||
unsigned long arg_start, arg_end, env_start, env_end;
|
||||
unsigned long rss, rlim, total_vm, locked_vm;
|
||||
};
|
||||
|
||||
struct table_proc_segment
|
||||
{
|
||||
unsigned long vsize;
|
||||
unsigned long size, resident, shared;
|
||||
unsigned long trs, lrs, drs, srs, dt;
|
||||
};
|
||||
|
||||
struct table_proc_time
|
||||
{
|
||||
long utime, stime, cutime, cstime, start_time;
|
||||
unsigned long timeout, policy, rt_priority;
|
||||
unsigned long it_real_value, it_prof_value, it_virt_value;
|
||||
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
|
||||
};
|
||||
|
||||
struct table_proc_signal
|
||||
{
|
||||
unsigned long long signal,
|
||||
blocked, /* bitmap of masked signals */
|
||||
ignored, /* mask of ignored signals */
|
||||
caught; /* mask of caught signals */
|
||||
};
|
||||
|
||||
struct table_proc_kernel
|
||||
{
|
||||
unsigned long keip, kesp, wchan;
|
||||
unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
|
||||
unsigned long nswap, cnswap;
|
||||
};
|
||||
|
||||
/* Union */
|
||||
|
||||
union table
|
||||
{
|
||||
struct table_cpu cpu;
|
||||
struct table_mem mem;
|
||||
struct table_swap swap;
|
||||
struct table_loadavg loadavg;
|
||||
struct table_uptime uptime;
|
||||
struct table_proclist proclist;
|
||||
struct table_proc_uid proc_uid;
|
||||
struct table_proc_mem proc_mem;
|
||||
struct table_proc_segment proc_segment;
|
||||
struct table_proc_time proc_time;
|
||||
struct table_proc_state proc_state;
|
||||
struct table_proc_signal proc_signal;
|
||||
struct table_proc_kernel proc_kernel;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_IPC_H */
|
||||
|
||||
|
@@ -1,21 +0,0 @@
|
||||
This is a new system call `table ()' for the Linux table. It is faster
|
||||
than reading from /proc and can be used to fetch all information required
|
||||
for libgtop until whe have some other function (extended sysctl, ...) in
|
||||
standard kernels.
|
||||
|
||||
I didn't want to change sysctl or some other function myself cause this may
|
||||
cause other applications relying upon those function to fail. This is
|
||||
something for the ``real'' kernel gurus ...
|
||||
|
||||
To use this new system call for libgtop, do the following:
|
||||
|
||||
* Copy this directory to /usr/src/linux/table
|
||||
* Make /usr/src/linux/include/linux/table.h symlink to /usr/src/linux/table/table.h
|
||||
* Apply the patch `kernel.patch' to the kernel, compile, install and reboot
|
||||
* Recompile libgtop (remove `config.cache' and run the `autogen.sh' again).
|
||||
|
||||
If you want to change and/or add something - feel free to do so !
|
||||
|
||||
Have fun,
|
||||
|
||||
Martin
|
@@ -1,706 +0,0 @@
|
||||
/*
|
||||
* linux/arch/i386/entry.S
|
||||
*
|
||||
* Copyright (C) 1991, 1992 Linus Torvalds
|
||||
*/
|
||||
|
||||
/*
|
||||
* entry.S contains the system-call and fault low-level handling routines.
|
||||
* This also contains the timer-interrupt handler, as well as all interrupts
|
||||
* and faults that can result in a task-switch.
|
||||
*
|
||||
* NOTE: This code handles signal-recognition, which happens every time
|
||||
* after a timer-interrupt and after each system call.
|
||||
*
|
||||
* I changed all the .align's to 4 (16 byte alignment), as that's faster
|
||||
* on a 486.
|
||||
*
|
||||
* Stack layout in 'ret_from_system_call':
|
||||
* ptrace needs to have all regs on the stack.
|
||||
* if the order here is changed, it needs to be
|
||||
* updated in fork.c:copy_process, signal.c:do_signal,
|
||||
* ptrace.c and ptrace.h
|
||||
*
|
||||
* 0(%esp) - %ebx
|
||||
* 4(%esp) - %ecx
|
||||
* 8(%esp) - %edx
|
||||
* C(%esp) - %esi
|
||||
* 10(%esp) - %edi
|
||||
* 14(%esp) - %ebp
|
||||
* 18(%esp) - %eax
|
||||
* 1C(%esp) - %ds
|
||||
* 20(%esp) - %es
|
||||
* 24(%esp) - %fs
|
||||
* 28(%esp) - %gs
|
||||
* 2C(%esp) - orig_eax
|
||||
* 30(%esp) - %eip
|
||||
* 34(%esp) - %cs
|
||||
* 38(%esp) - %eflags
|
||||
* 3C(%esp) - %oldesp
|
||||
* 40(%esp) - %oldss
|
||||
*/
|
||||
|
||||
#include <linux/sys.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/segment.h>
|
||||
#define ASSEMBLY
|
||||
#include <asm/smp.h>
|
||||
|
||||
EBX = 0x00
|
||||
ECX = 0x04
|
||||
EDX = 0x08
|
||||
ESI = 0x0C
|
||||
EDI = 0x10
|
||||
EBP = 0x14
|
||||
EAX = 0x18
|
||||
DS = 0x1C
|
||||
ES = 0x20
|
||||
FS = 0x24
|
||||
GS = 0x28
|
||||
ORIG_EAX = 0x2C
|
||||
EIP = 0x30
|
||||
CS = 0x34
|
||||
EFLAGS = 0x38
|
||||
OLDESP = 0x3C
|
||||
OLDSS = 0x40
|
||||
|
||||
CF_MASK = 0x00000001
|
||||
IF_MASK = 0x00000200
|
||||
NT_MASK = 0x00004000
|
||||
VM_MASK = 0x00020000
|
||||
|
||||
/*
|
||||
* these are offsets into the task-struct.
|
||||
*/
|
||||
state = 0
|
||||
counter = 4
|
||||
priority = 8
|
||||
signal = 12
|
||||
blocked = 16
|
||||
flags = 20
|
||||
dbgreg6 = 52
|
||||
dbgreg7 = 56
|
||||
exec_domain = 60
|
||||
|
||||
ENOSYS = 38
|
||||
|
||||
#define SAVE_ALL \
|
||||
cld; \
|
||||
push %gs; \
|
||||
push %fs; \
|
||||
push %es; \
|
||||
push %ds; \
|
||||
pushl %eax; \
|
||||
pushl %ebp; \
|
||||
pushl %edi; \
|
||||
pushl %esi; \
|
||||
pushl %edx; \
|
||||
pushl %ecx; \
|
||||
pushl %ebx; \
|
||||
movl $(KERNEL_DS),%edx; \
|
||||
mov %dx,%ds; \
|
||||
mov %dx,%es; \
|
||||
movl $(USER_DS),%edx; \
|
||||
mov %dx,%fs;
|
||||
|
||||
#ifdef __SMP__
|
||||
|
||||
#define GET_PROCESSOR_ID \
|
||||
movl SYMBOL_NAME(apic_reg), %edx; \
|
||||
movl 32(%edx), %eax;\
|
||||
movl %eax,SYMBOL_NAME(apic_retval); \
|
||||
shrl $24,%eax; \
|
||||
andb $0x0F,%al;
|
||||
|
||||
/*
|
||||
* Get the processor ID multiplied by 4
|
||||
*/
|
||||
|
||||
#define GET_PROCESSOR_OFFSET(x) \
|
||||
movl SYMBOL_NAME(apic_reg), x ; \
|
||||
movl 32( x ), x ; \
|
||||
shrl $22, x ; \
|
||||
andl $0x3C, x ;
|
||||
|
||||
/* macro LEAVE_KERNEL decrements kernel_counter and resets kernel_flag and
|
||||
saves processor variables if zero */
|
||||
#define LEAVE_KERNEL \
|
||||
pushfl; \
|
||||
cli; \
|
||||
GET_PROCESSOR_ID \
|
||||
btrl $ SMP_FROM_SYSCALL,SYMBOL_NAME(smp_proc_in_lock)(,%eax,4); \
|
||||
decl SYMBOL_NAME(syscall_count); \
|
||||
decl SYMBOL_NAME(kernel_counter); \
|
||||
jnz 1f; \
|
||||
movb SYMBOL_NAME(saved_active_kernel_processor), %al; \
|
||||
movb %al, SYMBOL_NAME(active_kernel_processor); \
|
||||
cmpb $(NO_PROC_ID), %al; \
|
||||
jnz 1f; \
|
||||
lock; \
|
||||
btrl $0, SYMBOL_NAME(kernel_flag); \
|
||||
1: popfl;
|
||||
|
||||
/* macro ENTER_KERNEL waits for entering the kernel, increments
|
||||
kernel_counter, and reloads the processor variables if necessary
|
||||
uses : %eax, %edx (pushed and popped)
|
||||
|
||||
Note: We go to great pains to minimise the number of locked operations.
|
||||
We want to spin without locking, and lock when we attempt an update.
|
||||
The pentium has a MESI cache so the spin without lock will exit when
|
||||
another CPU write invalidates our cache, and the lock is avoided when
|
||||
possible so we don't play ping-pong games with the cache line.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __SMP_PROF__
|
||||
|
||||
#define SMP_PROF_A
|
||||
#define SMP_PROF_B
|
||||
|
||||
#else
|
||||
|
||||
#define SMP_PROF_A movl $0,SYMBOL_NAME(smp_spins_syscall_cur)(,%eax,4);
|
||||
#define SMP_PROF_B incl SYMBOL_NAME(smp_spins_syscall)(,%eax,4); \
|
||||
incl SYMBOL_NAME(smp_spins_syscall_cur)(,%eax,4);
|
||||
#endif
|
||||
|
||||
#define ENTER_KERNEL \
|
||||
pushl %eax; \
|
||||
pushl %ebx; \
|
||||
pushl %ecx; \
|
||||
pushl %edx; \
|
||||
pushfl; \
|
||||
cli; \
|
||||
movl $6000, %ebx; \
|
||||
movl SYMBOL_NAME(smp_loops_per_tick), %ecx; \
|
||||
GET_PROCESSOR_ID \
|
||||
btsl $ SMP_FROM_SYSCALL,SYMBOL_NAME(smp_proc_in_lock)(,%eax,4); \
|
||||
SMP_PROF_A \
|
||||
1: lock; \
|
||||
btsl $0, SYMBOL_NAME(kernel_flag); \
|
||||
jnc 3f; \
|
||||
cmpb SYMBOL_NAME(active_kernel_processor), %al; \
|
||||
je 4f; \
|
||||
2: SMP_PROF_B \
|
||||
btl %eax, SYMBOL_NAME(smp_invalidate_needed); \
|
||||
jnc 5f; \
|
||||
lock; \
|
||||
btrl %eax, SYMBOL_NAME(smp_invalidate_needed); \
|
||||
jnc 5f; \
|
||||
movl %cr3,%edx; \
|
||||
movl %edx,%cr3; \
|
||||
5: sti; \
|
||||
decl %ecx; \
|
||||
cli; \
|
||||
jne 7f; \
|
||||
decl %ebx; \
|
||||
jne 6f; \
|
||||
call SYMBOL_NAME(non_irq_deadlock_detected); \
|
||||
6: movl SYMBOL_NAME(smp_loops_per_tick), %ecx; \
|
||||
cmpb SYMBOL_NAME(boot_cpu_id), %al; \
|
||||
jne 7f; \
|
||||
incl SYMBOL_NAME(jiffies); \
|
||||
7: btl $0, SYMBOL_NAME(kernel_flag); \
|
||||
jc 2b; \
|
||||
jmp 1b; \
|
||||
3: movb %al, SYMBOL_NAME(active_kernel_processor); \
|
||||
4: incl SYMBOL_NAME(kernel_counter); \
|
||||
incl SYMBOL_NAME(syscall_count); \
|
||||
popfl; \
|
||||
popl %edx; \
|
||||
popl %ecx; \
|
||||
popl %ebx; \
|
||||
popl %eax;
|
||||
|
||||
|
||||
#define RESTORE_ALL \
|
||||
cmpw $(KERNEL_CS),CS(%esp); \
|
||||
je 1f; \
|
||||
GET_PROCESSOR_OFFSET(%edx) \
|
||||
movl SYMBOL_NAME(current_set)(,%edx), %eax ; ; \
|
||||
movl dbgreg7(%eax),%ebx; \
|
||||
movl %ebx,%db7; \
|
||||
1: LEAVE_KERNEL \
|
||||
popl %ebx; \
|
||||
popl %ecx; \
|
||||
popl %edx; \
|
||||
popl %esi; \
|
||||
popl %edi; \
|
||||
popl %ebp; \
|
||||
popl %eax; \
|
||||
pop %ds; \
|
||||
pop %es; \
|
||||
pop %fs; \
|
||||
pop %gs; \
|
||||
addl $4,%esp; \
|
||||
iret
|
||||
|
||||
#else
|
||||
|
||||
#define RESTORE_ALL \
|
||||
cmpw $(KERNEL_CS),CS(%esp); \
|
||||
je 1f; \
|
||||
movl SYMBOL_NAME(current_set),%eax; \
|
||||
movl dbgreg7(%eax),%ebx; \
|
||||
movl %ebx,%db7; \
|
||||
1: \
|
||||
popl %ebx; \
|
||||
popl %ecx; \
|
||||
popl %edx; \
|
||||
popl %esi; \
|
||||
popl %edi; \
|
||||
popl %ebp; \
|
||||
popl %eax; \
|
||||
pop %ds; \
|
||||
pop %es; \
|
||||
pop %fs; \
|
||||
pop %gs; \
|
||||
addl $4,%esp; \
|
||||
iret
|
||||
#endif
|
||||
|
||||
ENTRY(lcall7)
|
||||
pushfl # We get a different stack layout with call gates,
|
||||
pushl %eax # which has to be cleaned up later..
|
||||
SAVE_ALL
|
||||
#ifdef __SMP__
|
||||
ENTER_KERNEL
|
||||
#endif
|
||||
movl EIP(%esp),%eax # due to call gates, this is eflags, not eip..
|
||||
movl CS(%esp),%edx # this is eip..
|
||||
movl EFLAGS(%esp),%ecx # and this is cs..
|
||||
movl %eax,EFLAGS(%esp) #
|
||||
movl %edx,EIP(%esp) # Now we move them to their "normal" places
|
||||
movl %ecx,CS(%esp) #
|
||||
movl %esp,%eax
|
||||
#ifdef __SMP__
|
||||
GET_PROCESSOR_OFFSET(%edx) # Processor offset into edx
|
||||
movl SYMBOL_NAME(current_set)(,%edx),%edx
|
||||
#else
|
||||
movl SYMBOL_NAME(current_set),%edx
|
||||
#endif
|
||||
pushl %eax
|
||||
movl exec_domain(%edx),%edx # Get the execution domain
|
||||
movl 4(%edx),%edx # Get the lcall7 handler for the domain
|
||||
call *%edx
|
||||
popl %eax
|
||||
jmp ret_from_sys_call
|
||||
|
||||
ALIGN
|
||||
handle_bottom_half:
|
||||
incl SYMBOL_NAME(intr_count)
|
||||
call SYMBOL_NAME(do_bottom_half)
|
||||
decl SYMBOL_NAME(intr_count)
|
||||
jmp 9f
|
||||
ALIGN
|
||||
reschedule:
|
||||
pushl $ret_from_sys_call
|
||||
jmp SYMBOL_NAME(schedule) # test
|
||||
|
||||
ENTRY(system_call)
|
||||
pushl %eax # save orig_eax
|
||||
SAVE_ALL
|
||||
#ifdef __SMP__
|
||||
ENTER_KERNEL
|
||||
#endif
|
||||
movl $-ENOSYS,EAX(%esp)
|
||||
cmpl $(NR_syscalls),%eax
|
||||
jae ret_from_sys_call
|
||||
movl SYMBOL_NAME(sys_call_table)(,%eax,4),%eax
|
||||
testl %eax,%eax
|
||||
je ret_from_sys_call
|
||||
#ifdef __SMP__
|
||||
GET_PROCESSOR_OFFSET(%edx)
|
||||
movl SYMBOL_NAME(current_set)(,%edx),%ebx
|
||||
#else
|
||||
movl SYMBOL_NAME(current_set),%ebx
|
||||
#endif
|
||||
andl $~CF_MASK,EFLAGS(%esp) # clear carry - assume no errors
|
||||
movl %db6,%edx
|
||||
movl %edx,dbgreg6(%ebx) # save current hardware debugging status
|
||||
testb $0x20,flags(%ebx) # PF_TRACESYS
|
||||
jne 1f
|
||||
call *%eax
|
||||
movl %eax,EAX(%esp) # save the return value
|
||||
jmp ret_from_sys_call
|
||||
ALIGN
|
||||
1: call SYMBOL_NAME(syscall_trace)
|
||||
movl ORIG_EAX(%esp),%eax
|
||||
call SYMBOL_NAME(sys_call_table)(,%eax,4)
|
||||
movl %eax,EAX(%esp) # save the return value
|
||||
#ifdef __SMP__
|
||||
GET_PROCESSOR_OFFSET(%eax)
|
||||
movl SYMBOL_NAME(current_set)(,%eax),%eax
|
||||
#else
|
||||
movl SYMBOL_NAME(current_set),%eax
|
||||
#endif
|
||||
call SYMBOL_NAME(syscall_trace)
|
||||
|
||||
ALIGN
|
||||
.globl ret_from_sys_call
|
||||
ret_from_sys_call:
|
||||
cmpl $0,SYMBOL_NAME(intr_count)
|
||||
jne 2f
|
||||
9: movl SYMBOL_NAME(bh_mask),%eax
|
||||
andl SYMBOL_NAME(bh_active),%eax
|
||||
jne handle_bottom_half
|
||||
#ifdef __SMP__
|
||||
cmpb $(NO_PROC_ID), SYMBOL_NAME(saved_active_kernel_processor)
|
||||
jne 2f
|
||||
#endif
|
||||
movl EFLAGS(%esp),%eax # check VM86 flag: CS/SS are
|
||||
testl $(VM_MASK),%eax # different then
|
||||
jne 1f
|
||||
cmpw $(KERNEL_CS),CS(%esp) # was old code segment supervisor ?
|
||||
je 2f
|
||||
1: sti
|
||||
orl $(IF_MASK),%eax # these just try to make sure
|
||||
andl $~NT_MASK,%eax # the program doesn't do anything
|
||||
movl %eax,EFLAGS(%esp) # stupid
|
||||
cmpl $0,SYMBOL_NAME(need_resched)
|
||||
jne reschedule
|
||||
#ifdef __SMP__
|
||||
GET_PROCESSOR_OFFSET(%eax)
|
||||
movl SYMBOL_NAME(current_set)(,%eax), %eax
|
||||
#else
|
||||
movl SYMBOL_NAME(current_set),%eax
|
||||
#endif
|
||||
cmpl SYMBOL_NAME(task),%eax # task[0] cannot have signals
|
||||
je 2f
|
||||
movl blocked(%eax),%ecx
|
||||
movl %ecx,%ebx # save blocked in %ebx for signal handling
|
||||
notl %ecx
|
||||
andl signal(%eax),%ecx
|
||||
jne signal_return
|
||||
2: RESTORE_ALL
|
||||
ALIGN
|
||||
signal_return:
|
||||
movl %esp,%ecx
|
||||
pushl %ecx
|
||||
testl $(VM_MASK),EFLAGS(%ecx)
|
||||
jne v86_signal_return
|
||||
pushl %ebx
|
||||
call SYMBOL_NAME(do_signal)
|
||||
popl %ebx
|
||||
popl %ebx
|
||||
RESTORE_ALL
|
||||
ALIGN
|
||||
v86_signal_return:
|
||||
call SYMBOL_NAME(save_v86_state)
|
||||
movl %eax,%esp
|
||||
pushl %eax
|
||||
pushl %ebx
|
||||
call SYMBOL_NAME(do_signal)
|
||||
popl %ebx
|
||||
popl %ebx
|
||||
RESTORE_ALL
|
||||
|
||||
ENTRY(divide_error)
|
||||
pushl $0 # no error code
|
||||
pushl $ SYMBOL_NAME(do_divide_error)
|
||||
ALIGN
|
||||
error_code:
|
||||
push %fs
|
||||
push %es
|
||||
push %ds
|
||||
pushl %eax
|
||||
xorl %eax,%eax
|
||||
pushl %ebp
|
||||
pushl %edi
|
||||
pushl %esi
|
||||
pushl %edx
|
||||
decl %eax # eax = -1
|
||||
pushl %ecx
|
||||
pushl %ebx
|
||||
cld
|
||||
xorl %ebx,%ebx # zero ebx
|
||||
xchgl %eax, ORIG_EAX(%esp) # orig_eax (get the error code. )
|
||||
mov %gs,%bx # get the lower order bits of gs
|
||||
movl %esp,%edx
|
||||
xchgl %ebx, GS(%esp) # get the address and save gs.
|
||||
pushl %eax # push the error code
|
||||
pushl %edx
|
||||
movl $(KERNEL_DS),%edx
|
||||
mov %dx,%ds
|
||||
mov %dx,%es
|
||||
movl $(USER_DS),%edx
|
||||
mov %dx,%fs
|
||||
#ifdef __SMP__
|
||||
ENTER_KERNEL
|
||||
GET_PROCESSOR_OFFSET(%eax)
|
||||
movl SYMBOL_NAME(current_set)(,%eax), %eax
|
||||
#else
|
||||
movl SYMBOL_NAME(current_set),%eax
|
||||
#endif
|
||||
movl %db6,%edx
|
||||
movl %edx,dbgreg6(%eax) # save current hardware debugging status
|
||||
call *%ebx
|
||||
addl $8,%esp
|
||||
jmp ret_from_sys_call
|
||||
|
||||
ENTRY(coprocessor_error)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_coprocessor_error)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(device_not_available)
|
||||
pushl $-1 # mark this as an int
|
||||
SAVE_ALL
|
||||
#ifdef __SMP__
|
||||
ENTER_KERNEL
|
||||
#endif
|
||||
pushl $ret_from_sys_call
|
||||
movl %cr0,%eax
|
||||
testl $0x4,%eax # EM (math emulation bit)
|
||||
je SYMBOL_NAME(math_state_restore)
|
||||
pushl $0 # temporary storage for ORIG_EIP
|
||||
call SYMBOL_NAME(math_emulate)
|
||||
addl $4,%esp
|
||||
ret
|
||||
|
||||
ENTRY(debug)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_debug)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(nmi)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_nmi)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(int3)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_int3)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(overflow)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_overflow)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(bounds)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_bounds)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(invalid_op)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_invalid_op)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(coprocessor_segment_overrun)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_coprocessor_segment_overrun)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(reserved)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_reserved)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(double_fault)
|
||||
pushl $ SYMBOL_NAME(do_double_fault)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(invalid_TSS)
|
||||
pushl $ SYMBOL_NAME(do_invalid_TSS)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(segment_not_present)
|
||||
pushl $ SYMBOL_NAME(do_segment_not_present)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(stack_segment)
|
||||
pushl $ SYMBOL_NAME(do_stack_segment)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(general_protection)
|
||||
pushl $ SYMBOL_NAME(do_general_protection)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(alignment_check)
|
||||
pushl $ SYMBOL_NAME(do_alignment_check)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(page_fault)
|
||||
pushl $ SYMBOL_NAME(do_page_fault)
|
||||
jmp error_code
|
||||
|
||||
ENTRY(spurious_interrupt_bug)
|
||||
pushl $0
|
||||
pushl $ SYMBOL_NAME(do_spurious_interrupt_bug)
|
||||
jmp error_code
|
||||
|
||||
.data
|
||||
ENTRY(sys_call_table)
|
||||
.long SYMBOL_NAME(sys_setup) /* 0 */
|
||||
.long SYMBOL_NAME(sys_exit)
|
||||
.long SYMBOL_NAME(sys_fork)
|
||||
.long SYMBOL_NAME(sys_read)
|
||||
.long SYMBOL_NAME(sys_write)
|
||||
.long SYMBOL_NAME(sys_open) /* 5 */
|
||||
.long SYMBOL_NAME(sys_close)
|
||||
.long SYMBOL_NAME(sys_waitpid)
|
||||
.long SYMBOL_NAME(sys_creat)
|
||||
.long SYMBOL_NAME(sys_link)
|
||||
.long SYMBOL_NAME(sys_unlink) /* 10 */
|
||||
.long SYMBOL_NAME(sys_execve)
|
||||
.long SYMBOL_NAME(sys_chdir)
|
||||
.long SYMBOL_NAME(sys_time)
|
||||
.long SYMBOL_NAME(sys_mknod)
|
||||
.long SYMBOL_NAME(sys_chmod) /* 15 */
|
||||
.long SYMBOL_NAME(sys_chown)
|
||||
.long SYMBOL_NAME(sys_break)
|
||||
.long SYMBOL_NAME(sys_stat)
|
||||
.long SYMBOL_NAME(sys_lseek)
|
||||
.long SYMBOL_NAME(sys_getpid) /* 20 */
|
||||
.long SYMBOL_NAME(sys_mount)
|
||||
.long SYMBOL_NAME(sys_umount)
|
||||
.long SYMBOL_NAME(sys_setuid)
|
||||
.long SYMBOL_NAME(sys_getuid)
|
||||
.long SYMBOL_NAME(sys_stime) /* 25 */
|
||||
.long SYMBOL_NAME(sys_ptrace)
|
||||
.long SYMBOL_NAME(sys_alarm)
|
||||
.long SYMBOL_NAME(sys_fstat)
|
||||
.long SYMBOL_NAME(sys_pause)
|
||||
.long SYMBOL_NAME(sys_utime) /* 30 */
|
||||
.long SYMBOL_NAME(sys_stty)
|
||||
.long SYMBOL_NAME(sys_gtty)
|
||||
.long SYMBOL_NAME(sys_access)
|
||||
.long SYMBOL_NAME(sys_nice)
|
||||
.long SYMBOL_NAME(sys_ftime) /* 35 */
|
||||
.long SYMBOL_NAME(sys_sync)
|
||||
.long SYMBOL_NAME(sys_kill)
|
||||
.long SYMBOL_NAME(sys_rename)
|
||||
.long SYMBOL_NAME(sys_mkdir)
|
||||
.long SYMBOL_NAME(sys_rmdir) /* 40 */
|
||||
.long SYMBOL_NAME(sys_dup)
|
||||
.long SYMBOL_NAME(sys_pipe)
|
||||
.long SYMBOL_NAME(sys_times)
|
||||
.long SYMBOL_NAME(sys_prof)
|
||||
.long SYMBOL_NAME(sys_brk) /* 45 */
|
||||
.long SYMBOL_NAME(sys_setgid)
|
||||
.long SYMBOL_NAME(sys_getgid)
|
||||
.long SYMBOL_NAME(sys_signal)
|
||||
.long SYMBOL_NAME(sys_geteuid)
|
||||
.long SYMBOL_NAME(sys_getegid) /* 50 */
|
||||
.long SYMBOL_NAME(sys_acct)
|
||||
.long SYMBOL_NAME(sys_phys)
|
||||
.long SYMBOL_NAME(sys_lock)
|
||||
.long SYMBOL_NAME(sys_ioctl)
|
||||
.long SYMBOL_NAME(sys_fcntl) /* 55 */
|
||||
.long SYMBOL_NAME(sys_mpx)
|
||||
.long SYMBOL_NAME(sys_setpgid)
|
||||
.long SYMBOL_NAME(sys_ulimit)
|
||||
.long SYMBOL_NAME(sys_olduname)
|
||||
.long SYMBOL_NAME(sys_umask) /* 60 */
|
||||
.long SYMBOL_NAME(sys_chroot)
|
||||
.long SYMBOL_NAME(sys_ustat)
|
||||
.long SYMBOL_NAME(sys_dup2)
|
||||
.long SYMBOL_NAME(sys_getppid)
|
||||
.long SYMBOL_NAME(sys_getpgrp) /* 65 */
|
||||
.long SYMBOL_NAME(sys_setsid)
|
||||
.long SYMBOL_NAME(sys_sigaction)
|
||||
.long SYMBOL_NAME(sys_sgetmask)
|
||||
.long SYMBOL_NAME(sys_ssetmask)
|
||||
.long SYMBOL_NAME(sys_setreuid) /* 70 */
|
||||
.long SYMBOL_NAME(sys_setregid)
|
||||
.long SYMBOL_NAME(sys_sigsuspend)
|
||||
.long SYMBOL_NAME(sys_sigpending)
|
||||
.long SYMBOL_NAME(sys_sethostname)
|
||||
.long SYMBOL_NAME(sys_setrlimit) /* 75 */
|
||||
.long SYMBOL_NAME(sys_getrlimit)
|
||||
.long SYMBOL_NAME(sys_getrusage)
|
||||
.long SYMBOL_NAME(sys_gettimeofday)
|
||||
.long SYMBOL_NAME(sys_settimeofday)
|
||||
.long SYMBOL_NAME(sys_getgroups) /* 80 */
|
||||
.long SYMBOL_NAME(sys_setgroups)
|
||||
.long SYMBOL_NAME(old_select)
|
||||
.long SYMBOL_NAME(sys_symlink)
|
||||
.long SYMBOL_NAME(sys_lstat)
|
||||
.long SYMBOL_NAME(sys_readlink) /* 85 */
|
||||
.long SYMBOL_NAME(sys_uselib)
|
||||
.long SYMBOL_NAME(sys_swapon)
|
||||
.long SYMBOL_NAME(sys_reboot)
|
||||
.long SYMBOL_NAME(old_readdir)
|
||||
.long SYMBOL_NAME(old_mmap) /* 90 */
|
||||
.long SYMBOL_NAME(sys_munmap)
|
||||
.long SYMBOL_NAME(sys_truncate)
|
||||
.long SYMBOL_NAME(sys_ftruncate)
|
||||
.long SYMBOL_NAME(sys_fchmod)
|
||||
.long SYMBOL_NAME(sys_fchown) /* 95 */
|
||||
.long SYMBOL_NAME(sys_getpriority)
|
||||
.long SYMBOL_NAME(sys_setpriority)
|
||||
.long SYMBOL_NAME(sys_profil)
|
||||
.long SYMBOL_NAME(sys_statfs)
|
||||
.long SYMBOL_NAME(sys_fstatfs) /* 100 */
|
||||
.long SYMBOL_NAME(sys_ioperm)
|
||||
.long SYMBOL_NAME(sys_socketcall)
|
||||
.long SYMBOL_NAME(sys_syslog)
|
||||
.long SYMBOL_NAME(sys_setitimer)
|
||||
.long SYMBOL_NAME(sys_getitimer) /* 105 */
|
||||
.long SYMBOL_NAME(sys_newstat)
|
||||
.long SYMBOL_NAME(sys_newlstat)
|
||||
.long SYMBOL_NAME(sys_newfstat)
|
||||
.long SYMBOL_NAME(sys_uname)
|
||||
.long SYMBOL_NAME(sys_iopl) /* 110 */
|
||||
.long SYMBOL_NAME(sys_vhangup)
|
||||
.long SYMBOL_NAME(sys_idle)
|
||||
.long SYMBOL_NAME(sys_vm86old)
|
||||
.long SYMBOL_NAME(sys_wait4)
|
||||
.long SYMBOL_NAME(sys_swapoff) /* 115 */
|
||||
.long SYMBOL_NAME(sys_sysinfo)
|
||||
.long SYMBOL_NAME(sys_ipc)
|
||||
.long SYMBOL_NAME(sys_fsync)
|
||||
.long SYMBOL_NAME(sys_sigreturn)
|
||||
.long SYMBOL_NAME(sys_clone) /* 120 */
|
||||
.long SYMBOL_NAME(sys_setdomainname)
|
||||
.long SYMBOL_NAME(sys_newuname)
|
||||
.long SYMBOL_NAME(sys_modify_ldt)
|
||||
.long SYMBOL_NAME(sys_adjtimex)
|
||||
.long SYMBOL_NAME(sys_mprotect) /* 125 */
|
||||
.long SYMBOL_NAME(sys_sigprocmask)
|
||||
.long SYMBOL_NAME(sys_create_module)
|
||||
.long SYMBOL_NAME(sys_init_module)
|
||||
.long SYMBOL_NAME(sys_delete_module)
|
||||
.long SYMBOL_NAME(sys_get_kernel_syms) /* 130 */
|
||||
.long SYMBOL_NAME(sys_quotactl)
|
||||
.long SYMBOL_NAME(sys_getpgid)
|
||||
.long SYMBOL_NAME(sys_fchdir)
|
||||
.long SYMBOL_NAME(sys_bdflush)
|
||||
.long SYMBOL_NAME(sys_sysfs) /* 135 */
|
||||
.long SYMBOL_NAME(sys_personality)
|
||||
.long 0 /* for afs_syscall */
|
||||
.long SYMBOL_NAME(sys_setfsuid)
|
||||
.long SYMBOL_NAME(sys_setfsgid)
|
||||
.long SYMBOL_NAME(sys_llseek) /* 140 */
|
||||
.long SYMBOL_NAME(sys_getdents)
|
||||
.long SYMBOL_NAME(sys_select)
|
||||
.long SYMBOL_NAME(sys_flock)
|
||||
.long SYMBOL_NAME(sys_msync)
|
||||
.long SYMBOL_NAME(sys_readv) /* 145 */
|
||||
.long SYMBOL_NAME(sys_writev)
|
||||
.long SYMBOL_NAME(sys_getsid)
|
||||
.long SYMBOL_NAME(sys_fdatasync)
|
||||
.long SYMBOL_NAME(sys_sysctl)
|
||||
.long SYMBOL_NAME(sys_mlock) /* 150 */
|
||||
.long SYMBOL_NAME(sys_munlock)
|
||||
.long SYMBOL_NAME(sys_mlockall)
|
||||
.long SYMBOL_NAME(sys_munlockall)
|
||||
.long SYMBOL_NAME(sys_sched_setparam)
|
||||
.long SYMBOL_NAME(sys_sched_getparam) /* 155 */
|
||||
.long SYMBOL_NAME(sys_sched_setscheduler)
|
||||
.long SYMBOL_NAME(sys_sched_getscheduler)
|
||||
.long SYMBOL_NAME(sys_sched_yield)
|
||||
.long SYMBOL_NAME(sys_sched_get_priority_max)
|
||||
.long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */
|
||||
.long SYMBOL_NAME(sys_sched_rr_get_interval)
|
||||
.long SYMBOL_NAME(sys_nanosleep)
|
||||
.long SYMBOL_NAME(sys_mremap)
|
||||
.long 0,0
|
||||
.long SYMBOL_NAME(sys_vm86)
|
||||
.long 0,0,0,0 /* 170 */
|
||||
.long 0,0,0,0,0,0,0,0,0,0 /* 180 */
|
||||
.long 0,0,0,0,0,0,0
|
||||
.long SYMBOL_NAME(sys_table)
|
||||
.space (NR_syscalls-188)*4
|
@@ -1,51 +0,0 @@
|
||||
diff -ur linux-2.0.32/Makefile linux-hacked/Makefile
|
||||
--- linux-2.0.32/Makefile Fri Nov 7 19:51:05 1997
|
||||
+++ linux-hacked/Makefile Thu Jun 11 20:41:12 1998
|
||||
@@ -87,7 +87,7 @@
|
||||
# standard CFLAGS
|
||||
#
|
||||
|
||||
-CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce
|
||||
+CFLAGS = -Wall -Wstrict-prototypes -g -O2 -fomit-frame-pointer -fno-strength-reduce
|
||||
|
||||
ifdef CONFIG_CPP
|
||||
CFLAGS := $(CFLAGS) -x c++
|
||||
@@ -113,12 +113,12 @@
|
||||
# Include the make variables (CC, etc...)
|
||||
#
|
||||
|
||||
-ARCHIVES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o net/network.a
|
||||
+ARCHIVES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o net/network.a table/table.o
|
||||
FILESYSTEMS =fs/filesystems.a
|
||||
DRIVERS =drivers/block/block.a \
|
||||
drivers/char/char.a
|
||||
LIBS =$(TOPDIR)/lib/lib.a
|
||||
-SUBDIRS =kernel drivers mm fs net ipc lib
|
||||
+SUBDIRS =kernel drivers mm fs net ipc lib table
|
||||
|
||||
ifeq ($(CONFIG_ISDN),y)
|
||||
DRIVERS := $(DRIVERS) drivers/isdn/isdn.a
|
||||
diff -ur linux-2.0.32/arch/i386/kernel/entry.S linux-hacked/arch/i386/kernel/entry.S
|
||||
--- linux-2.0.32/arch/i386/kernel/entry.S Tue Sep 16 23:42:45 1997
|
||||
+++ linux-hacked/arch/i386/kernel/entry.S Thu Jun 11 21:37:20 1998
|
||||
@@ -699,4 +699,8 @@
|
||||
.long SYMBOL_NAME(sys_mremap)
|
||||
.long 0,0
|
||||
.long SYMBOL_NAME(sys_vm86)
|
||||
- .space (NR_syscalls-166)*4
|
||||
+ .long 0,0,0,0 /* 170 */
|
||||
+ .long 0,0,0,0,0,0,0,0,0,0 /* 180 */
|
||||
+ .long 0,0,0,0,0,0,0
|
||||
+ .long SYMBOL_NAME(sys_table)
|
||||
+ .space (NR_syscalls-188)*4
|
||||
diff -ur linux-2.0.32/include/asm-i386/unistd.h linux-hacked/include/asm-i386/unistd.h
|
||||
--- linux-2.0.32/include/asm-i386/unistd.h Fri Mar 22 07:34:02 1996
|
||||
+++ linux-hacked/include/asm-i386/unistd.h Thu Jun 11 21:37:03 1998
|
||||
@@ -169,6 +169,7 @@
|
||||
#define __NR_sched_rr_get_interval 161
|
||||
#define __NR_nanosleep 162
|
||||
#define __NR_mremap 163
|
||||
+#define __NR_table 188
|
||||
|
||||
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
|
||||
#define _syscall0(type,name) \
|
@@ -1,468 +0,0 @@
|
||||
/*
|
||||
* linux/table/table_impl.c
|
||||
* Copyright (C) 1998 Martin Baulig
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/tty.h>
|
||||
#include <linux/user.h>
|
||||
#include <linux/a.out.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/mman.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/config.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/swap.h>
|
||||
|
||||
#include <asm/segment.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#include <linux/table.h>
|
||||
|
||||
#include "version.h"
|
||||
|
||||
#if defined(__i386__)
|
||||
# define KSTK_EIP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1019])
|
||||
# define KSTK_ESP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1022])
|
||||
#elif defined(__alpha__)
|
||||
/*
|
||||
* See arch/alpha/kernel/ptrace.c for details.
|
||||
*/
|
||||
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
|
||||
+ (long)&((struct pt_regs *)0)->reg)
|
||||
# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc)))
|
||||
# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp)
|
||||
#elif defined(__sparc__)
|
||||
# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \
|
||||
+ (long)&((struct pt_regs *)0)->reg)
|
||||
# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc)))
|
||||
# define KSTK_ESP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(u_regs[UREG_FP])))
|
||||
#endif
|
||||
|
||||
static struct task_struct *
|
||||
get_task (pid_t pid)
|
||||
{
|
||||
struct task_struct ** p;
|
||||
|
||||
p = task;
|
||||
while (++p < task+NR_TASKS) {
|
||||
if (*p && (*p)->pid == pid)
|
||||
return *p;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void statm_pte_range(pmd_t * pmd, unsigned long address, unsigned long size,
|
||||
int * pages, int * shared, int * dirty, int * total)
|
||||
{
|
||||
pte_t * pte;
|
||||
unsigned long end;
|
||||
|
||||
if (pmd_none(*pmd))
|
||||
return;
|
||||
if (pmd_bad(*pmd)) {
|
||||
printk("statm_pte_range: bad pmd (%08lx)\n", pmd_val(*pmd));
|
||||
pmd_clear(pmd);
|
||||
return;
|
||||
}
|
||||
pte = pte_offset(pmd, address);
|
||||
address &= ~PMD_MASK;
|
||||
end = address + size;
|
||||
if (end > PMD_SIZE)
|
||||
end = PMD_SIZE;
|
||||
do {
|
||||
pte_t page = *pte;
|
||||
|
||||
address += PAGE_SIZE;
|
||||
pte++;
|
||||
if (pte_none(page))
|
||||
continue;
|
||||
++*total;
|
||||
if (!pte_present(page))
|
||||
continue;
|
||||
++*pages;
|
||||
if (pte_dirty(page))
|
||||
++*dirty;
|
||||
if (pte_page(page) >= high_memory)
|
||||
continue;
|
||||
if (mem_map[MAP_NR(pte_page(page))].count > 1)
|
||||
++*shared;
|
||||
} while (address < end);
|
||||
}
|
||||
|
||||
static inline void statm_pmd_range(pgd_t * pgd, unsigned long address, unsigned long size,
|
||||
int * pages, int * shared, int * dirty, int * total)
|
||||
{
|
||||
pmd_t * pmd;
|
||||
unsigned long end;
|
||||
|
||||
if (pgd_none(*pgd))
|
||||
return;
|
||||
if (pgd_bad(*pgd)) {
|
||||
printk("statm_pmd_range: bad pgd (%08lx)\n", pgd_val(*pgd));
|
||||
pgd_clear(pgd);
|
||||
return;
|
||||
}
|
||||
pmd = pmd_offset(pgd, address);
|
||||
address &= ~PGDIR_MASK;
|
||||
end = address + size;
|
||||
if (end > PGDIR_SIZE)
|
||||
end = PGDIR_SIZE;
|
||||
do {
|
||||
statm_pte_range(pmd, address, end - address, pages, shared, dirty, total);
|
||||
address = (address + PMD_SIZE) & PMD_MASK;
|
||||
pmd++;
|
||||
} while (address < end);
|
||||
}
|
||||
|
||||
static void statm_pgd_range(pgd_t * pgd, unsigned long address, unsigned long end,
|
||||
int * pages, int * shared, int * dirty, int * total)
|
||||
{
|
||||
while (address < end) {
|
||||
statm_pmd_range(pgd, address, end - address, pages, shared, dirty, total);
|
||||
address = (address + PGDIR_SIZE) & PGDIR_MASK;
|
||||
pgd++;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned long
|
||||
get_wchan (struct task_struct *p)
|
||||
{
|
||||
if (!p || p == current || p->state == TASK_RUNNING)
|
||||
return 0;
|
||||
#if defined(__i386__)
|
||||
{
|
||||
unsigned long ebp, eip;
|
||||
unsigned long stack_page;
|
||||
int count = 0;
|
||||
|
||||
stack_page = p->kernel_stack_page;
|
||||
if (!stack_page)
|
||||
return 0;
|
||||
ebp = p->tss.ebp;
|
||||
do {
|
||||
if (ebp < stack_page || ebp >= 4092+stack_page)
|
||||
return 0;
|
||||
eip = *(unsigned long *) (ebp+4);
|
||||
if (eip < (unsigned long) interruptible_sleep_on
|
||||
|| eip >= (unsigned long) add_timer)
|
||||
return eip;
|
||||
ebp = *(unsigned long *) ebp;
|
||||
} while (count++ < 16);
|
||||
}
|
||||
#elif defined(__alpha__)
|
||||
/*
|
||||
* This one depends on the frame size of schedule(). Do a
|
||||
* "disass schedule" in gdb to find the frame size. Also, the
|
||||
* code assumes that sleep_on() follows immediately after
|
||||
* interruptible_sleep_on() and that add_timer() follows
|
||||
* immediately after interruptible_sleep(). Ugly, isn't it?
|
||||
* Maybe adding a wchan field to task_struct would be better,
|
||||
* after all...
|
||||
*/
|
||||
{
|
||||
unsigned long schedule_frame;
|
||||
unsigned long pc;
|
||||
|
||||
pc = thread_saved_pc(&p->tss);
|
||||
if (pc >= (unsigned long) interruptible_sleep_on && pc < (unsigned long) add_timer) {
|
||||
schedule_frame = ((unsigned long *)p->tss.ksp)[6];
|
||||
return ((unsigned long *)schedule_frame)[12];
|
||||
}
|
||||
return pc;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage int
|
||||
sys_table (int type, union table *buf, const void *param)
|
||||
{
|
||||
union table tbl;
|
||||
struct sysinfo i;
|
||||
struct task_struct *tsk = NULL;
|
||||
struct ip_chain *chain;
|
||||
struct ip_fwkernel *rule;
|
||||
char devname [9];
|
||||
int index, err;
|
||||
pid_t pid;
|
||||
|
||||
if (type == TABLE_VERSION)
|
||||
return _TABLE_VERSION;
|
||||
|
||||
if (!buf)
|
||||
return -EFAULT;
|
||||
|
||||
memset (&tbl, 0, sizeof (union table));
|
||||
|
||||
/* For TABLE_PROC_*, read pid and get task_struct */
|
||||
|
||||
switch (type) {
|
||||
case TABLE_PROC_UID:
|
||||
case TABLE_PROC_MEM:
|
||||
case TABLE_PROC_SEGMENT:
|
||||
case TABLE_PROC_TIME:
|
||||
case TABLE_PROC_STATE:
|
||||
case TABLE_PROC_SIGNAL:
|
||||
case TABLE_PROC_KERNEL:
|
||||
err = verify_area (VERIFY_READ, param, sizeof (pid_t));
|
||||
if (err)
|
||||
return err;
|
||||
memcpy_fromfs (&pid, param, sizeof (pid_t));
|
||||
|
||||
tsk = get_task (pid);
|
||||
if (tsk == NULL)
|
||||
return -ESRCH;
|
||||
break;
|
||||
case TABLE_NETACCT:
|
||||
err = verify_area (VERIFY_READ, param, 5);
|
||||
if (err)
|
||||
return err;
|
||||
copy_from_user (devname, param, 5);
|
||||
devname [5] = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
/* Main function dispatcher */
|
||||
|
||||
switch (type) {
|
||||
case TABLE_PROCLIST:
|
||||
tsk = task [0];
|
||||
for (index = 0; index < nr_tasks; index++) {
|
||||
tbl.proclist.pids [index] = tsk->pid;
|
||||
tsk = tsk->next_task;
|
||||
}
|
||||
tbl.proclist.nr_running = nr_running;
|
||||
tbl.proclist.nr_tasks = nr_tasks;
|
||||
tbl.proclist.last_pid = last_pid;
|
||||
break;
|
||||
case TABLE_CPU:
|
||||
tbl.cpu.total = jiffies;
|
||||
tbl.cpu.user = kstat.cpu_user;
|
||||
tbl.cpu.nice = kstat.cpu_nice;
|
||||
tbl.cpu.sys = kstat.cpu_system;
|
||||
tbl.cpu.idle = tbl.cpu.total -
|
||||
(tbl.cpu.user + tbl.cpu.nice + tbl.cpu.sys);
|
||||
tbl.cpu.frequency = HZ;
|
||||
break;
|
||||
case TABLE_MEM:
|
||||
si_meminfo (&i);
|
||||
tbl.mem.total = i.totalram;
|
||||
tbl.mem.used = i.totalram - i.freeram;
|
||||
tbl.mem.free = i.freeram;
|
||||
tbl.mem.shared = i.sharedram;
|
||||
tbl.mem.buffer = i.bufferram;
|
||||
tbl.mem.cached = page_cache_size << PAGE_SHIFT;
|
||||
break;
|
||||
case TABLE_SWAP:
|
||||
si_swapinfo (&i);
|
||||
tbl.swap.total = i.totalswap;
|
||||
tbl.swap.used = i.totalswap - i.freeswap;
|
||||
tbl.swap.free = i.freeswap;
|
||||
tbl.swap.pagein = kstat.pswpin;
|
||||
tbl.swap.pageout = kstat.pswpout;
|
||||
break;
|
||||
case TABLE_LOADAVG:
|
||||
tbl.loadavg.loadavg [0] = (double) avenrun [0] / (1 << FSHIFT);
|
||||
tbl.loadavg.loadavg [1] = (double) avenrun [1] / (1 << FSHIFT);
|
||||
tbl.loadavg.loadavg [2] = (double) avenrun [2] / (1 << FSHIFT);
|
||||
tbl.loadavg.nr_running = nr_running;
|
||||
tbl.loadavg.nr_tasks = nr_tasks;
|
||||
tbl.loadavg.last_pid = last_pid;
|
||||
break;
|
||||
case TABLE_UPTIME:
|
||||
tbl.uptime.uptime = jiffies;
|
||||
tbl.uptime.idle = task[0]->utime + task[0]->stime;
|
||||
break;
|
||||
case TABLE_PROC_STATE:
|
||||
tbl.proc_state.state = tsk->state;
|
||||
tbl.proc_state.flags = tsk->flags;
|
||||
memcpy (tbl.proc_state.comm, tsk->comm,
|
||||
sizeof (tbl.proc_state.comm));
|
||||
break;
|
||||
case TABLE_PROC_UID:
|
||||
tbl.proc_uid.uid = tsk->uid;
|
||||
tbl.proc_uid.euid = tsk->euid;
|
||||
tbl.proc_uid.suid = tsk->suid;
|
||||
tbl.proc_uid.fsuid = tsk->fsuid;
|
||||
|
||||
tbl.proc_uid.gid = tsk->gid;
|
||||
tbl.proc_uid.egid = tsk->egid;
|
||||
tbl.proc_uid.sgid = tsk->sgid;
|
||||
tbl.proc_uid.fsgid = tsk->fsgid;
|
||||
|
||||
tbl.proc_uid.pid = tsk->pid;
|
||||
tbl.proc_uid.pgrp = tsk->pgrp;
|
||||
tbl.proc_uid.ppid = tsk->p_pptr->pid;
|
||||
|
||||
tbl.proc_uid.session = tsk->session;
|
||||
tbl.proc_uid.tty = tsk->tty ?
|
||||
kdev_t_to_nr (tsk->tty->device) : 0;
|
||||
tbl.proc_uid.tpgid = tsk->tty ? tsk->tty->pgrp : -1;
|
||||
|
||||
tbl.proc_uid.priority = tsk->priority;
|
||||
tbl.proc_uid.counter = tsk->counter;
|
||||
tbl.proc_uid.def_priority = DEF_PRIORITY;
|
||||
break;
|
||||
case TABLE_PROC_SIGNAL:
|
||||
tbl.proc_signal.signal = tsk->signal;
|
||||
tbl.proc_signal.blocked = tsk->blocked;
|
||||
|
||||
if (tsk->sig) {
|
||||
struct sigaction * action = tsk->sig->action;
|
||||
unsigned long sig_ign = 0, sig_caught = 0;
|
||||
unsigned long bit = 1;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
switch((unsigned long) action->sa_handler) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
sig_ign |= bit;
|
||||
break;
|
||||
default:
|
||||
sig_caught |= bit;
|
||||
}
|
||||
bit <<= 1;
|
||||
action++;
|
||||
}
|
||||
|
||||
tbl.proc_signal.ignored = sig_ign;
|
||||
tbl.proc_signal.caught = sig_caught;
|
||||
} else {
|
||||
tbl.proc_signal.ignored = 0;
|
||||
tbl.proc_signal.caught = 0;
|
||||
}
|
||||
break;
|
||||
case TABLE_PROC_MEM:
|
||||
if (tsk->mm && tsk->mm != &init_mm) {
|
||||
tbl.proc_mem.context = tsk->mm->context;
|
||||
tbl.proc_mem.start_code = tsk->mm->start_code;
|
||||
tbl.proc_mem.end_code = tsk->mm->end_code;
|
||||
tbl.proc_mem.start_data = tsk->mm-> start_data;
|
||||
tbl.proc_mem.end_data = tsk->mm->end_data;
|
||||
tbl.proc_mem.start_brk = tsk->mm->start_brk;
|
||||
tbl.proc_mem.brk = tsk->mm->brk;
|
||||
tbl.proc_mem.start_stack = tsk->mm->start_stack;
|
||||
tbl.proc_mem.start_mmap = tsk->mm->start_mmap;
|
||||
tbl.proc_mem.arg_start = tsk->mm->arg_start;
|
||||
tbl.proc_mem.arg_end = tsk->mm->arg_end;
|
||||
tbl.proc_mem.env_start = tsk->mm->env_start;
|
||||
tbl.proc_mem.env_end = tsk->mm->env_end;
|
||||
tbl.proc_mem.rss = tsk->mm->rss;
|
||||
tbl.proc_mem.total_vm = tsk->mm->total_vm;
|
||||
tbl.proc_mem.locked_vm = tsk->mm->locked_vm;
|
||||
}
|
||||
tbl.proc_mem.rlim = tsk->rlim ?
|
||||
tsk->rlim[RLIMIT_RSS].rlim_cur : 0;
|
||||
break;
|
||||
case TABLE_PROC_SEGMENT:
|
||||
if (tsk->mm && tsk->mm != &init_mm) {
|
||||
unsigned long vsize = 0;
|
||||
int size = 0, resident = 0, share = 0;
|
||||
int trs = 0, lrs = 0, drs = 0, dt = 0;
|
||||
struct vm_area_struct * vma = tsk->mm->mmap;
|
||||
|
||||
while (vma) {
|
||||
pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start);
|
||||
int pages = 0, shared = 0, dirty = 0, total = 0;
|
||||
|
||||
vsize += vma->vm_end - vma->vm_start;
|
||||
|
||||
statm_pgd_range (pgd, vma->vm_start, vma->vm_end,
|
||||
&pages, &shared, &dirty, &total);
|
||||
resident += pages;
|
||||
share += shared;
|
||||
dt += dirty;
|
||||
size += total;
|
||||
if (vma->vm_flags & VM_EXECUTABLE)
|
||||
trs += pages; /* text */
|
||||
else if (vma->vm_flags & VM_GROWSDOWN)
|
||||
drs += pages; /* stack */
|
||||
else if (vma->vm_end > 0x60000000)
|
||||
lrs += pages; /* library */
|
||||
else
|
||||
drs += pages;
|
||||
vma = vma->vm_next;
|
||||
}
|
||||
|
||||
tbl.proc_segment.vsize = vsize;
|
||||
tbl.proc_segment.size = size;
|
||||
tbl.proc_segment.resident = resident;
|
||||
tbl.proc_segment.shared = share;
|
||||
tbl.proc_segment.trs = trs;
|
||||
tbl.proc_segment.lrs = lrs;
|
||||
tbl.proc_segment.dt = dt;
|
||||
}
|
||||
break;
|
||||
case TABLE_PROC_TIME:
|
||||
tbl.proc_time.utime = tsk->utime;
|
||||
tbl.proc_time.stime = tsk->stime;
|
||||
tbl.proc_time.cutime = tsk->cutime;
|
||||
tbl.proc_time.cstime = tsk->cstime;
|
||||
|
||||
tbl.proc_time.start_time = tsk->start_time;
|
||||
tbl.proc_time.timeout = tsk->timeout;
|
||||
tbl.proc_time.policy = tsk->policy;
|
||||
tbl.proc_time.rt_priority = tsk->rt_priority;
|
||||
|
||||
tbl.proc_time.it_real_value = tsk->it_real_value;
|
||||
tbl.proc_time.it_prof_value = tsk->it_prof_value;
|
||||
tbl.proc_time.it_virt_value = tsk->it_virt_value;
|
||||
tbl.proc_time.it_real_incr = tsk->it_real_incr;
|
||||
tbl.proc_time.it_prof_incr = tsk->it_prof_incr;
|
||||
tbl.proc_time.it_virt_incr = tsk->it_virt_incr;
|
||||
break;
|
||||
case TABLE_PROC_KERNEL:
|
||||
tbl.proc_kernel.min_flt = tsk->min_flt;
|
||||
tbl.proc_kernel.cmin_flt = tsk->cmin_flt;
|
||||
tbl.proc_kernel.maj_flt = tsk->maj_flt;
|
||||
tbl.proc_kernel.cmaj_flt = tsk->cmaj_flt;
|
||||
|
||||
tbl.proc_kernel.kesp = tsk->kernel_stack_page ? KSTK_EIP(tsk) : 0;
|
||||
tbl.proc_kernel.keip = tsk->kernel_stack_page ? KSTK_ESP(tsk) : 0;
|
||||
|
||||
tbl.proc_kernel.nswap = tsk->nswap;
|
||||
tbl.proc_kernel.cnswap = tsk->cnswap;
|
||||
|
||||
tbl.proc_kernel.wchan = get_wchan (tsk);
|
||||
break;
|
||||
case TABLE_NETACCT:
|
||||
for (chain = ip_fw_chains; chain; chain = chain->next) {
|
||||
for (rule = chain->chain; rule; rule = rule->next) {
|
||||
const char *name = rule->ipfw.fw_vianame;
|
||||
int k;
|
||||
|
||||
if (name [0] && !strncmp (param, name, 5))
|
||||
continue;
|
||||
|
||||
for (k = 0; k < NUM_SLOTS; k++) {
|
||||
tbl.netacct.packets +=
|
||||
rule->counters[k].pcnt;
|
||||
tbl.netacct.bytes +=
|
||||
rule->counters[k].bcnt;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
err = verify_area (VERIFY_WRITE, buf, sizeof (struct table));
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
memcpy_tofs (buf, &tbl, sizeof (union table));
|
||||
return 0;
|
||||
}
|
@@ -1,324 +0,0 @@
|
||||
#ifndef _ASM_I386_UNISTD_H_
|
||||
#define _ASM_I386_UNISTD_H_
|
||||
|
||||
/*
|
||||
* This file contains the system call numbers.
|
||||
*/
|
||||
|
||||
#define __NR_setup 0 /* used only by init, to get system going */
|
||||
#define __NR_exit 1
|
||||
#define __NR_fork 2
|
||||
#define __NR_read 3
|
||||
#define __NR_write 4
|
||||
#define __NR_open 5
|
||||
#define __NR_close 6
|
||||
#define __NR_waitpid 7
|
||||
#define __NR_creat 8
|
||||
#define __NR_link 9
|
||||
#define __NR_unlink 10
|
||||
#define __NR_execve 11
|
||||
#define __NR_chdir 12
|
||||
#define __NR_time 13
|
||||
#define __NR_mknod 14
|
||||
#define __NR_chmod 15
|
||||
#define __NR_chown 16
|
||||
#define __NR_break 17
|
||||
#define __NR_oldstat 18
|
||||
#define __NR_lseek 19
|
||||
#define __NR_getpid 20
|
||||
#define __NR_mount 21
|
||||
#define __NR_umount 22
|
||||
#define __NR_setuid 23
|
||||
#define __NR_getuid 24
|
||||
#define __NR_stime 25
|
||||
#define __NR_ptrace 26
|
||||
#define __NR_alarm 27
|
||||
#define __NR_oldfstat 28
|
||||
#define __NR_pause 29
|
||||
#define __NR_utime 30
|
||||
#define __NR_stty 31
|
||||
#define __NR_gtty 32
|
||||
#define __NR_access 33
|
||||
#define __NR_nice 34
|
||||
#define __NR_ftime 35
|
||||
#define __NR_sync 36
|
||||
#define __NR_kill 37
|
||||
#define __NR_rename 38
|
||||
#define __NR_mkdir 39
|
||||
#define __NR_rmdir 40
|
||||
#define __NR_dup 41
|
||||
#define __NR_pipe 42
|
||||
#define __NR_times 43
|
||||
#define __NR_prof 44
|
||||
#define __NR_brk 45
|
||||
#define __NR_setgid 46
|
||||
#define __NR_getgid 47
|
||||
#define __NR_signal 48
|
||||
#define __NR_geteuid 49
|
||||
#define __NR_getegid 50
|
||||
#define __NR_acct 51
|
||||
#define __NR_phys 52
|
||||
#define __NR_lock 53
|
||||
#define __NR_ioctl 54
|
||||
#define __NR_fcntl 55
|
||||
#define __NR_mpx 56
|
||||
#define __NR_setpgid 57
|
||||
#define __NR_ulimit 58
|
||||
#define __NR_oldolduname 59
|
||||
#define __NR_umask 60
|
||||
#define __NR_chroot 61
|
||||
#define __NR_ustat 62
|
||||
#define __NR_dup2 63
|
||||
#define __NR_getppid 64
|
||||
#define __NR_getpgrp 65
|
||||
#define __NR_setsid 66
|
||||
#define __NR_sigaction 67
|
||||
#define __NR_sgetmask 68
|
||||
#define __NR_ssetmask 69
|
||||
#define __NR_setreuid 70
|
||||
#define __NR_setregid 71
|
||||
#define __NR_sigsuspend 72
|
||||
#define __NR_sigpending 73
|
||||
#define __NR_sethostname 74
|
||||
#define __NR_setrlimit 75
|
||||
#define __NR_getrlimit 76
|
||||
#define __NR_getrusage 77
|
||||
#define __NR_gettimeofday 78
|
||||
#define __NR_settimeofday 79
|
||||
#define __NR_getgroups 80
|
||||
#define __NR_setgroups 81
|
||||
#define __NR_select 82
|
||||
#define __NR_symlink 83
|
||||
#define __NR_oldlstat 84
|
||||
#define __NR_readlink 85
|
||||
#define __NR_uselib 86
|
||||
#define __NR_swapon 87
|
||||
#define __NR_reboot 88
|
||||
#define __NR_readdir 89
|
||||
#define __NR_mmap 90
|
||||
#define __NR_munmap 91
|
||||
#define __NR_truncate 92
|
||||
#define __NR_ftruncate 93
|
||||
#define __NR_fchmod 94
|
||||
#define __NR_fchown 95
|
||||
#define __NR_getpriority 96
|
||||
#define __NR_setpriority 97
|
||||
#define __NR_profil 98
|
||||
#define __NR_statfs 99
|
||||
#define __NR_fstatfs 100
|
||||
#define __NR_ioperm 101
|
||||
#define __NR_socketcall 102
|
||||
#define __NR_syslog 103
|
||||
#define __NR_setitimer 104
|
||||
#define __NR_getitimer 105
|
||||
#define __NR_stat 106
|
||||
#define __NR_lstat 107
|
||||
#define __NR_fstat 108
|
||||
#define __NR_olduname 109
|
||||
#define __NR_iopl 110
|
||||
#define __NR_vhangup 111
|
||||
#define __NR_idle 112
|
||||
#define __NR_vm86 113
|
||||
#define __NR_wait4 114
|
||||
#define __NR_swapoff 115
|
||||
#define __NR_sysinfo 116
|
||||
#define __NR_ipc 117
|
||||
#define __NR_fsync 118
|
||||
#define __NR_sigreturn 119
|
||||
#define __NR_clone 120
|
||||
#define __NR_setdomainname 121
|
||||
#define __NR_uname 122
|
||||
#define __NR_modify_ldt 123
|
||||
#define __NR_adjtimex 124
|
||||
#define __NR_mprotect 125
|
||||
#define __NR_sigprocmask 126
|
||||
#define __NR_create_module 127
|
||||
#define __NR_init_module 128
|
||||
#define __NR_delete_module 129
|
||||
#define __NR_get_kernel_syms 130
|
||||
#define __NR_quotactl 131
|
||||
#define __NR_getpgid 132
|
||||
#define __NR_fchdir 133
|
||||
#define __NR_bdflush 134
|
||||
#define __NR_sysfs 135
|
||||
#define __NR_personality 136
|
||||
#define __NR_afs_syscall 137 /* Syscall for Andrew File System */
|
||||
#define __NR_setfsuid 138
|
||||
#define __NR_setfsgid 139
|
||||
#define __NR__llseek 140
|
||||
#define __NR_getdents 141
|
||||
#define __NR__newselect 142
|
||||
#define __NR_flock 143
|
||||
#define __NR_msync 144
|
||||
#define __NR_readv 145
|
||||
#define __NR_writev 146
|
||||
#define __NR_getsid 147
|
||||
#define __NR_fdatasync 148
|
||||
#define __NR__sysctl 149
|
||||
#define __NR_mlock 150
|
||||
#define __NR_munlock 151
|
||||
#define __NR_mlockall 152
|
||||
#define __NR_munlockall 153
|
||||
#define __NR_sched_setparam 154
|
||||
#define __NR_sched_getparam 155
|
||||
#define __NR_sched_setscheduler 156
|
||||
#define __NR_sched_getscheduler 157
|
||||
#define __NR_sched_yield 158
|
||||
#define __NR_sched_get_priority_max 159
|
||||
#define __NR_sched_get_priority_min 160
|
||||
#define __NR_sched_rr_get_interval 161
|
||||
#define __NR_nanosleep 162
|
||||
#define __NR_mremap 163
|
||||
#define __NR_table 188
|
||||
|
||||
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
|
||||
#define _syscall0(type,name) \
|
||||
type name(void) \
|
||||
{ \
|
||||
long __res; \
|
||||
__asm__ volatile ("int $0x80" \
|
||||
: "=a" (__res) \
|
||||
: "0" (__NR_##name)); \
|
||||
if (__res >= 0) \
|
||||
return (type) __res; \
|
||||
errno = -__res; \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define _syscall1(type,name,type1,arg1) \
|
||||
type name(type1 arg1) \
|
||||
{ \
|
||||
long __res; \
|
||||
__asm__ volatile ("int $0x80" \
|
||||
: "=a" (__res) \
|
||||
: "0" (__NR_##name),"b" ((long)(arg1))); \
|
||||
if (__res >= 0) \
|
||||
return (type) __res; \
|
||||
errno = -__res; \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define _syscall2(type,name,type1,arg1,type2,arg2) \
|
||||
type name(type1 arg1,type2 arg2) \
|
||||
{ \
|
||||
long __res; \
|
||||
__asm__ volatile ("int $0x80" \
|
||||
: "=a" (__res) \
|
||||
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \
|
||||
if (__res >= 0) \
|
||||
return (type) __res; \
|
||||
errno = -__res; \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
|
||||
type name(type1 arg1,type2 arg2,type3 arg3) \
|
||||
{ \
|
||||
long __res; \
|
||||
__asm__ volatile ("int $0x80" \
|
||||
: "=a" (__res) \
|
||||
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
|
||||
"d" ((long)(arg3))); \
|
||||
if (__res>=0) \
|
||||
return (type) __res; \
|
||||
errno=-__res; \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
|
||||
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
|
||||
{ \
|
||||
long __res; \
|
||||
__asm__ volatile ("int $0x80" \
|
||||
: "=a" (__res) \
|
||||
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
|
||||
"d" ((long)(arg3)),"S" ((long)(arg4))); \
|
||||
if (__res>=0) \
|
||||
return (type) __res; \
|
||||
errno=-__res; \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
|
||||
type5,arg5) \
|
||||
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
|
||||
{ \
|
||||
long __res; \
|
||||
__asm__ volatile ("int $0x80" \
|
||||
: "=a" (__res) \
|
||||
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
|
||||
"d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
|
||||
if (__res>=0) \
|
||||
return (type) __res; \
|
||||
errno=-__res; \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#ifdef __KERNEL_SYSCALLS__
|
||||
|
||||
/*
|
||||
* we need this inline - forking from kernel space will result
|
||||
* in NO COPY ON WRITE (!!!), until an execve is executed. This
|
||||
* is no problem, but for the stack. This is handled by not letting
|
||||
* main() use the stack at all after fork(). Thus, no function
|
||||
* calls - which means inline code for fork too, as otherwise we
|
||||
* would use the stack upon exit from 'fork()'.
|
||||
*
|
||||
* Actually only pause and fork are needed inline, so that there
|
||||
* won't be any messing with the stack from main(), but we define
|
||||
* some others too.
|
||||
*/
|
||||
#define __NR__exit __NR_exit
|
||||
static inline _syscall0(int,idle)
|
||||
static inline _syscall0(int,fork)
|
||||
static inline _syscall2(int,clone,unsigned long,flags,char *,esp)
|
||||
static inline _syscall0(int,pause)
|
||||
static inline _syscall0(int,setup)
|
||||
static inline _syscall0(int,sync)
|
||||
static inline _syscall0(pid_t,setsid)
|
||||
static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
|
||||
static inline _syscall1(int,dup,int,fd)
|
||||
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
|
||||
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
|
||||
static inline _syscall1(int,close,int,fd)
|
||||
static inline _syscall1(int,_exit,int,exitcode)
|
||||
static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
|
||||
|
||||
static inline pid_t wait(int * wait_stat)
|
||||
{
|
||||
return waitpid(-1,wait_stat,0);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is the mechanism for creating a new kernel thread.
|
||||
*
|
||||
* NOTE! Only a kernel-only process(ie the swapper or direct descendants
|
||||
* who haven't done an "execve()") should use this: it will work within
|
||||
* a system call from a "real" process, but the process memory space will
|
||||
* not be free'd until both the parent and the child have exited.
|
||||
*/
|
||||
static inline pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
|
||||
{
|
||||
long retval;
|
||||
|
||||
__asm__ __volatile__(
|
||||
"movl %%esp,%%esi\n\t"
|
||||
"int $0x80\n\t" /* Linux/i386 system call */
|
||||
"cmpl %%esp,%%esi\n\t" /* child or parent? */
|
||||
"je 1f\n\t" /* parent - jump */
|
||||
"pushl %3\n\t" /* push argument */
|
||||
"call *%4\n\t" /* call fn */
|
||||
"movl %2,%0\n\t" /* exit */
|
||||
"int $0x80\n"
|
||||
"1:\t"
|
||||
:"=a" (retval)
|
||||
:"0" (__NR_clone), "i" (__NR_exit),
|
||||
"r" (arg), "r" (fn),
|
||||
"b" (flags | CLONE_VM)
|
||||
:"si");
|
||||
return retval;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_I386_UNISTD_H_ */
|
@@ -1 +0,0 @@
|
||||
#define _TABLE_VERSION 1
|
@@ -1,4 +0,0 @@
|
||||
kernel.patch
|
||||
.main.o.flags
|
||||
.table.o.flags
|
||||
.module.o.flags
|
@@ -1,16 +0,0 @@
|
||||
#
|
||||
# Makefile for the linux system information tables.
|
||||
#
|
||||
# Note! Dependencies are done automagically by 'make dep', which also
|
||||
# removes any old dependencies. DON'T put your own dependencies here
|
||||
# unless it's something special (ie not a .c file).
|
||||
#
|
||||
# Note 2! The CFLAGS definition is now in the main makefile...
|
||||
|
||||
O_TARGET := table.o
|
||||
OX_OBJS := main.o
|
||||
|
||||
M_TARGET := table_mod.o
|
||||
MX_OBJS := module.o
|
||||
|
||||
include $(TOPDIR)/Rules.make
|
@@ -1,21 +0,0 @@
|
||||
This is a new system call `table ()' for the Linux table. It is faster
|
||||
than reading from /proc and can be used to fetch all information required
|
||||
for libgtop until whe have some other function (extended sysctl, ...) in
|
||||
standard kernels.
|
||||
|
||||
I didn't want to change sysctl or some other function myself cause this may
|
||||
cause other applications relying upon those function to fail. This is
|
||||
something for the ``real'' kernel gurus ...
|
||||
|
||||
To use this new system call for libgtop, do the following:
|
||||
|
||||
* Copy this directory to /usr/src/linux/table
|
||||
* Make /usr/src/linux/include/linux/table.h symlink to /usr/src/linux/table/table.h
|
||||
* Apply the patch `kernel.patch' to the kernel, compile, install and reboot
|
||||
* Recompile libgtop (remove `config.cache' and run the `autogen.sh' again).
|
||||
|
||||
If you want to change and/or add something - feel free to do so !
|
||||
|
||||
Have fun,
|
||||
|
||||
Martin
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user