Compare commits

..

9 Commits

Author SHA1 Message Date
Benoît Dejean
d5c7c9f7cb Oops, missing file
svn path=/branches/gnome-2-24/; revision=2804
2009-02-16 23:12:13 +00:00
Benoît Dejean
b64a6914f2 Released 2.24.4.
svn path=/branches/gnome-2-24/; revision=2796
2009-01-19 22:07:55 +00:00
Benoît Dejean
5526454790 Fixed license to be GPL-2.
svn path=/branches/gnome-2-24/; revision=2795
2009-01-19 18:25:32 +00:00
Benoît Dejean
d07192b5c9 Released 2.24.3. Again.
svn path=/branches/gnome-2-24/; revision=2793
2009-01-12 21:07:01 +00:00
Benoît Dejean
b6464a97ec Fixed Darwin build. Patch by "paul" <ephraim_owns@hotmail.com>. See
Fixed Darwin build.
Patch by "paul" <ephraim_owns@hotmail.com>.
See #556904.

svn path=/branches/gnome-2-24/; revision=2792
2009-01-12 21:05:48 +00:00
Benoît Dejean
89aac22fac Released 2.24.3.
svn path=/branches/gnome-2-24/; revision=2791
2009-01-12 20:57:17 +00:00
Benoît Dejean
935d321bf0 Fixed read(2) usage.
Closes #468495.

svn path=/branches/gnome-2-24/; revision=2790
2009-01-12 18:39:44 +00:00
Benoît Dejean
9ea7201e24 Bumped version number.
svn path=/branches/gnome-2-24/; revision=2789
2009-01-11 22:59:27 +00:00
Benoît Dejean
f4089fa71f Fixed potential memory leak.
Patch by Vincent Untz <vuntz@gnome.org>.
Closes #566611.

svn path=/branches/gnome-2-24/; revision=2788
2009-01-11 22:59:11 +00:00
632 changed files with 6338 additions and 19305 deletions

97
.gitignore vendored
View File

@@ -1,97 +0,0 @@
*.a
*.bak
*.core
*.diff
*.gmo
*.header
*.in
*.la
*.lo
*.new
*.o
*.old
*.out
*.patch
*.pot
*.s
*.sed
*.sin
*.stamp
*.swp
*~
.deps
.libs
ABOUT-NLS
INSTALL
Makefile
Makevars.template
Rules-quot
\#*\#
aclocal.m4
autom4te.cache/
compile
config.guess
config.h
config.log
config.status
config.sub
configure
depcomp
doc/libgtop2.info
doc/mdate-sh
doc/reference/html/
doc/reference/libgtop-decl-list.txt
doc/reference/libgtop-decl.txt
doc/reference/libgtop-undeclared.txt
doc/reference/libgtop-undocumented.txt
doc/reference/libgtop-unused.txt
doc/reference/libgtop.args
doc/reference/libgtop.hierarchy
doc/reference/libgtop.interfaces
doc/reference/libgtop.prerequisites
doc/reference/libgtop.signals
doc/reference/tmpl/
doc/reference/version.xml
doc/reference/xml/
doc/stamp-vti
doc/texinfo.tex
doc/version.texi
examples/affinity
examples/df
examples/disk
examples/diskio
examples/first
examples/free
examples/mountlist
examples/netlist
examples/netload
examples/openfiles
examples/pprint
examples/procargs
examples/proclist
examples/procmap
examples/second
examples/smp
examples/sysdeps
examples/timings
examples/wd
examples/sysinfo
gtk-doc.make
install-sh
lib/GTop-2.0.gir
lib/GTop-2.0.typelib
lib/lib.c
libgtop-2.0.pc
libgtop.spec
libgtopconfig.h
libtool
ltmain.sh
m4/
missing
po/POTFILES
po/stamp-it
src/daemon/libgtop_daemon2
src/daemon/libgtop_server2
stamp-h1
stamp-po
tmp-*

View File

@@ -1,69 +0,0 @@
stages:
- build
- abi
variables:
FEDORA_DEPENDENCIES:
gettext-devel
gobject-introspection-devel
gtk-doc
util-linux
texinfo-tex
FEDORA_DEPENDENCIES_ABI_CHECK:
libabigail
intltool
LAST_ABI_BREAK: "d4ac1eda0752d559db8737773d6894aadc700ce3"
UBUNTU_DEPENDENCIES:
automake
autopoint
gettext
gtk-doc-tools
libgirepository1.0-dev
libtool
make
texinfo
texlive
build-fedora:
image: fedora:latest
stage: build
except:
- tags
before_script:
- dnf update -y --nogpgcheck
- dnf install -y --nogpgcheck $FEDORA_DEPENDENCIES
script:
- mkdir _build
- cd _build
- ../autogen.sh --disable-dependency-tracking
- make
- make install
- make distcheck
abi-fedora:
image: fedora:latest
stage: abi
needs:
- build-fedora
before_script:
- dnf update -y --nogpgcheck
- dnf install -y --nogpgcheck $FEDORA_DEPENDENCIES $FEDORA_DEPENDENCIES_ABI_CHECK
script:
- curl https://gitlab.freedesktop.org/hadess/check-abi/-/raw/main/contrib/check-abi-fedora.sh | bash
- check-abi ${LAST_ABI_BREAK} $(git rev-parse HEAD)
build-ubuntu:
image: ubuntu:latest
stage: build
except:
- tags
before_script:
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install -y $UBUNTU_DEPENDENCIES
script:
- mkdir _build
- cd _build
- ../autogen.sh
- make
- make install
- make distcheck

View File

@@ -1,4 +1,3 @@
Martin Baulig (martin@home-of-linux.org) Martin Baulig (martin@home-of-linux.org)
Drazen Kacar (dave@srce.hr) Drazen Kacar (dave@srce.hr)
Benoît Dejean (bdejean@gmail.com) Benoît Dejean (tazforever@dlfp.org)
Robert Roth (robert.roth.off@gmail.com)

27
COPYING
View File

@@ -1,8 +1,8 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to the GNU Lesser General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
@@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License along
along with this program; if not, write to the Free Software with this program; if not, write to the Free Software Foundation, Inc.,
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this If the program is interactive, make it output a short notice like this
when it starts in an interactive mode: when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View File

@@ -1,4 +1,3 @@
ACLOCAL_AMFLAGS = -I m4
if EXAMPLES if EXAMPLES
EXAMPLES_DIR = examples EXAMPLES_DIR = examples
@@ -15,8 +14,14 @@ EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \
features.def libgtopconfig.h.in \ features.def libgtopconfig.h.in \
libgtop-sysdeps.m4 README \ libgtop-sysdeps.m4 README \
libgtop-2.0.pc.in acinclude.m4 \ libgtop-2.0.pc.in acinclude.m4 \
libgtop.doap \ intltool-extract.in \
m4/introspection.m4 intltool-merge.in \
intltool-update.in
DISTCLEANFILES = \
intltool-extract \
intltool-merge \
intltool-update
dist-hook: dist-hook:
cp libgtop.spec $(distdir) cp libgtop.spec $(distdir)
@@ -27,4 +32,4 @@ pkgconfig_DATA = libgtop-2.0.pc
libgtop-features.def: features.def libgtop-features.def: features.def
@LN_S@ $< $@ @LN_S@ $< $@
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-introspection DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc

274
NEWS
View File

@@ -1,277 +1,3 @@
15 October 2023: Overview of changes in 2.41.2
================================================
* Solaris
- Fix build #47
* Linux
- Change disk example read/write unit to bytes
- Fixed potential Buffer overflow when reading disk stats
- Changed disk read/write unit to bytes in example
* CI
- Fixed CI by adding missing dependency
10 January 2023 : Overview of changes in 2.41.1
================================================
* FreeBSD
- Build fixes
- Support FreeBSD 13.0-CURRENT >= 1300062 vm_map_entry
* OpenBSD
- Build fixes
* Linux
- skip loop and rom devices
* Allow building with gettext >= 0.20
* Updated translations
* CI build setup
11 March 2019: Overview of changes in 2.40.0
================================================
* Fixed array and transfer annotations for documentation
18 February 2019: Overview of changes in 2.39.91
* Replace deprecated gnome-common with autoreconf
04 February 2019: Overview of changes in 2.39.90
================================================
* Updated translations
* FreeBSD:
- added support for laundry memory
- added support for ZFS ARC
* Fixed compile warnings
* Fix build on FreeBSD and darwin
* Linux:
- get procmap doesn't need suid
11 September 2017: Overview of changes in 2.38.0
================================================
* Updated translations
04 September 2017: Overview of changes in 2.37.92
================================================
* Updated translations
* Code cleanup
07 August 2017: Overview of changes in 2.37.90
================================================
* Added reserved fields to the sysdeps struct
* Updated translations
* Fixed build failure in FreeBSD 11
22 May 2017: Overview of changes in 2.37.2
================================================
* Added support for per-process io monitoring
* Linux
* FreeBSD
* Updated translations
* Added nullpointer check
* Use unicode in translatable strings
20 March 2017: Overview of changes in 2.36.0
================================================
* Version bumped
13 March 2017: Overview of changes in 2.35.92
================================================
* Better output format for arrays
13 February 2017: Overview of changes in 2.35.90
================================================
* Linux:
- Use dynamically allocated cpu buffer
- Do not cache getpagesize()
- Use faster g_ascii_isspace in tokenization
- Ignore paragraphs not describing a CPU/core
* Updated translations
* Added more gettext options
16 January 2017: Overview of changes in 2.34.2
================================================
* Linux:
- fill last_processor member
* Updated translations
* Added more gettext options
20 August 2016: Overview of changes in 2.34.1
================================================
* FreeBSD:
- rewrite netload to use official APIs
- mark wireless interfaces as such
* All
- rename --with-libgtop-examples to --with-examples
- use gettext instead of intltool/glib-gettext
- added Language headers to the translations
Special thanks to Gleb Smirnoff, Antoine Brodin, Koop Mast and Ting-Wei Lan for
the FreeBSD fixes, to Javier Jardón for the gettext migration and to Piotr Drąg
for adding the Language headers.
22 March 2016: Overview of changes in 2.34.0
================================================
* Stable release
29 February 2016: Overview of changes in 2.33.91
* Updated translations
* Fix building on must-libc
18 January 2016: Overview of changes in 2.33.4
* On OpenBSD only PID 1 is special
* Call setlocale in main
14 December: Overview of changes in 2.33.3
* Fixed borken compilation on OpenBSD
* Updated translations.
21 September 2015: Overview of changes in 2.32.0
* Stable release
14 September 2015: Overview of changes in 2.31.91
================================================
* Darwin:
- Fixed build.
* All
- GI docs fixes
- include fixes
- Updated translations
16 August 2015: Overview of changes in 2.31.90
=============================================
* ABI changes:
- ABI was inconsistent on platforms like FreeBSD which make use of
glibtop_machine. The ABI was actually different between the
library and the server. Fixed this by simply always defining
glibtop_machine in glibtop struct.
- Add Pss and Swap members in glibtop_proc_mem.
- This is the second ABI breakage in since 2.28 (the first one was
bumping NCPU), there were no release for 2.30.
* FreeBSD:
- proclist: exclude the "idle" kernel process when GLIBTOP_EXCLUDE_IDLE.
- Remove extraneous glibtop_init() calls.
* Linux:
- proc_mem: implement Pss and Swap.
- Remove extraneous glibtop_init() calls.
* All:
- Propagate the change that machine in struct glibtop is now a
pointer. Hope that change doesn't break build on other platforms,
I can only test Linux and FreeBSD.
5 August 2015: Overview of changes in 2.31.4
=============================================
* 71 commits !
* Implement a proper --enable-debug mode.
* FreeBSD:
- procstate: set process name for kernel (pid=0)
- procmap: get dev/inode for ZFS (no filename yet)
- mem: rework memory usage to something more meaningful
- proclist: don't report threads
- proctime: fix CPU times
* Linux:
- mem: use MemAvailable when available
- mem: match `free`, report Slab as Cached.
- support for x.y versionsmemory to match `free`
* Fix a lot of GI tags: it now works without crashing.
* Server and daemon binaries are now dynamically linked against their libgtop.
* Update a lot of examples/.
* Clean up some very old code.
* Updated translations.
Special thanks to Ting-Wei Lan for providing patches and feedback on FreeBSD.
22 June 2015: Overview of changes in 2.31.3
=============================================
* Numerous OpenBSD backend fixes.
* Fixed FreeBSD build issues.
* Implemented procaffinity support for NetBSD.
* Updated translations
19 August 2013: Overview of changes in 2.28.5
=============================================
* Fix numerous bugs in the OpenBSD backend.
* Updated translations.
30 August 2011: Overview of changes in 2.28.4
=============================================
* Fix numerous bugs in the FreeBSD backend.
* Split off OpenBSD code in its own backend, and fixes.
* Updated translations.
25 March 2011: Overview of changes in 2.28.3
================================================
* Fix build issue for strict linkers.
* Add Introspection support
* Cygwin fixes.
* FreeBSD: Fix get_mem() on 64-bit systems.
* Updated translations.
28 September 2010: Overview of changes in 2.28.2
================================================
* Updated translations.
30 March 2010: Overview of changes in 2.28.1
============================================
* Updated translations.
21 September 2009: Overview of changes in 2.28.0
================================================
* Updated translations.
25 May 2009: Overview of changes in 2.27.3
==========================================
* linux:
- fixed format error.
3 May 2009: Overview of changes in 2.27.2
=========================================
* linux:
- glibtop_get_proc_map: oops, fixed segfault.
3 May 2009: Overview of changes in 2.27.1
=========================================
* linux:
- glibtop_get_proc_map is ~40% faster. This should be noticeable
in system-monitor.
* New cygwin support.
13 April 2009: Overview of changes in 2.26.1
============================================
* linux:
- glibtop_get_mounlist(...): also hide "none" fs.
1 Mars 2009: Overview of changes in 2.26.0
==========================================
* Nothing.
17 February 2009: Overview of changes in 2.25.91
================================================
* Synced with gnome-2-24.
19 January 2009: Overview of changes in 2.24.4 19 January 2009: Overview of changes in 2.24.4
============================================== ==============================================
* Fixed license: libgtop is GPL-2. * Fixed license: libgtop is GPL-2.

0
TODO Normal file
View File

View File

@@ -263,7 +263,8 @@ AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo,
[ [
ok= ok=
if test $ac_cv_func_getmntinfo = yes; then if test $ac_cv_func_getmntinfo = yes; then
AC_EGREP_HEADER(getmntinfo, sys/mount.h, ok=yes) AC_EGREP_HEADER(f_type;, sys/mount.h,
ok=yes)
fi fi
test -n "$ok" \ test -n "$ok" \
&& fu_cv_sys_mounted_getmntinfo=yes \ && fu_cv_sys_mounted_getmntinfo=yes \

View File

@@ -1,68 +1,22 @@
#!/bin/sh #!/bin/sh
# Run this to generate all the initial makefiles, etc. # Run this to generate all the initial makefiles, etc.
RED='\033[0;31m'
NC='\033[0m' # No Color
case "$(uname -s)" in srcdir=`dirname $0`
Linux) test -z "$srcdir" && srcdir=.
if ! [ -x "$(command -v lsblk)" ]; then
echo '' >&2
echo -e "${RED}*** ERROR:${NC} lsblk cannot be found. Try installing util-linux or util-linux-ng ${RED}***${NC}" >&2
echo '' >&2
exit 1
fi
if ! [ -x "$(command -v sed)" ]; then
echo '' >&2
echo -e "${RED}*** ERROR:${NC} sed cannot be found. ***" >&2
echo '' >&2
exit 1
fi
if ! [ -x "$(command -v tr)" ]; then
echo '' >&2
echo -e "${RED}*** ERROR:${NC} tr cannot be found. ***" >&2
echo '' >&2
exit 1
fi
;;
*)
;;
esac
test -n "$srcdir" || srcdir=$(dirname "$0") PKG_NAME="Gnome Top Library"
test -n "$srcdir" || srcdir=.
olddir=$(pwd) (test -f $srcdir/configure.in \
&& test -f $srcdir/copyright.txt \
cd $srcdir && test -d $srcdir/sysdeps) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
(test -f configure.ac) || { echo " top-level gnome directory"
echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***" exit 1
exit 1
} }
# shellcheck disable=SC2016 which gnome-autogen.sh || {
PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac) echo "You need to install gnome-common from the GNOME CVS"
exit 1
if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then }
echo "*** WARNING: I am going to run 'configure' with no arguments." >&2 REQUIRED_AUTOMAKE_VERSION=1.9
echo "*** If you wish to pass any to it, please specify them on the" >&2 . gnome-autogen.sh
echo "*** '$0' command line." >&2
echo "" >&2
fi
aclocal --install || exit 1
gtkdocize --copy || exit 1
autoreconf --verbose --force --install || exit 1
cd "$olddir"
if [ "$NOCONFIGURE" = "" ]; then
$srcdir/configure "$@" || exit 1
if [ "$1" = "--help" ]; then
exit 0
else
echo "Now type 'make' to compile $PKG_NAME" || exit 1
fi
else
echo "Skipping configure process."
fi

View File

@@ -3,12 +3,12 @@ dnl Configure script for the Gnome library
dnl dnl
m4_define([libgtop_major_version], [2]) m4_define([libgtop_major_version], [2])
m4_define([libgtop_minor_version], [41]) m4_define([libgtop_minor_version], [24])
m4_define([libgtop_micro_version], [2]) m4_define([libgtop_micro_version], [4])
m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version]) m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version])
dnl increment if the interface has additions, changes, removals. dnl increment if the interface has additions, changes, removals.
m4_define([libgtop_current], [12]) m4_define([libgtop_current], [9])
dnl increment any time the source changes; set to dnl increment any time the source changes; set to
dnl 0 if you increment CURRENT dnl 0 if you increment CURRENT
@@ -17,7 +17,7 @@ m4_define([libgtop_revision], [0])
dnl increment if any interfaces have been added; set to 0 dnl increment if any interfaces have been added; set to 0
dnl if any interfaces have been removed. removal has dnl if any interfaces have been removed. removal has
dnl precedence over adding, so set to 0 if both happened. dnl precedence over adding, so set to 0 if both happened.
m4_define([libgtop_age], [1]) m4_define([libgtop_age], [2])
# Increase each time you change the client/server protocol. # Increase each time you change the client/server protocol.
m4_define([libgtop_server_version], [5]) m4_define([libgtop_server_version], [5])
@@ -25,19 +25,15 @@ m4_define([libgtop_server_version], [5])
# Version code calculation # Version code calculation
m4_define([libgtop_version_code], [m4_eval(libgtop_major_version * 1000000 + libgtop_minor_version * 1000 + libgtop_micro_version)]) m4_define([libgtop_version_code], [m4_eval(libgtop_major_version * 1000000 + libgtop_minor_version * 1000 + libgtop_micro_version)])
AC_PREREQ(2.62) AC_PREREQ(2.59)
AC_INIT([libgtop], [libgtop_version], AC_INIT([libgtop], [libgtop_version],
[https://gitlab.gnome.org/GNOME/libgtop/-/issues/]) [http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop])
AC_CONFIG_SRCDIR(copyright.txt) AC_CONFIG_SRCDIR(copyright.txt)
AC_CONFIG_HEADERS(config.h) AC_CONFIG_HEADERS(config.h)
AC_CANONICAL_HOST AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([-Wno-portability tar-ustar no-dist-gzip dist-xz])
AM_SILENT_RULES([yes])
AC_CONFIG_MACRO_DIR([m4])
GOBJECT_INTROSPECTION_CHECK([0.6.7])
AM_INIT_AUTOMAKE
AC_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}]) AC_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}])
AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version]) AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version])
@@ -71,16 +67,6 @@ dnl Most people should have a working perl interpreter on their system
AC_CHECK_PROGS(PERL, perl5 perl) AC_CHECK_PROGS(PERL, perl5 perl)
test -z "$PERL" && AC_MSG_ERROR([You need to have a working perl interpreter.]) test -z "$PERL" && AC_MSG_ERROR([You need to have a working perl interpreter.])
case "${host_os}" in
linux*)
AC_CHECK_TOOL(LSBLK,lsblk)
AC_CHECK_TOOL(SED,sed)
AC_CHECK_TOOL(TR,tr)
;;
*)
;;
esac
AC_CHECK_TOOL(CC,gcc) AC_CHECK_TOOL(CC,gcc)
AC_CHECK_TOOL(RANLIB,ranlib) AC_CHECK_TOOL(RANLIB,ranlib)
AC_CHECK_TOOL(AS,as) AC_CHECK_TOOL(AS,as)
@@ -102,9 +88,8 @@ GNOME_LIBGTOP_SYSDEPS
GNOME_LIBGTOP_TYPES GNOME_LIBGTOP_TYPES
GLIB_REQUIRED=2.6.0 GLIB_REQUIRED=2.6.0
GOBJECT_REQUIRED=2.26.0
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GOBJECT_REQUIRED) PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_LIBS)
@@ -120,12 +105,10 @@ AC_TYPE_OFF_T
AC_TYPE_PID_T AC_TYPE_PID_T
AC_TYPE_SIZE_T AC_TYPE_SIZE_T
AC_STRUCT_ST_RDEV AC_STRUCT_ST_RDEV
AC_HEADER_TIME
AC_STRUCT_TM AC_STRUCT_TM
AC_TYPE_UID_T AC_TYPE_UID_T
dnl Check sys/time.h
AC_CHECK_HEADERS([sys/time.h])
dnl For SunOS dnl For SunOS
AC_CHECK_TYPE(ssize_t, int) AC_CHECK_TYPE(ssize_t, int)
AC_CHECK_HEADERS(memory.h) AC_CHECK_HEADERS(memory.h)
@@ -225,18 +208,18 @@ AC_FUNC_ALLOCA
AC_FUNC_MMAP AC_FUNC_MMAP
AC_TYPE_SIGNAL AC_TYPE_SIGNAL
AC_FUNC_STRFTIME AC_FUNC_STRFTIME
AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv sbrk strdup strtoul uname) AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname)
# FIXME: Remove AM_GNU_GETTEXT_VERSION once autoreconf supports REQUIRE_VERSION IT_PROG_INTLTOOL([0.35.0])
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
GETTEXT_PACKAGE=libgtop-2.0 GETTEXT_PACKAGE=libgtop-2.0
AC_SUBST(GETTEXT_PACKAGE) AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[Define to the gettext package used by the library]) [Define to the gettext package used by the library])
AM_GLIB_GNU_GETTEXT
GLIB_DEFINE_LOCALEDIR([GTOPLOCALEDIR])
AC_PATH_XTRA AC_PATH_XTRA
dnl For Solaris dnl For Solaris
@@ -275,8 +258,7 @@ dnl Debugging
AC_ARG_ENABLE(debug, AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug], AS_HELP_STRING([--enable-debug],
[Turn on debugging @<:@default=no@:>@]), [Turn on debugging @<:@default=no@:>@]),
AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]), AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]))
AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 0, [Define to disable debugging]))
AC_ARG_ENABLE(fatal-warnings, AC_ARG_ENABLE(fatal-warnings,
AS_HELP_STRING([--enable-fatal-warnings], AS_HELP_STRING([--enable-fatal-warnings],
[Make all warnings fatal @<:@debug=no@:>@]), [Make all warnings fatal @<:@debug=no@:>@]),
@@ -284,8 +266,16 @@ AC_ARG_ENABLE(fatal-warnings,
[Define to enable fatal warnings])) [Define to enable fatal warnings]))
dnl These definitions are expanded in make. dnl These definitions are expanded in make.
LIBGTOP_LIBS='-L=$(libdir)' LIBGTOP_LIBS='-L$(libdir)'
LIBGTOP_INCS='-I=$(includedir)/libgtop-2.0' LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
if test x$libgtop_use_machine_h = xyes ; then
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H"
fi
if test x$libgtop_smp = xyes ; then
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SMP"
fi
if test x$libgtop_have_sysinfo = xyes ; then if test x$libgtop_have_sysinfo = xyes ; then
LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO" LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
@@ -297,8 +287,8 @@ libgtop_save_prefix="$prefix"
libgtop_save_exec_prefix="$exec_prefix" libgtop_save_exec_prefix="$exec_prefix"
test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$prefix" = xNONE && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix=$prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix
LIBGTOP_BINDIR=`eval echo "${libexecdir}"` LIBGTOP_BINDIR=`eval echo "${bindir}"`
LIBGTOP_SERVER=`eval echo "${libexecdir}/libgtop_server2"` LIBGTOP_SERVER=`eval echo "${bindir}/libgtop_server2"`
prefix="$libgtop_save_prefix" prefix="$libgtop_save_prefix"
exec_prefix="$libgtop_save_exec_prefix" exec_prefix="$libgtop_save_exec_prefix"
@@ -315,17 +305,24 @@ LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS"
LIBGTOP_LIBS="$LIBGTOP_LIBS" LIBGTOP_LIBS="$LIBGTOP_LIBS"
LIBGTOP_LIBS="$LIBGTOP_LIBS"
machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir"
AC_SUBST(machine_incs)
if test "$GCC" = "yes" ; then if test "$GCC" = "yes" ; then
CFLAGS="\ CFLAGS="\
-Winline \ -Winline \
-Wall \ -Wall \
-std=gnu89 \
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
-Wnested-externs -Wpointer-arith \ -Wnested-externs -Wpointer-arith \
-Wcast-align -Wsign-compare \ -Wcast-align -Wsign-compare \
$CFLAGS" $CFLAGS"
fi fi
AM_CPPFLAGS="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS" INCLUDES="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS"
# Add various defines to the config.h file ... # Add various defines to the config.h file ...
AH_VERBATIM([_GNU_SOURCE], AH_VERBATIM([_GNU_SOURCE],
@@ -344,7 +341,7 @@ AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code],
AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"], AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"],
[The path to the libgtop server]) [The path to the libgtop server])
AC_SUBST(AM_CPPFLAGS) AC_SUBST(INCLUDES)
AC_SUBST(LIBGTOP_EXTRA_LIBS) AC_SUBST(LIBGTOP_EXTRA_LIBS)
AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_LIBS)
@@ -384,8 +381,6 @@ sysdeps/solaris/Makefile
sysdeps/aix/Makefile sysdeps/aix/Makefile
sysdeps/bsd/Makefile sysdeps/bsd/Makefile
sysdeps/darwin/Makefile sysdeps/darwin/Makefile
sysdeps/cygwin/Makefile
sysdeps/openbsd/Makefile
src/Makefile src/Makefile
src/daemon/Makefile src/daemon/Makefile
lib/Makefile lib/Makefile

View File

@@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */

2
debian/rules.in vendored
View File

@@ -10,7 +10,7 @@
i=$(shell pwd)/debian/tmp i=$(shell pwd)/debian/tmp
b=$(shell pwd)/debian/build b=$(shell pwd)/debian/build
configure: configure.ac configure: configure.in
@echo "--- Making configure script and configuring" @echo "--- Making configure script and configuring"
chmod +x autogen.sh chmod +x autogen.sh
./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \ ./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \

View File

@@ -49,7 +49,6 @@ System Dependent Functions
* glibtop_proc_map:: Process Memory Maps. * glibtop_proc_map:: Process Memory Maps.
* glibtop_netload:: Network Load. * glibtop_netload:: Network Load.
* glibtop_ppp:: PPP Usage. * glibtop_ppp:: PPP Usage.
* glibtop_disk:: DISK Usage.
Common Functions Common Functions

View File

@@ -28,7 +28,6 @@
* glibtop_proc_map:: Process Memory Maps. * glibtop_proc_map:: Process Memory Maps.
* glibtop_netload:: Network Load. * glibtop_netload:: Network Load.
* glibtop_ppp:: PPP Usage. * glibtop_ppp:: PPP Usage.
* glibtop_disk:: DISK Usage.
@end menu @end menu
@node glibtop_cpu, glibtop_mem, System Dependent, System Dependent @node glibtop_cpu, glibtop_mem, System Dependent, System Dependent
@@ -744,7 +743,7 @@ The description above is taken from the manual page of the @file{/proc}
filesystem under Linux and is a little bit confusing, so I make this clear filesystem under Linux and is a little bit confusing, so I make this clear
here. here.
@strong{A word for people porting LibGTop to other systems:} @strong{Note for people porting LibGTop to other systems:}
Every operating system has its own idea about the memory usage of a process Every operating system has its own idea about the memory usage of a process
and also system utilities like @code{ps} show different things on different and also system utilities like @code{ps} show different things on different
systems. systems.
@@ -1344,7 +1343,7 @@ enum @{
@end example @end example
@page @page
@node glibtop_ppp, glibtop_disk, glibtop_netload, System Dependent @node glibtop_ppp, , glibtop_netload, System Dependent
@subsection PPP Statistics @subsection PPP Statistics
Library function @code{glibtop_get_ppp}: Library function @code{glibtop_get_ppp}:
@@ -1404,62 +1403,6 @@ We're currently offline.
We're currently online. We're currently online.
@end table @end table
@page
@node glibtop_disk, , glibtop_ppp, System Dependent
@subsection DISK Usage
Library function @code{glibtop_get_disk}:
@example
@cartouche
void glibtop_get_disk (glibtop_disk *buf);
void glibtop_get_disk_l (glibtop *server, glibtop_disk *buf);
@end cartouche
@end example
Declaration of @code{glibtop_disk} in @file{<glibtop/disk.h>}:
@example
@cartouche
typedef struct _glibtop_disk glibtop_disk;
struct _glibtop_disk
@{
xdisk_sectors_read [GLIBTOP_NDISK],
xdisk_time_read [GLIBTOP_NDISK],
xdisk_sectors_write [GLIBTOP_NDISK],
xdisk_time_write [GLIBTOP_NDISK],
@};
@end cartouche
@end example
All DISK reads and writes are measured by @dfn{sectors} which are normally 512 bytes each.
All disk time are measured in milliseconds which is 1/1000th of a second.
@table @code
@item xdisk_sectors_read
Number of sectors read since system boot.
@item xdisk_time_read
Number of milliseconds spent reading since system boot.
@item xdisk_sectors_write
Number of sectors written since system boot.
@item xdisk_time_write
Number of milliseconds spent writing since system boot.
@end table
The @samp{xdisk_} are values from arrays of @code{GLIBTOP_NDISK} (defined in
@file{<glibtop/disk.h>}) elements and contain one value for each DISK
in the system.
Please note that all of the disk values are absolute values measured in
certain units since system boot. To get bandwidth values (bytes/s), you need to call @code{glibtop_disk}, save the
result, wait some time and then call it again and divide the differences of
the two values by the time spent reading or writing.
@page @page
@node Common Functions, Library Functions, System Dependent, Reference Manual @node Common Functions, Library Functions, System Dependent, Reference Manual
@section Common Functions @section Common Functions

View File

@@ -46,9 +46,9 @@ HTML_IMAGES=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget # Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties. # signals and properties.
# e.g. AM_CPPFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
AM_CPPFLAGS= INCLUDES=
GTKDOC_LIBS= GTKDOC_LIBS=
# This includes the standard gtk-doc make rules, copied by gtkdocize. # This includes the standard gtk-doc make rules, copied by gtkdocize.

View File

@@ -36,8 +36,8 @@
Documentation License</citetitle> from the Free Software Documentation License</citetitle> from the Free Software
Foundation by visiting <ulink type="http" Foundation by visiting <ulink type="http"
url="http://www.fsf.org">their Web site</ulink> or by writing url="http://www.fsf.org">their Web site</ulink> or by writing
to: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, to: Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA.</para> Boston, MA 02111-1307, USA.</para>
<para>Many of the names used by companies to distinguish their <para>Many of the names used by companies to distinguish their
products and services are claimed as trademarks. Where those products and services are claimed as trademarks. Where those

View File

@@ -29,7 +29,6 @@ glibtop_close_p
GLIBTOP_CMND_QUIT GLIBTOP_CMND_QUIT
GLIBTOP_CMND_SYSDEPS GLIBTOP_CMND_SYSDEPS
GLIBTOP_CMND_CPU GLIBTOP_CMND_CPU
GLIBTOP_CMND_DISK
GLIBTOP_CMND_MEM GLIBTOP_CMND_MEM
GLIBTOP_CMND_SWAP GLIBTOP_CMND_SWAP
GLIBTOP_CMND_UPTIME GLIBTOP_CMND_UPTIME
@@ -220,8 +219,17 @@ glibtop_set_parameter_l
<INCLUDE>glibtop/procargs.h</INCLUDE> <INCLUDE>glibtop/procargs.h</INCLUDE>
<SECTION> <SECTION>
<FILE>procargs</FILE> <FILE>procargs</FILE>
GLIBTOP_PROC_ARGS_SIZE
GLIBTOP_MAX_PROC_ARGS
glibtop_proc_args glibtop_proc_args
glibtop_get_proc_args_l
glibtop_get_proc_args glibtop_get_proc_args
glibtop_get_proc_args_r
glibtop_init_proc_args_p
glibtop_get_proc_args_p
glibtop_init_proc_args_s
glibtop_get_proc_args_s
glibtop_get_proc_argv_l
glibtop_get_proc_argv glibtop_get_proc_argv
</SECTION> </SECTION>
@@ -412,8 +420,26 @@ glibtop_get_proc_uid_s
<INCLUDE>glibtop/proctime.h</INCLUDE> <INCLUDE>glibtop/proctime.h</INCLUDE>
<SECTION> <SECTION>
<FILE>proctime</FILE> <FILE>proctime</FILE>
GLIBTOP_PROC_TIME_START_TIME
GLIBTOP_PROC_TIME_RTIME
GLIBTOP_PROC_TIME_UTIME
GLIBTOP_PROC_TIME_STIME
GLIBTOP_PROC_TIME_CUTIME
GLIBTOP_PROC_TIME_CSTIME
GLIBTOP_PROC_TIME_TIMEOUT
GLIBTOP_PROC_TIME_IT_REAL_VALUE
GLIBTOP_PROC_TIME_FREQUENCY
GLIBTOP_PROC_TIME_XCPU_UTIME
GLIBTOP_PROC_TIME_XCPU_STIME
GLIBTOP_MAX_PROC_TIME
glibtop_proc_time glibtop_proc_time
glibtop_get_proc_time glibtop_get_proc_time
glibtop_get_proc_time_r
glibtop_get_proc_time_l
glibtop_init_proc_time_p
glibtop_get_proc_time_p
glibtop_init_proc_time_s
glibtop_get_proc_time_s
</SECTION> </SECTION>
<INCLUDE>glibtop/signal.h</INCLUDE> <INCLUDE>glibtop/signal.h</INCLUDE>
@@ -489,6 +515,10 @@ glibtop_send_version
<INCLUDE>glibtop/proclist.h</INCLUDE> <INCLUDE>glibtop/proclist.h</INCLUDE>
<SECTION> <SECTION>
<FILE>proclist</FILE> <FILE>proclist</FILE>
GLIBTOP_PROCLIST_NUMBER
GLIBTOP_PROCLIST_TOTAL
GLIBTOP_PROCLIST_SIZE
GLIBTOP_MAX_PROCLIST
GLIBTOP_KERN_PROC_ALL GLIBTOP_KERN_PROC_ALL
GLIBTOP_KERN_PROC_PID GLIBTOP_KERN_PROC_PID
GLIBTOP_KERN_PROC_PGRP GLIBTOP_KERN_PROC_PGRP
@@ -502,6 +532,12 @@ GLIBTOP_EXCLUDE_SYSTEM
GLIBTOP_EXCLUDE_NOTTY GLIBTOP_EXCLUDE_NOTTY
glibtop_proclist glibtop_proclist
glibtop_get_proclist glibtop_get_proclist
glibtop_get_proclist_r
glibtop_get_proclist_l
glibtop_init_proclist_p
glibtop_get_proclist_p
glibtop_init_proclist_s
glibtop_get_proclist_s
</SECTION> </SECTION>
<INCLUDE>glibtop/sem_limits.h</INCLUDE> <INCLUDE>glibtop/sem_limits.h</INCLUDE>
@@ -679,25 +715,6 @@ glibtop_init_cpu_s
glibtop_get_cpu_s glibtop_get_cpu_s
</SECTION> </SECTION>
<INCLUDE>glibtop/disk.h</INCLUDE>
<SECTION>
<FILE>disk</FILE>
LIBTOP_XDISK_SECTORS_READ
GLIBTOP_XDISK_TIME_READ
GLIBTOP_XDISK_SECTORS_WRITE
GLIBTOP_XDISK_TIME_WRITE
GLIBTOP_MAX_DISK
GLIBTOP_NDISK
glibtop_disk
glibtop_get_disk
glibtop_get_disk_r
glibtop_get_disk_l
glibtop_init_disk_p
glibtop_get_disk_p
glibtop_init_disk_s
glibtop_get_disk_s
</SECTION>
<INCLUDE>glibtop/swap.h</INCLUDE> <INCLUDE>glibtop/swap.h</INCLUDE>
<SECTION> <SECTION>
<FILE>swap</FILE> <FILE>swap</FILE>

View File

@@ -1,17 +1,14 @@
## Process this file with automake to produce Makefile.in ## Process this file with automake to produce Makefile.in
AM_CPPFLAGS = \ LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
-I$(top_srcdir) \
-I$(top_srcdir)/include \
-I$(top_srcdir)/sysdeps/$(sysdeps_dir) \
-DGTOPLOCALEDIR=\"$(localedir)\" \
$(GLIB_CFLAGS)
AM_LDFLAGS = $(LIBGTOP_EXTRA_LIBS) INCLUDES = @INCLUDES@
DEFS = @DEFS@
noinst_PROGRAMS = first second pprint procargs df netlist \ noinst_PROGRAMS = first second pprint procargs df netlist \
mountlist procmap netload sysdeps timings \ mountlist procmap netload sysdeps timings \
openfiles smp proclist free wd affinity disk diskio sysinfo openfiles smp proclist mem wd affinity
first_SOURCES = first.c first_SOURCES = first.c
first_LDADD = $(top_builddir)/lib/libgtop-2.0.la first_LDADD = $(top_builddir)/lib/libgtop-2.0.la
@@ -34,9 +31,6 @@ mountlist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
smp_SOURCES = smp.c smp_SOURCES = smp.c
smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm smp_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
disk_SOURCES = disk.c
disk_LDADD = $(top_builddir)/lib/libgtop-2.0.la -lm
timings_SOURCES = timings.c timings_SOURCES = timings.c
timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la timings_LDADD = $(top_builddir)/lib/libgtop-2.0.la
@@ -46,7 +40,6 @@ pprint_LDADD = $(top_builddir)/lib/libgtop-2.0.la
procargs_SOURCES = procargs.c procargs_SOURCES = procargs.c
procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la procargs_LDADD = $(top_builddir)/lib/libgtop-2.0.la
df_SOURCES = df.c df_SOURCES = df.c
df_LDADD = $(top_builddir)/lib/libgtop-2.0.la df_LDADD = $(top_builddir)/lib/libgtop-2.0.la
@@ -62,14 +55,8 @@ proclist_LDADD = $(top_builddir)/lib/libgtop-2.0.la
wd_SOURCES = wd.c wd_SOURCES = wd.c
wd_LDADD = $(top_builddir)/lib/libgtop-2.0.la wd_LDADD = $(top_builddir)/lib/libgtop-2.0.la
free_SOURCE = mem.c mem_SOURCE = mem.c
free_LDADD = $(top_builddir)/lib/libgtop-2.0.la mem_LDADD = $(top_builddir)/lib/libgtop-2.0.la
affinity_SOURCES = affinity.c affinity_SOURCES = affinity.c
affinity_LDADD = $(top_builddir)/lib/libgtop-2.0.la affinity_LDADD = $(top_builddir)/lib/libgtop-2.0.la
diskio_SOURCES = diskio.c
diskio_LDADD = $(top_builddir)/lib/libgtop-2.0.la
sysinfo_SOURCES = sysinfo.c
sysinfo_LDADD = $(top_builddir)/lib/libgtop-2.0.la

View File

@@ -13,45 +13,28 @@ static void print_fsusage(const char *mountpoint)
{ {
glibtop_fsusage buf; glibtop_fsusage buf;
enum { SIZE, USED, FREE, AVAIL, READ, WRITE, MAX };
char **a = g_new0(char*, MAX);
glibtop_get_fsusage(&buf, mountpoint); glibtop_get_fsusage(&buf, mountpoint);
printf("%-30s %10llu %10llu %10llu %5.1f %10llu %10llu\n",
#define I(X) a[(X)] mountpoint,
I(SIZE) = g_format_size_full(buf.blocks * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); buf.blocks * buf.block_size >> 20,
I(USED) = g_format_size_full((buf.blocks - buf.bavail) * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); (buf.blocks - buf.bavail) * buf.block_size >> 20,
I(FREE) = g_format_size_full(buf.bfree * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); buf.bavail * buf.block_size >> 20,
I(AVAIL) = g_format_size_full(buf.bavail * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); (buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
I(READ) = g_format_size_full(buf.read, G_FORMAT_SIZE_IEC_UNITS); buf.read,
I(WRITE) = g_format_size_full(buf.write, G_FORMAT_SIZE_IEC_UNITS); buf.write
);
printf("%#7x %10s %10s %10s %10s %5.1f%% %10s %10s %8lu %8lu %s\n",
(unsigned)buf.flags,
I(SIZE),
I(USED),
I(FREE),
I(AVAIL),
(buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0),
I(READ),
I(WRITE),
(unsigned long)buf.files,
(unsigned long)buf.ffree,
mountpoint
);
g_strfreev(a);
} }
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
glibtop_mountlist buf; glibtop_mountlist buf;
glibtop_init(); glibtop_init();
printf("%-6s %10s %10s %10s %10s %5s %10s %10s %10s %10s %s\n", printf("%-30s %10s %10s %10s %5s %10s %10s\n",
"(flags)", "Size", "Used", "Free", "Avail", "Use%", "Read", "Write", "Files", "Files Free", "Mountpoint"); "Filesystem", "Size", "Used", "Avail", "Use%", "Read", "Write");
if (argc > 1) { if (argc > 1) {
while (*++argv) while (*++argv)

View File

@@ -1,65 +0,0 @@
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by James Dominic P. Guana <guana.histark@gmail.com>, May 2020.
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include <config.h>
#include <locale.h>
#include <libintl.h>
#include <math.h>
#include <stdio.h>
#include <glibtop.h>
#include <glibtop/disk.h>
int
main (int argc, char *argv [])
{
glibtop_disk disk;
char separator [BUFSIZ];
int ndisk, i;
glibtop_init();
glibtop_get_disk (&disk);
ndisk = glibtop_global_server->ndisk ? glibtop_global_server->ndisk : 1;
memset (separator, '-', 91);
separator [92] = '\0';
printf("\n\n");
printf ("ELAPSE ");
printf ("Read (b) Time Read (ms) Write (b) Time Write (ms)\n");
printf ("%s\n", separator);
for (i = 0; i < ndisk; i++) {
printf ("DISK %3d : %15lu %15lu %15lu %15lu\n", i,
(unsigned long) disk.xdisk_sectors_read [i] * 512,
(unsigned long) disk.xdisk_time_read [i],
(unsigned long) disk.xdisk_sectors_write [i] * 512,
(unsigned long) disk.xdisk_time_write [i]);
}
printf ("%s\n\n\n", separator);
exit (0);
}

View File

@@ -1,39 +0,0 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <glibtop.h>
#include <glibtop/procio.h>
#include <stdlib.h>
#include <unistd.h>
static void show_diskio(pid_t pid)
{
glibtop_proc_io io;
glibtop_get_proc_io (&io, pid);
printf("<%ld>\t", (long)pid);
printf("flags: %08lx disk_rchar : %lu, disk_wchar : %lu, disk_read_bytes : %lu, disk_write_bytes : %lu\n", (unsigned long)io.flags, io.disk_rchar, io.disk_wchar, io.disk_rbytes, io.disk_wbytes);
}
int main(int argc, char **argv)
{
glibtop_init();
while(*++argv)
{
pid_t pid = strtol(*argv, NULL, 10);
show_diskio(pid);
}
glibtop_close();
return 0;
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@@ -1,44 +0,0 @@
#include <glibtop.h>
#include <glibtop/mem.h>
#include <glibtop/swap.h>
#include <glib.h>
#include <unistd.h>
static unsigned mb(guint64 n)
{
return n >> 20;
}
int main(int argc, char **argv)
{
glibtop_mem mem;
glibtop_swap swap;
glibtop_init();
glibtop_get_mem(&mem);
glibtop_get_swap(&swap);
printf(" total used free shared buff/cache available\n");
printf("%-7s %11u %11u %11u %11u %11u %11u\n",
"Mem:",
mb(mem.total),
mb(mem.used - mem.buffer - mem.cached),
mb(mem.free),
mb(mem.shared),
mb(mem.buffer + mem.cached),
mb(mem.total - mem.user));
printf("%-7s %11u %11u %11u\n",
"Swap:",
mb(swap.total),
mb(swap.used),
mb(swap.free));
glibtop_close();
return 0;
}

21
examples/mem.c Normal file
View File

@@ -0,0 +1,21 @@
#include <glibtop.h>
#include <glibtop/mem.h>
#include <glib.h>
#include <unistd.h>
int main(int argc, char **argv)
{
glibtop_mem buf;
glibtop_init();
g_print("%lx\n", glibtop_global_server->features);
glibtop_get_mem(&buf);
glibtop_close();
return 0;
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -71,9 +71,7 @@ main (int argc, char *argv [])
printf ("Host = '%s' - %u\n\n", buffer, port); printf ("Host = '%s' - %u\n\n", buffer, port);
#ifdef HAVE_SBRK
printf ("sbrk (0) = %p\n\n", sbrk (0)); printf ("sbrk (0) = %p\n\n", sbrk (0));
#endif
for (c = 0; c < PROFILE_COUNT; c++) { for (c = 0; c < PROFILE_COUNT; c++) {
mount_entries = glibtop_get_mountlist (&mount_list, 1); mount_entries = glibtop_get_mountlist (&mount_list, 1);
@@ -81,9 +79,7 @@ main (int argc, char *argv [])
g_free (mount_entries); g_free (mount_entries);
} }
#ifdef HAVE_SBRK
printf ("sbrk (0) = %p\n\n", sbrk (0)); printf ("sbrk (0) = %p\n\n", sbrk (0));
#endif
mount_entries = glibtop_get_mountlist (&mount_list, 1); mount_entries = glibtop_get_mountlist (&mount_list, 1);
@@ -103,7 +99,7 @@ main (int argc, char *argv [])
glibtop_get_fsusage (&fsusage, glibtop_get_fsusage (&fsusage,
mount_entries [index].mountdir); mount_entries [index].mountdir);
printf ("%-16s %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9d\n", printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n",
mount_entries [index].mountdir, mount_entries [index].mountdir,
fsusage.blocks, fsusage.bfree, fsusage.blocks, fsusage.bfree,
fsusage.bavail, fsusage.files, fsusage.bavail, fsusage.files,
@@ -112,9 +108,7 @@ main (int argc, char *argv [])
g_free (mount_entries); g_free (mount_entries);
#ifdef HAVE_SBRK
printf ("\nsbrk (0) = %p\n\n", sbrk (0)); printf ("\nsbrk (0) = %p\n\n", sbrk (0));
#endif
glibtop_close (); glibtop_close ();

View File

@@ -14,8 +14,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -51,7 +51,7 @@ static char* hwaddress_format_for_display(glibtop_netload *buf)
for(i = 0; i < sizeof buf->hwaddress; ++i) for(i = 0; i < sizeof buf->hwaddress; ++i)
g_string_append_printf(repr, "%02X:", g_string_append_printf(repr, "%02X:",
((unsigned char*)buf->hwaddress)[i]); (unsigned) ((char*)buf->hwaddress)[i]);
repr->str [ repr->len - 1] = ' '; repr->str [ repr->len - 1] = ' ';
str = g_string_free(repr, FALSE); str = g_string_free(repr, FALSE);
@@ -66,7 +66,7 @@ main (int argc, char *argv [])
glibtop_netload netload; glibtop_netload netload;
unsigned method, count, port; unsigned method, count, port;
struct in_addr addr, subnet; struct in_addr addr, subnet;
char address_string[INET_ADDRSTRLEN], subnet_string[INET_ADDRSTRLEN]; char *address_string, *subnet_string;
char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN]; char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN];
char *hwaddress_string; char *hwaddress_string;
char buffer [BUFSIZ]; char buffer [BUFSIZ];
@@ -105,8 +105,9 @@ main (int argc, char *argv [])
addr.s_addr = netload.address; addr.s_addr = netload.address;
subnet.s_addr = netload.subnet; subnet.s_addr = netload.subnet;
inet_ntop (AF_INET, &addr, address_string, INET_ADDRSTRLEN); address_string = g_strdup (inet_ntoa (addr));
inet_ntop (AF_INET, &subnet, subnet_string, INET_ADDRSTRLEN); subnet_string = g_strdup (inet_ntoa (subnet));
inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN); inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN);
inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN); inet_ntop (AF_INET6, netload.prefix6, prefix6_string, INET6_ADDRSTRLEN);
@@ -117,22 +118,22 @@ main (int argc, char *argv [])
"\tAddress:\t\t0x%08x - %s\n" "\tAddress:\t\t0x%08x - %s\n"
"\tSubnet:\t\t\t0x%08x - %s\n\n" "\tSubnet:\t\t\t0x%08x - %s\n\n"
"\tMTU:\t\t\t%d\n" "\tMTU:\t\t\t%d\n"
"\tCollisions:\t\t%" G_GUINT64_FORMAT "\n\n" "\tCollisions:\t\t%llu\n\n"
"\tPackets In:\t\t%" G_GUINT64_FORMAT "\n" "\tPackets In:\t\t%llu\n"
"\tPackets Out:\t\t%" G_GUINT64_FORMAT "\n" "\tPackets Out:\t\t%llu\n"
"\tPackets Total:\t\t%" G_GUINT64_FORMAT "\n\n" "\tPackets Total:\t\t%llu\n\n"
"\tBytes In:\t\t%" G_GUINT64_FORMAT "\n" "\tBytes In:\t\t%llu\n"
"\tBytes Out:\t\t%" G_GUINT64_FORMAT "\n" "\tBytes Out:\t\t%llu\n"
"\tBytes Total:\t\t%" G_GUINT64_FORMAT "\n\n" "\tBytes Total:\t\t%llu\n\n"
"\tErrors In:\t\t%" G_GUINT64_FORMAT "\n" "\tErrors In:\t\t%llu\n"
"\tErrors Out:\t\t%" G_GUINT64_FORMAT "\n" "\tErrors Out:\t\t%llu\n"
"\tErrors Total:\t\t%" G_GUINT64_FORMAT "\n\n" "\tErrors Total:\t\t%llu\n\n"
"\tAddress6:\t\t%s\n" "\tAddress6:\t\t%s\n"
"\tPrefix6:\t\t%s\n" "\tPrefix6:\t\t%s\n"
"\tScope6:\t\t\t%#03x\n\n" "\tScope6:\t\t\t%#03x\n\n"
"\tHarware Address:\t%s\n\n", "\tHarware Address:\t%s\n\n",
(unsigned long long)netload.flags, netload.flags,
(unsigned long long)netload.if_flags, netload.if_flags,
(guint32) netload.address, address_string, (guint32) netload.address, address_string,
(guint32) netload.subnet, subnet_string, (guint32) netload.subnet, subnet_string,
netload.mtu, netload.mtu,
@@ -152,6 +153,9 @@ main (int argc, char *argv [])
hwaddress_string); hwaddress_string);
g_free (address_string);
g_free (subnet_string);
glibtop_close (); glibtop_close ();
exit (0); exit (0);

View File

@@ -3,7 +3,6 @@
#endif #endif
#include <glibtop.h> #include <glibtop.h>
#include <glibtop/sysinfo.h>
#include <glibtop/union.h> #include <glibtop/union.h>
@@ -18,68 +17,21 @@
#define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \ #define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \
(unsigned long) sizeof buf) (unsigned long) sizeof buf)
#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = %" FORMAT "\n", \ #define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA) (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA)
#define PPRINT_GUINT64(DATA) PPRINT(DATA, G_GUINT64_FORMAT) #define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \
#define PPRINT_FLAGS(DATA) printf("\t%4lu B %3lu " "flags" " = " "%#llx" "\n", \
(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), (unsigned long long)buf.DATA)
#define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \
size_t i; \
printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
(unsigned long) sizeof buf.ARRAY, \
(unsigned long) buf_offsetof(ARRAY), \
(unsigned long) G_N_ELEMENTS(buf.ARRAY)); \
for (i = 0; i < (SIZE); ++i) { \
if (!buf.ARRAY[i] && i < (SIZE - 1) && !buf.ARRAY[i + 1]) { \
do { i++; } while (i < SIZE && !buf.ARRAY[i]); \
printf("..., "); \
} else { \
printf(".%zd = %" FORMAT ", ", i, buf.ARRAY[i]); \
} \
} \
printf("}\n"); \
} while(0)
#define PPRINT_ENTRY_ARRAY(ARRAY, SIZE) do { \
size_t i; \ size_t i; \
printf("\t%4lu B " #ARRAY "[%lu/%lu] = { \n", \ printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \
(unsigned long) sizeof buf->ARRAY, (unsigned long)(SIZE), \ (unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\
(unsigned long) G_N_ELEMENTS(buf->ARRAY)); \ (unsigned long) G_N_ELEMENTS(buf.ARRAY)); \
for(i = 0; i < SIZE; ++i) { \ for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \
if (buf->ARRAY[i].values) { \ printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \
printf ("\t[ "); \
PPRINT_HASHTABLE(buf->ARRAY[i].values); \
printf ("]\n"); \
} \
} \
printf("} "); \
} while(0)
#define PPRINT_HASHTABLE(HASHTABLE) do { \
g_hash_table_foreach (HASHTABLE, (GHFunc)pprint_hashtable_item, NULL); \
} while(0) } while(0)
#define FOOTER_PPRINT() putchar('\n'); #define FOOTER_PPRINT() putchar('\n');
static void pprint_hashtable_item(gchar* key, gchar* value, gpointer user_data)
{
printf ("'%s': '%s', ", key, value);
}
static void pprint_get_sysinfo(void)
{
const glibtop_sysinfo *buf;
buf = glibtop_get_sysinfo();
HEADER_PPRINT(glibtop_get_sysinfo);
//PPRINT_FLAGS(flags);
// PPRINT_GUINT64(ncpu);
PPRINT_ENTRY_ARRAY(cpuinfo, buf->ncpu);
FOOTER_PPRINT();
}
static void pprint_get_cpu(void) static void pprint_get_cpu(void)
{ {
@@ -88,25 +40,25 @@ static void pprint_get_cpu(void)
glibtop_get_cpu(&buf); glibtop_get_cpu(&buf);
HEADER_PPRINT(glibtop_get_cpu); HEADER_PPRINT(glibtop_get_cpu);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(total); PPRINT(total, "%llu");
PPRINT_GUINT64(user); PPRINT(user, "%llu");
PPRINT_GUINT64(nice); PPRINT(nice, "%llu");
PPRINT_GUINT64(sys); PPRINT(sys, "%llu");
PPRINT_GUINT64(idle); PPRINT(idle, "%llu");
PPRINT_GUINT64(iowait); PPRINT(iowait, "%llu");
PPRINT_GUINT64(irq); PPRINT(irq, "%llu");
PPRINT_GUINT64(softirq); PPRINT(softirq, "%llu");
PPRINT_GUINT64(frequency); PPRINT(frequency, "%llu");
PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu");
PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, G_GUINT64_FORMAT); PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu");
PPRINT_FLAGS(xcpu_flags); PPRINT(xcpu_flags, "%llx");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -120,15 +72,15 @@ static void pprint_get_fsusage(const char *mountpoint)
HEADER_PPRINT(glibtop_get_fsusage); HEADER_PPRINT(glibtop_get_fsusage);
printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint); printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(blocks); PPRINT(blocks, "%llu");
PPRINT_GUINT64(bfree); PPRINT(bfree, "%llu");
PPRINT_GUINT64(bavail); PPRINT(bavail, "%llu");
PPRINT_GUINT64(files); PPRINT(files, "%llu");
PPRINT_GUINT64(ffree); PPRINT(ffree, "%llu");
PPRINT(block_size, "u"); PPRINT(block_size, "%u");
PPRINT_GUINT64(read); PPRINT(read, "%llu");
PPRINT_GUINT64(write); PPRINT(write, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -141,11 +93,11 @@ static void pprint_get_loadavg(void)
glibtop_get_loadavg(&buf); glibtop_get_loadavg(&buf);
HEADER_PPRINT(glibtop_get_loadavg); HEADER_PPRINT(glibtop_get_loadavg);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_ARRAY(loadavg, 3, "f"); PPRINT_ARRAY(loadavg, 3, "%f");
PPRINT_GUINT64(nr_running); PPRINT(nr_running, "%llu");
PPRINT_GUINT64(nr_tasks); PPRINT(nr_tasks, "%llu");
PPRINT_GUINT64(last_pid); PPRINT(last_pid, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -158,15 +110,15 @@ static void pprint_get_mem(void)
glibtop_get_mem(&buf); glibtop_get_mem(&buf);
HEADER_PPRINT(glibtop_get_mem); HEADER_PPRINT(glibtop_get_mem);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(total); PPRINT(total, "%llu");
PPRINT_GUINT64(used); PPRINT(used, "%llu");
PPRINT_GUINT64(free); PPRINT(free, "%llu");
PPRINT_GUINT64(shared); PPRINT(shared, "%llu");
PPRINT_GUINT64(buffer); PPRINT(buffer, "%llu");
PPRINT_GUINT64(cached); PPRINT(cached, "%llu");
PPRINT_GUINT64(user); PPRINT(user, "%llu");
PPRINT_GUINT64(locked); PPRINT(locked, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -182,12 +134,12 @@ static void pprint_get_mountlist(gboolean allfs)
HEADER_PPRINT(glibtop_get_mountlist); HEADER_PPRINT(glibtop_get_mountlist);
printf("glibtop_get_mountlist (allfs = %d)\n", allfs); printf("glibtop_get_mountlist (allfs = %d)\n", allfs);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(number); PPRINT(number, "%llu");
PPRINT_GUINT64(total); PPRINT(total, "%llu");
PPRINT_GUINT64(size); PPRINT(size, "%llu");
printf("\t%4" G_GUINT64_FORMAT " B entries[%" G_GUINT64_FORMAT "] = \n\t\t{\n", buf.total, buf.number); printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number);
for(i = 0; i < buf.number; ++i) for(i = 0; i < buf.number; ++i)
{ {
@@ -195,7 +147,7 @@ static void pprint_get_mountlist(gboolean allfs)
" .devname = \"%s\"," " .devname = \"%s\","
" .mountir = \"%s\"," " .mountir = \"%s\","
" .type = \"%s\" }\n", " .type = \"%s\" }\n",
(unsigned long) i, (unsigned long long)entries[i].dev, (unsigned long) i, entries[i].dev,
entries[i].devname, entries[i].devname,
entries[i].mountdir, entries[i].mountdir,
entries[i].type); entries[i].type);
@@ -216,14 +168,14 @@ static void pprint_get_msg_limits(void)
glibtop_get_msg_limits(&buf); glibtop_get_msg_limits(&buf);
HEADER_PPRINT(glibtop_get_msg_limits); HEADER_PPRINT(glibtop_get_msg_limits);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(msgpool); PPRINT(msgpool, "%llu");
PPRINT_GUINT64(msgmap); PPRINT(msgmap, "%llu");
PPRINT_GUINT64(msgmax); PPRINT(msgmax, "%llu");
PPRINT_GUINT64(msgmnb); PPRINT(msgmnb, "%llu");
PPRINT_GUINT64(msgmni); PPRINT(msgmni, "%llu");
PPRINT_GUINT64(msgssz); PPRINT(msgssz, "%llu");
PPRINT_GUINT64(msgtql); PPRINT(msgtql, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -237,7 +189,7 @@ static void pprint_get_netload(const char *iface)
HEADER_PPRINT(glibtop_get_netload); HEADER_PPRINT(glibtop_get_netload);
printf("glibtop_get_netload (iface = \"%s\")\n", iface); printf("glibtop_get_netload (iface = \"%s\")\n", iface);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -271,12 +223,12 @@ static void pprint_get_swap(void)
glibtop_get_swap(&buf); glibtop_get_swap(&buf);
HEADER_PPRINT(glibtop_get_swap); HEADER_PPRINT(glibtop_get_swap);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(total); PPRINT(total, "%llu");
PPRINT_GUINT64(used); PPRINT(used, "%llu");
PPRINT_GUINT64(free); PPRINT(free, "%llu");
PPRINT_GUINT64(pagein); PPRINT(pagein, "%llu");
PPRINT_GUINT64(pageout); PPRINT(pageout, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -289,10 +241,10 @@ static void pprint_get_uptime(void)
glibtop_get_uptime(&buf); glibtop_get_uptime(&buf);
HEADER_PPRINT(glibtop_get_uptime); HEADER_PPRINT(glibtop_get_uptime);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT(uptime, "f"); PPRINT(uptime, "%f");
PPRINT(idletime, "f"); PPRINT(idletime, "%f");
PPRINT_GUINT64(boot_time); PPRINT(boot_time, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -306,12 +258,12 @@ static void pprint_get_proc_kernel(pid_t pid)
glibtop_get_proc_kernel(&buf, pid); glibtop_get_proc_kernel(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_kernel); HEADER_PPRINT(glibtop_get_proc_kernel);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(k_flags); PPRINT(k_flags, "%llu");
PPRINT_GUINT64(min_flt); PPRINT(min_flt, "%llu");
PPRINT_GUINT64(maj_flt); PPRINT(maj_flt, "%llu");
PPRINT_GUINT64(cmin_flt); PPRINT(cmin_flt, "%llu");
PPRINT_GUINT64(cmaj_flt); PPRINT(cmaj_flt, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
@@ -323,45 +275,22 @@ static void pprint_get_proc_mem(pid_t pid)
glibtop_get_proc_mem(&buf, pid); glibtop_get_proc_mem(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_mem); HEADER_PPRINT(glibtop_get_proc_mem);
PPRINT_FLAGS(flags); PPRINT(flags, "%#llx");
PPRINT_GUINT64(size); PPRINT(size, "%llu");
PPRINT_GUINT64(vsize); PPRINT(vsize, "%llu");
PPRINT_GUINT64(resident); PPRINT(resident, "%llu");
PPRINT_GUINT64(share); PPRINT(share, "%llu");
PPRINT_GUINT64(rss); PPRINT(rss, "%llu");
PPRINT_GUINT64(rss_rlim); PPRINT(rss_rlim, "%llu");
FOOTER_PPRINT(); FOOTER_PPRINT();
} }
static void pprint_get_proc_affinity(pid_t pid)
{
glibtop_proc_affinity buf;
guint32 i;
guint16* cpus;
cpus = glibtop_get_proc_affinity(&buf, pid);
HEADER_PPRINT(glibtop_get_proc_affinity);
PPRINT_FLAGS(flags);
PPRINT(number, "u");
PPRINT(all, "d");
printf("\taffinity=");
for (i = 0; i < buf.number; i++) {
printf("%d, ", cpus[i]);
}
putchar('\n');
FOOTER_PPRINT();
}
int main() int main()
{ {
glibtop_init(); glibtop_init();
pprint_get_sysinfo();
pprint_get_cpu(); pprint_get_cpu();
pprint_get_fsusage("/"); pprint_get_fsusage("/");
@@ -388,7 +317,6 @@ int main()
pprint_get_proc_kernel(getpid()); pprint_get_proc_kernel(getpid());
pprint_get_proc_mem(getpid()); pprint_get_proc_mem(getpid());
pprint_get_proc_affinity(getpid());
glibtop_close(); glibtop_close();

View File

@@ -1,8 +1,5 @@
#include <glibtop.h> #include <glibtop.h>
#include <glibtop/proclist.h> #include <glibtop/proclist.h>
#include <glibtop/procstate.h>
#include <glibtop/proctime.h>
#include <glibtop/procuid.h>
#include <glib.h> #include <glib.h>
@@ -20,28 +17,14 @@ static void print_pids(guint64 which, guint64 arg)
pids = glibtop_get_proclist(&buf, which, arg); pids = glibtop_get_proclist(&buf, which, arg);
for (i = 0; i < buf.number; ++i) { printf("glibtop_get_proclist(%#llx, %llu) -> %lu processes\n",
glibtop_proc_time ptime; which, arg, (unsigned long)buf.number);
glibtop_proc_uid puid;
glibtop_proc_state pstate;
pid_t p = pids[i]; for (i = 0; i < buf.number; ++i)
printf("%u ", pids[i]);
glibtop_get_proc_time(&ptime, p); putchar('\n');
glibtop_get_proc_uid(&puid, p); putchar('\n');
glibtop_get_proc_state(&pstate, p);
/* almost equivalent to ps -x -o user,pid,time,usertime,systime,start,command */
printf("%u pid=%u real=%.2f user=%.2f sys=%.2f start=%lu %s (%lx)\n",
puid.uid,
p,
(double)ptime.rtime / ptime.frequency,
(double)ptime.utime / ptime.frequency,
(double)ptime.stime / ptime.frequency,
(unsigned long)ptime.start_time,
pstate.cmd,
(long)ptime.flags);
}
g_free(pids); g_free(pids);
} }
@@ -51,6 +34,7 @@ int main()
{ {
glibtop_init(); glibtop_init();
print_pids(GLIBTOP_KERN_PROC_ALL, 0);
print_pids(GLIBTOP_KERN_PROC_UID, getuid()); print_pids(GLIBTOP_KERN_PROC_UID, getuid());
glibtop_close(); glibtop_close();

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -39,36 +39,10 @@
#include <sys/resource.h> #include <sys/resource.h>
#include <sys/mman.h> #include <sys/mman.h>
#include <fcntl.h>
#ifndef PROFILE_COUNT #ifndef PROFILE_COUNT
#define PROFILE_COUNT 1 #define PROFILE_COUNT 1
#endif #endif
static void
try_mmap(const char *path)
{
struct stat buf;
int fd;
if ((fd = open(path, O_RDONLY)) < 0)
goto out;
if (fstat(fd, &buf) < 0)
goto out;
if (mmap(NULL, buf.st_size, PROT_READ, MAP_PRIVATE, fd, 0) == MAP_FAILED)
goto out;
close(fd);
return;
out:
fprintf(stderr, "Failed to test mmap with '%s'\n", path);
}
int int
main (int argc, char *argv []) main (int argc, char *argv [])
{ {
@@ -104,18 +78,8 @@ main (int argc, char *argv [])
glibtop_init_r (&glibtop_global_server, 0, 0); glibtop_init_r (&glibtop_global_server, 0, 0);
if (argc == 1) { if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
pid = getpid(); g_error ("Usage: %s pid", argv [0]);
}
else if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1))
g_error ("Usage: %s [pid]", argv [0]);
if (pid == getpid()) {
/* let's map something for a try */
try_mmap("/etc/passwd");
try_mmap("/etc/resolv.conf");
try_mmap(argv[0]);
}
fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid); fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid);
@@ -123,7 +87,6 @@ main (int argc, char *argv [])
for (i = 0; i < procmap.number; i++) { for (i = 0; i < procmap.number; i++) {
const char *filename = NULL; const char *filename = NULL;
char * format;
unsigned device, device_major, device_minor; unsigned device, device_major, device_minor;
char perm [5]; char perm [5];
@@ -140,32 +103,47 @@ main (int argc, char *argv [])
device_minor = (device & 255); device_minor = (device & 255);
device_major = ((device >> 8) & 255); device_major = ((device >> 8) & 255);
if (sizeof (void*) == 8)
format = "%016lx-%016lx +%016lx (%8lu bytes mapped) - "
"%02x:%02x % 8lu - %.*s";
else
format = "%08lx-%08lx +%08lx (%8lu bytes mapped) - "
"%02x:%02x % 8lu - %.*s";
fprintf (stderr, format,
(unsigned long) maps [i].start,
(unsigned long) maps [i].end,
(unsigned long) maps [i].offset,
(unsigned long) (maps [i].end - (maps [i].start + maps [i].offset)),
device_major, device_minor,
(unsigned long) maps [i].inode,
sizeof perm, perm);
if (filename) { if (filename) {
fprintf(stderr, " - %s", filename); char *format;
if (sizeof (void*) == 8)
format = "%016lx-%016lx %016lx - "
"%02x:%02x %08lu - %5.5s - %s\n";
else
format = "%08lx-%08lx %08lx - "
"%02x:%02x %08lu - %5.5s - %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 {
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);
} }
fputc('\n', stderr);
g_print("smaps flags:%#llx size:%" G_GUINT64_FORMAT "KiB rss:%" G_GUINT64_FORMAT "KiB " g_print("smaps flags:%#llx size:%lluKiB rss:%lluKiB "
"shared_clean:%" G_GUINT64_FORMAT "Kib shared_dirty:%" G_GUINT64_FORMAT "KiB " "shared_clean:%lluKib shared_dirty:%lluKiB "
"private_clean:%" G_GUINT64_FORMAT "KiB private_dirty: %" G_GUINT64_FORMAT "KiB\n", "private_clean:%lluKiB private_dirty: %lluKiB\n",
(unsigned long long)maps[i].flags, maps[i].flags,
maps[i].size >> 10, maps[i].size >> 10,
maps[i].rss >> 10, maps[i].rss >> 10,
maps[i].shared_clean >> 10, maps[i].shared_clean >> 10,

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -42,12 +42,14 @@ output (pid_t pid)
char *args; char *args;
unsigned i; unsigned i;
#if HAVE_LIBGTOP_SMP
unsigned long total; unsigned long total;
double p_total, p_utime, p_stime; double p_total, p_utime, p_stime;
double b_total, b_utime, b_stime; double b_total, b_utime, b_stime;
double s_total, s_utime, s_stime; double s_total, s_utime, s_stime;
double my_utime, my_stime; double my_utime, my_stime;
unsigned int ncpu; unsigned int ncpu;
#endif
printf ("\n"); printf ("\n");
@@ -156,6 +158,7 @@ output (pid_t pid)
printf ("\n"); printf ("\n");
#if HAVE_LIBGTOP_SMP
ncpu = glibtop_global_server->ncpu; ncpu = glibtop_global_server->ncpu;
glibtop_get_proc_time (&data.proc_time, pid); glibtop_get_proc_time (&data.proc_time, pid);
@@ -228,6 +231,7 @@ output (pid_t pid)
s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime); s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime);
printf ("\n"); printf ("\n");
#endif
} }
int int

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -92,10 +92,9 @@ main (int argc, char *argv [])
"\tproc_time:\t%d\t0x%08lx\n" "\tproc_time:\t%d\t0x%08lx\n"
"\tproc_signal:\t%d\t0x%08lx\n" "\tproc_signal:\t%d\t0x%08lx\n"
"\tproc_kernel:\t%d\t0x%08lx\n" "\tproc_kernel:\t%d\t0x%08lx\n"
"\tproc_segment:\t%d\t0x%08lx\n" "\tproc_segment:\t%d\t0x%08lx\n\n"
"\tproc_args:\t%d\t0x%08lx\n" "\tproc_args:\t%d\t0x%08lx\n"
"\tproc_map:\t%d\t0x%08lx\n" "\tproc_map:\t%d\t0x%08lx\n\n"
"\tproc_io:\t%d\t0x%08lx\n\n"
"\tmountlist:\t%d\t0x%08lx\n" "\tmountlist:\t%d\t0x%08lx\n"
"\tfsusage:\t%d\t0x%08lx\n\n" "\tfsusage:\t%d\t0x%08lx\n\n"
"\tnetload:\t%d\t0x%08lx\n" "\tnetload:\t%d\t0x%08lx\n"
@@ -138,8 +137,6 @@ main (int argc, char *argv [])
(unsigned long) sysdeps.proc_args, (unsigned long) sysdeps.proc_args,
FEATURE_CHECK(PROC_MAP), FEATURE_CHECK(PROC_MAP),
(unsigned long) sysdeps.proc_map, (unsigned long) sysdeps.proc_map,
FEATURE_CHECK(PROC_IO),
(unsigned long) sysdeps.proc_io,
FEATURE_CHECK(MOUNTLIST), FEATURE_CHECK(MOUNTLIST),
(unsigned long) sysdeps.mountlist, (unsigned long) sysdeps.mountlist,
FEATURE_CHECK(FSUSAGE), FEATURE_CHECK(FSUSAGE),

View File

@@ -1,48 +0,0 @@
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by Dr. James Dominic P. Guana <jdpguana@histark.com>, August 2021.
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include <config.h>
#include <locale.h>
#include <libintl.h>
#include <math.h>
#include <stdio.h>
#include <glibtop.h>
#include <glibtop/sysinfo.h>
int
main (int argc, char *argv [])
{
char *model;
const glibtop_sysinfo * sysinfo;
glibtop_init();
sysinfo = glibtop_get_sysinfo ();
model = g_hash_table_lookup (sysinfo->cpuinfo [1].values, "model name");
printf ("\nProcessor Model: %s\n", g_strdup (model));
printf ("Number of Cores: %lu\n\n", sysinfo->ncpu);
glibtop_close ();
exit (0);
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@@ -69,21 +69,6 @@
} \ } \
} while (0) } while (0)
static void display_self_times(void)
{
printf("-- Overview using `ps` --------------------"
"---------------\n");
printf("-- this client is %8u ----------------"
"---------------\n", (unsigned)getpid());
printf("-- this server is %8u ----------------"
"---------------\n", (unsigned)glibtop_global_server->pid);
system("ps xjf | egrep 'timings|libgtop_server'");
printf("-------------------------------------------"
"---------------\n");
}
int int
main (int argc, char *argv []) main (int argc, char *argv [])
{ {
@@ -100,16 +85,13 @@ main (int argc, char *argv [])
bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
textdomain (GETTEXT_PACKAGE); textdomain (GETTEXT_PACKAGE);
glibtop_init_r (&glibtop_global_server, 0, 0);
display_self_times();
printf ("%-12s (%-10s): %7s - %9s - %9s\n", printf ("%-12s (%-10s): %7s - %9s - %9s\n",
"Feature", "Flags", "Count", "utime", "stime"); "Feature", "Flags", "Count", "utime", "stime");
printf ("-------------------------------------------" printf ("-------------------------------------------"
"---------------\n"); "---------------\n");
glibtop_init_r (&glibtop_global_server, 0, 0);
getrusage (RUSAGE_SELF, &total_start); getrusage (RUSAGE_SELF, &total_start);
getrusage (RUSAGE_SELF, &rusage_start); getrusage (RUSAGE_SELF, &rusage_start);
@@ -412,26 +394,6 @@ main (int argc, char *argv [])
(long double) ELAPSED_UTIME / PROFILE_COUNT, (long double) ELAPSED_UTIME / PROFILE_COUNT,
(long double) ELAPSED_STIME / PROFILE_COUNT); (long double) ELAPSED_STIME / PROFILE_COUNT);
getrusage (RUSAGE_SELF, &rusage_start);
for (c = 0; c < PROFILE_COUNT; c++)
glibtop_get_proc_io (&data.proc_io, 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_Io (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n",
(unsigned long) data.proc_io.flags, PROFILE_COUNT,
(long double) ELAPSED_UTIME / PROFILE_COUNT,
(long double) ELAPSED_STIME / PROFILE_COUNT);
getrusage (RUSAGE_SELF, &total_end); getrusage (RUSAGE_SELF, &total_end);
libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime, libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime,
@@ -449,8 +411,6 @@ main (int argc, char *argv [])
printf ("All timings are in clock ticks " printf ("All timings are in clock ticks "
"(1000000 ticks per second).\n\n"); "(1000000 ticks per second).\n\n");
display_self_times();
glibtop_close (); glibtop_close ();
exit (0); exit (0);

View File

@@ -1,29 +1,27 @@
void|cpu void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4])
void|disk void|mem|ulong(total,used,free,shared,buffer,cached,user,locked)
void|mem void|swap|ulong(total,used,free,pagein,pageout)
void|swap void|uptime|double(uptime,idletime)
void|uptime void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid)
void|loadavg void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall)
void|shm_limits void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql)
void|msg_limits void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem)
void|sem_limits pid_t*|proclist|ulong(number,size,total)|long(which,arg)
pid_t*|proclist|long(which,arg) void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid)
void|proc_state|pid_t(pid) void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid)
void|proc_uid|pid_t(pid) void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid)
void|proc_mem|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|pid_t(pid) void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid)
void|proc_signal|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_kernel|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|pid_t(pid) char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len)
char *|proc_args|pid_t(pid):unsigned(max_len) glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid)
glibtop_map_entry *|proc_map|pid_t(pid) glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid)
glibtop_open_files_entry *|proc_open_files|pid_t(pid) glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs)
glibtop_mountentry *|@mountlist|int(all_fs) void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir
void|@fsusage|string|mount_dir void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface
void|netload|string|interface void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device)
void|ppp|ushort(device) char **|netlist|unsigned(number)
char **|netlist char **|proc_wd|ulong(number),str(root),str(exe)|pid_t(pid)
char **|proc_wd|pid_t(pid) guint16*|proc_affinity|ulong(number),int(all)|pid_t(pid)
guint16*|proc_affinity|pid_t(pid)
void|proc_io|pid_t(pid)

View File

@@ -15,24 +15,18 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_H__ #ifndef __GLIBTOP_H__
#define __GLIBTOP_H__ #define __GLIBTOP_H__
/* for pid_t, uid_t, gid_t */ #include <glib/gmacros.h>
#include <sys/types.h>
#include <glib.h>
#include <glib-object.h>
G_BEGIN_DECLS G_BEGIN_DECLS
typedef struct _glibtop glibtop; typedef struct _glibtop glibtop;
typedef struct _glibtop_machine glibtop_machine;
/** /**
* LIBGTOP_CHECK_VERSION * LIBGTOP_CHECK_VERSION
@@ -60,6 +54,10 @@ LIBGTOP_MICRO_VERSION >= (micro)))
#include <glibtop_server.h> #include <glibtop_server.h>
#ifdef HAVE_GLIBTOP_MACHINE_H
#include <glibtop_machine.h>
#endif
#ifndef GLIBTOP_MOUNTENTRY_LEN #ifndef GLIBTOP_MOUNTENTRY_LEN
#define GLIBTOP_MOUNTENTRY_LEN 79 #define GLIBTOP_MOUNTENTRY_LEN 79
#endif #endif
@@ -70,6 +68,34 @@ LIBGTOP_MICRO_VERSION >= (micro)))
#include <glibtop/close.h> #include <glibtop/close.h>
#ifdef HAVE_GLIBTOP_MACHINE_H
struct _glibtop
{
unsigned flags;
unsigned method; /* Server Method */
unsigned error_method; /* Error Method */
glibtop_machine machine; /* Machine dependent data */
int input [2]; /* Pipe client <- server */
int output [2]; /* Pipe client -> server */
int socket; /* Accepted connection of a socket */
int ncpu; /* Number of CPUs, zero if single-processor */
int real_ncpu; /* Real number of CPUs. Only ncpu are monitored */
unsigned long os_version_code; /* Version code of the operating system */
const char *name; /* Program name for error messages */
const char *server_command; /* Command used to invoke server */
const char *server_host; /* Host the server should run on */
const char *server_user; /* Name of the user on the target host */
const char *server_rsh; /* Command used to connect to the target host */
unsigned long features; /* Server is required for this features */
unsigned long server_port; /* Port on which daemon is listening */
glibtop_sysdeps sysdeps; /* Detailed feature list */
glibtop_sysdeps required; /* Required feature list */
pid_t pid; /* PID of the server */
};
#else /* !HAVE_GLIBTOP_MACHINE_H */
struct _glibtop struct _glibtop
{ {
unsigned flags; unsigned flags;
@@ -91,60 +117,27 @@ struct _glibtop
glibtop_sysdeps sysdeps; /* Detailed feature list */ glibtop_sysdeps sysdeps; /* Detailed feature list */
glibtop_sysdeps required; /* Required feature list */ glibtop_sysdeps required; /* Required feature list */
pid_t pid; /* PID of the server */ pid_t pid; /* PID of the server */
uid_t uid;
uid_t euid;
gid_t gid;
gid_t egid;
glibtop_machine *machine; /* Machine dependent data */
int ndisk; /* Number of DISKs, zero if single-disk. This pertains to disk volumes */
int real_ndisk; /* Number of PHYSICAL DISKs. Only ndisk is monitored for now */
}; };
#endif /* HAVE_GLIBTOP_MACHINE_H */
extern glibtop *glibtop_global_server; extern glibtop *glibtop_global_server;
extern const unsigned long glibtop_server_features; extern const unsigned long glibtop_server_features;
/**
* glibtop_init:
*
* Returns: (transfer none):
*/
glibtop * glibtop *
glibtop_init (void); glibtop_init (void);
/**
* glibtop_init_r:
* @server_ptr: (out):
* @features:
* @flags:
*
* Returns: (transfer none):
*/
glibtop * glibtop *
glibtop_init_r (glibtop **server_ptr, glibtop_init_r (glibtop **server_ptr,
unsigned long features, unsigned long features,
unsigned flags); unsigned flags);
/**
* glibtop_init_s: (skip)
* @server_ptr: (out):
* @features:
* @flags:
*
* Returns: (transfer none):
*/
glibtop * glibtop *
glibtop_init_s (glibtop **server_ptr, glibtop_init_s (glibtop **server_ptr,
unsigned long features, unsigned long features,
unsigned flags); unsigned flags);
GType glibtop_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS
#endif #endif

View File

@@ -2,16 +2,13 @@ glibtopdir = $(includedir)/libgtop-2.0/glibtop
glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \ glibtop_HEADERS = close.h loadavg.h prockernel.h procstate.h \
sem_limits.h uptime.h command.h mem.h proclist.h \ sem_limits.h uptime.h command.h mem.h proclist.h \
proctime.h shm_limits.h cpu.h disk.h msg_limits.h \ proctime.h shm_limits.h version.h cpu.h msg_limits.h \
procmem.h procuid.h swap.h \ procmem.h procuid.h swap.h \
procsegment.h sysdeps.h global.h \ procsegment.h sysdeps.h global.h \
procsignal.h union.h gnuserv.h \ procsignal.h union.h gnuserv.h \
parameter.h mountlist.h fsusage.h procmap.h signal.h \ parameter.h mountlist.h fsusage.h procmap.h signal.h \
sysinfo.h ppp.h procargs.h netload.h \ sysinfo.h ppp.h procargs.h netload.h \
procwd.h procaffinity.h \ procwd.h procaffinity.h \
procio.h \
netlist.h procopenfiles.h open.h netlist.h procopenfiles.h open.h
noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h machine.h \ noinst_HEADERS = error.h write.h read_data.h read.h init_hooks.h
version.h

View File

@@ -19,8 +19,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_CALL_VECTOR_H__ #ifndef __GLIBTOP_CALL_VECTOR_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_CLOSE_H__ #ifndef __GLIBTOP_CLOSE_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_COMMAND_H__ #ifndef __GLIBTOP_COMMAND_H__
@@ -59,10 +59,8 @@ G_BEGIN_DECLS
#define GLIBTOP_CMND_PROC_OPEN_FILES 25 #define GLIBTOP_CMND_PROC_OPEN_FILES 25
#define GLIBTOP_CMND_PROC_WD 26 #define GLIBTOP_CMND_PROC_WD 26
#define GLIBTOP_CMND_PROC_AFFINITY 27 #define GLIBTOP_CMND_PROC_AFFINITY 27
#define GLIBTOP_CMND_PROC_IO 28
#define GLIBTOP_CMND_DISK 29
#define GLIBTOP_MAX_CMND 30 #define GLIBTOP_MAX_CMND 28
#define _GLIBTOP_PARAM_SIZE 16 #define _GLIBTOP_PARAM_SIZE 16

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_CPU_H__ #ifndef __GLIBTOP_CPU_H__
@@ -54,7 +54,7 @@ G_BEGIN_DECLS
Yes we are :) Yes we are :)
Nobody should really be using more than 32 processors. Nobody should really be using more than 32 processors.
*/ */
#define GLIBTOP_NCPU 1024 #define GLIBTOP_NCPU 32
typedef struct _glibtop_cpu glibtop_cpu; typedef struct _glibtop_cpu glibtop_cpu;

View File

@@ -1,86 +0,0 @@
/* Copyright (C) 1998-99 Martin Baulig
This file is part of LibGTop 1.0.
Contributed by James Dominic P. Guana <guana.histark@gmail.com>, May 2020.
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef __GLIBTOP_DISK_H__
#define __GLIBTOP_DISK_H__
#include <glibtop.h>
#include <glibtop/global.h>
G_BEGIN_DECLS
#define GLIBTOP_XDISK_SECTORS_READ 0
#define GLIBTOP_XDISK_TIME_READ 1
#define GLIBTOP_XDISK_SECTORS_WRITE 2
#define GLIBTOP_XDISK_TIME_WRITE 3
#define GLIBTOP_MAX_DISK 4
/* Nobody should really be using more than 4 disk.
Yes we are :)
Nobody should really be using more than 32 disk.
*/
#define GLIBTOP_NDISK 1024
typedef struct _glibtop_disk glibtop_disk;
struct _partition_info
{
char name[256];
char type[256];
char raid_num[256];
int max;
};
typedef struct _partition_info partition_info;
struct _glibtop_disk
{
guint64 flags; /* NOT USED YET */
guint64 xdisk_sectors_read [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_SECTORS_READ */
guint64 xdisk_time_read [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_TIME_READ */
guint64 xdisk_sectors_write [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_SECTORS_WRITE */
guint64 xdisk_time_write [GLIBTOP_NDISK]; /* GLIBTOP_XDISK_TIME_WRITE */
guint64 xdisk_flags;
};
void glibtop_get_disk (glibtop_disk *buf);
#if GLIBTOP_SUID_DISK
#define glibtop_get_disk_r glibtop_get_disk_p
#else
#define glibtop_get_disk_r glibtop_get_disk_s
#endif
void glibtop_get_disk_l (glibtop *server, glibtop_disk *buf);
#if GLIBTOP_SUID_DISK
void _glibtop_init_disk_p (glibtop *server);
void glibtop_get_disk_p (glibtop *server, glibtop_disk *buf);
#else
void _glibtop_init_disk_s (glibtop *server);
void glibtop_get_disk_s (glibtop *server, glibtop_disk *buf);
#endif
G_END_DECLS
#endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
@@ -46,18 +46,6 @@ void glibtop_warn (const char *format, ...) G_GNUC_PRINTF(1, 2);
void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN;
void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2); void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2);
/* FIXME: C99 */
#define glibtop_debug_r(server, fmt, ...) \
G_STMT_START { \
if (LIBGTOP_ENABLE_DEBUG) \
glibtop_debug_r_real(server, "%s:%d %s(): " fmt, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \
} G_STMT_END
#define glibtop_debug(...) glibtop_debug_r(glibtop_global_server, __VA_ARGS__)
void glibtop_debug_vr (glibtop *server, const char *format, va_list args);
void glibtop_debug_r_real (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3);
G_END_DECLS G_END_DECLS
#endif #endif

View File

@@ -14,8 +14,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_FSUSAGE_H__ #ifndef __GLIBTOP_FSUSAGE_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_GLOBAL_H__ #ifndef __GLIBTOP_GLOBAL_H__
@@ -28,11 +28,17 @@
#endif /* _IN_LIBGTOP */ #endif /* _IN_LIBGTOP */
#if HAVE_SYS_TIME_H #if TIME_WITH_SYS_TIME
# include <sys/time.h> # include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif #endif
#include <time.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_LOADAVG_H__ #ifndef __GLIBTOP_LOADAVG_H__

View File

@@ -1,22 +0,0 @@
#ifndef GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041
#define GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041
#include <glib.h>
#include <glibtop_machine.h>
/* private */
static inline void
glibtop_machine_new(glibtop *server)
{
server->machine = g_new0(glibtop_machine, 1);
}
/* private */
static inline void
glibtop_machine_delete(glibtop *server)
{
g_free(server->machine);
server->machine = NULL;
}
#endif /* GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041 */

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_MEM_H__ #ifndef __GLIBTOP_MEM_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_MOUNTLIST_H__ #ifndef __GLIBTOP_MOUNTLIST_H__
@@ -53,38 +53,6 @@ struct _glibtop_mountlist
guint64 size; /* GLIBTOP_MOUNTLIST_SIZE */ guint64 size; /* GLIBTOP_MOUNTLIST_SIZE */
}; };
/**
* glibtop_get_mountlist:
* @buf:
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_mountlist_r:
* @buf: (out):
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_mountlist_s:
* @buf: (out):
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_mountlist_l:
* @buf: (out):
* @all_fs:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_mountentry * glibtop_mountentry *
glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs); glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs);
@@ -96,8 +64,6 @@ glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs);
glibtop_mountentry * glibtop_mountentry *
glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs); glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs);
GType glibtop_mountlist_get_type (void) G_GNUC_CONST;
GType glibtop_mountentry_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_MSG_LIMITS_H__ #ifndef __GLIBTOP_MSG_LIMITS_H__

View File

@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_NETLIST_H__ #ifndef __GLIBTOP_NETLIST_H__
@@ -31,23 +31,12 @@ G_BEGIN_DECLS
typedef struct _glibtop_netlist glibtop_netlist; typedef struct _glibtop_netlist glibtop_netlist;
/**
* glibtop_netlist:
* @number: Number of entries in the returned list.
*/
struct _glibtop_netlist struct _glibtop_netlist
{ {
guint64 flags; guint64 flags;
guint32 number; guint32 number;
}; };
/**
* glibtop_get_netlist:
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist(glibtop_netlist *buf); char** glibtop_get_netlist(glibtop_netlist *buf);
#if GLIBTOP_SUID_NETLIST #if GLIBTOP_SUID_NETLIST
@@ -56,39 +45,13 @@ char** glibtop_get_netlist(glibtop_netlist *buf);
#define glibtop_get_netlist_r glibtop_get_netlist_s #define glibtop_get_netlist_r glibtop_get_netlist_s
#endif #endif
/**
* glibtop_get_netlist_l:
* @server: a #glibtop server
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf); char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf);
#if GLIBTOP_SUID_NETLIST #if GLIBTOP_SUID_NETLIST
void _glibtop_init_netlist_p (glibtop *server); void _glibtop_init_netlist_p (glibtop *server);
/**
* glibtop_get_netlist_p:
* @server: a #glibtop server
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf); char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf);
#else #else
void _glibtop_init_netlist_s (glibtop *server); void _glibtop_init_netlist_s (glibtop *server);
/**
* glibtop_get_netlist_s:
* @server: a #glibtop server
* @buf: a #glibtop_netlist
*
* Returns: (array zero-terminated=1) (transfer full): an array of network
* interface names.
*/
char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf); char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf);
#endif #endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_NETLOAD_H__ #ifndef __GLIBTOP_NETLOAD_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_OPEN_H__ #ifndef __GLIBTOP_OPEN_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PARAMETER_H__ #ifndef __GLIBTOP_PARAMETER_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PPP_H__ #ifndef __GLIBTOP_PPP_H__

View File

@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCAFFINITY_H__ #ifndef __GLIBTOP_PROCAFFINITY_H__
@@ -29,7 +29,6 @@ typedef struct _glibtop_proc_affinity glibtop_proc_affinity;
#define GLIBTOP_PROC_AFFINITY_NUMBER 0 #define GLIBTOP_PROC_AFFINITY_NUMBER 0
#define GLIBTOP_PROC_AFFINITY_ALL 1 #define GLIBTOP_PROC_AFFINITY_ALL 1
#define GLIBTOP_MAX_PROC_AFFINITY 2
struct _glibtop_proc_affinity struct _glibtop_proc_affinity
{ {

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROC_ARGS_H__ #ifndef __GLIBTOP_PROC_ARGS_H__
@@ -79,15 +79,6 @@ char **
glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf, glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf,
pid_t pid, unsigned max_len); pid_t pid, unsigned max_len);
/**
* glibtop_get_proc_argv:
* @buf:
* @pid:
* @max_len:
*
* Returns: (transfer full):
*/
char ** char **
glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len); glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len);

View File

@@ -1,91 +0,0 @@
/* Copyright (C) 2017 Robert Roth
This file is part of LibGTop.
Contributed by Robert Roth <robert.roth.off@gmail.com>, February 2017.
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., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef __GLIBTOP_PROCIO_H__
#define __GLIBTOP_PROCIO_H__
#include <glibtop.h>
#include <glibtop/global.h>
G_BEGIN_DECLS
#define GLIBTOP_PROC_IO_DISK_RCHAR 0
#define GLIBTOP_PROC_IO_DISK_WCHAR 1
#define GLIBTOP_PROC_IO_DISK_RBYTES 2
#define GLIBTOP_PROC_IO_DISK_WBYTES 3
#define GLIBTOP_MAX_PROC_IO 3
typedef struct _glibtop_proc_io glibtop_proc_io;
/* Time section */
/**
* glibtop_proc_io:
* @disk_rchar: The number of bytes which this task has caused to be read from storage. This
* is simply the sum of bytes which this process passed to read() and pread(), also including tty IO,
* and it is unaffected by whether or not actual physical disk IO was required.
* @disk_wchar: The number of bytes which this task has caused, or shall cause to be written
* to disk. Similar caveats apply here as with rchar.
* @disk_rbytes: Attempt to count the number of bytes which this process really did cause to
* be fetched from the storage layer. Done at the submit_bio() level, so it is
* accurate for block-backed filesystems.
* @disk_wbytes: Attempt to count the number of bytes which this process caused to be sent to
* the storage layer. This is done at page-dirtying time.
*
* Process disk io data filled by glibtop_get_proc_io().
*
*/
struct _glibtop_proc_io
{
guint64 flags;
guint64 disk_rchar;
guint64 disk_wchar;
guint64 disk_rbytes;
guint64 disk_wbytes;
/* reserved for future extensions, e.g. per-process netio */
guint64 reserved[10];
};
void glibtop_get_proc_io (glibtop_proc_io *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_IO
#define glibtop_get_proc_io_r glibtop_get_proc_io_p
#else
#define glibtop_get_proc_io_r glibtop_get_proc_io_s
#endif
void glibtop_get_proc_io_l (glibtop *server, glibtop_proc_io *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_IO
void _glibtop_init_proc_io_p (glibtop *server);
void glibtop_get_proc_io_p (glibtop *server, glibtop_proc_io *buf, pid_t pid);
#else
void _glibtop_init_proc_io_s (glibtop *server);
void glibtop_get_proc_io_s (glibtop *server, glibtop_proc_io *buf, pid_t pid);
#endif
G_END_DECLS
#endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCKERNEL_H__ #ifndef __GLIBTOP_PROCKERNEL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCLIST_H__ #ifndef __GLIBTOP_PROCLIST_H__
@@ -36,89 +36,22 @@ G_BEGIN_DECLS
/* You can use the folowing constants as the `which' member of /* You can use the folowing constants as the `which' member of
* glibtop_get_proclist () to specify which processes to fetch. */ * glibtop_get_proclist () to specify which processes to fetch. */
/** #define GLIBTOP_KERN_PROC_ALL 0 /* all processes */
* GLIBTOP_KERN_PROC_ALL:
*
* Return information about all processes
**/
#define GLIBTOP_KERN_PROC_ALL 0
/**
* GLIBTOP_KERN_PROC_PID:
*
* Return all processes with the pid which is passed in @arg. You can use this to find out whether some process still exists.
**/
#define GLIBTOP_KERN_PROC_PID 1 #define GLIBTOP_KERN_PROC_PID 1
/**
* GLIBTOP_KERN_PROC_PGRP:
*
* Return all processes in the process group passed in @arg.
**/
#define GLIBTOP_KERN_PROC_PGRP 2 #define GLIBTOP_KERN_PROC_PGRP 2
/**
* GLIBTOP_KERN_PROC_SESSION:
*
* Return all processes in the session passed in @arg.
**/
#define GLIBTOP_KERN_PROC_SESSION 3 #define GLIBTOP_KERN_PROC_SESSION 3
/**
* GLIBTOP_KERN_PROC_TTY:
*
* Return all processes which have the controlling tty passed in @arg
* (which is interpreted as the device number).
**/
#define GLIBTOP_KERN_PROC_TTY 4 #define GLIBTOP_KERN_PROC_TTY 4
/**
* GLIBTOP_KERN_PROC_UID:
*
* Return all processes with the effective uid passed in @arg.
**/
#define GLIBTOP_KERN_PROC_UID 5 #define GLIBTOP_KERN_PROC_UID 5
/**
* GLIBTOP_KERN_PROC_RUID:
*
* Return all processes with the real uid passed in @arg.
**/
#define GLIBTOP_KERN_PROC_RUID 6 #define GLIBTOP_KERN_PROC_RUID 6
#define GLIBTOP_KERN_PROC_MASK 15 #define GLIBTOP_KERN_PROC_MASK 15
/**
* GLIBTOP_EXCLUDE_IDLE:
*
* Exclude idle processes.
**/
#define GLIBTOP_EXCLUDE_IDLE 0x1000 #define GLIBTOP_EXCLUDE_IDLE 0x1000
/**
* GLIBTOP_EXCLUDE_SYSTEM:
*
* Exclude system (on most UNIXes root's) processes.
**/
#define GLIBTOP_EXCLUDE_SYSTEM 0x2000 #define GLIBTOP_EXCLUDE_SYSTEM 0x2000
/**
* GLIBTOP_EXCLUDE_NOTTY:
*
* Exclude processes without a controlling terminal.
**/
#define GLIBTOP_EXCLUDE_NOTTY 0x4000 #define GLIBTOP_EXCLUDE_NOTTY 0x4000
typedef struct _glibtop_proclist glibtop_proclist; typedef struct _glibtop_proclist glibtop_proclist;
/**
* glibtop_proclist:
* @number: Number of entries in the returned list.
* @total: Total size of the returned list (this equals @number * @size).
* @size: Size of a single entry in the returned list
* (this equals <type>sizeof(unsigned)</type>).
*/
struct _glibtop_proclist struct _glibtop_proclist
{ {
guint64 flags; guint64 flags;
@@ -127,15 +60,6 @@ struct _glibtop_proclist
guint64 size; /* GLIBTOP_PROCLIST_SIZE */ guint64 size; /* GLIBTOP_PROCLIST_SIZE */
}; };
/**
* glibtop_get_proclist:
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg);
@@ -145,16 +69,6 @@ glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg);
#define glibtop_get_proclist_r glibtop_get_proclist_s #define glibtop_get_proclist_r glibtop_get_proclist_s
#endif #endif
/**
* glibtop_get_proclist_l:
* @server: a #glibtop server
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf, glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg); gint64 which, gint64 arg);
@@ -162,32 +76,12 @@ glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf,
#if GLIBTOP_SUID_PROCLIST #if GLIBTOP_SUID_PROCLIST
void _glibtop_init_proclist_p (glibtop *server); void _glibtop_init_proclist_p (glibtop *server);
/**
* glibtop_get_proclist_p:
* @server: a #glibtop server
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf, glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg); gint64 which, gint64 arg);
#else #else
void _glibtop_init_proclist_s (glibtop *server); void _glibtop_init_proclist_s (glibtop *server);
/**
* glibtop_get_proclist_s:
* @server: a #glibtop server
* @buf: a #glibtop_proclist
* @which: a #GLIBTOP_* constant specifying process type
* @arg: an argument specific for the process type
*
* Returns: (array zero-terminated=1) (transfer full): an array of process
* ids
*/
pid_t* pid_t*
glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf, glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf,
gint64 which, gint64 arg); gint64 which, gint64 arg);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROC_MAP_H__ #ifndef __GLIBTOP_PROC_MAP_H__
@@ -48,10 +48,8 @@ G_BEGIN_DECLS
#define GLIBTOP_MAP_ENTRY_SHARED_DIRTY 10 #define GLIBTOP_MAP_ENTRY_SHARED_DIRTY 10
#define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN 11 #define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN 11
#define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY 12 #define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY 12
#define GLIBTOP_MAP_ENTRY_PSS 13
#define GLIBTOP_MAP_ENTRY_SWAP 14
#define GLIBTOP_MAX_MAP_ENTRY 15 #define GLIBTOP_MAX_MAP_ENTRY 13
#define GLIBTOP_MAP_FILENAME_LEN 215 #define GLIBTOP_MAP_FILENAME_LEN 215
@@ -80,8 +78,6 @@ struct _glibtop_map_entry
guint64 shared_dirty; guint64 shared_dirty;
guint64 private_clean; guint64 private_clean;
guint64 private_dirty; guint64 private_dirty;
guint64 pss;
guint64 swap;
char filename [GLIBTOP_MAP_FILENAME_LEN+1]; char filename [GLIBTOP_MAP_FILENAME_LEN+1];
}; };
@@ -92,46 +88,10 @@ struct _glibtop_proc_map
guint64 total; /* GLIBTOP_PROC_MAP_TOTAL */ guint64 total; /* GLIBTOP_PROC_MAP_TOTAL */
guint64 size; /* GLIBTOP_PROC_MAP_SIZE */ guint64 size; /* GLIBTOP_PROC_MAP_SIZE */
}; };
/**
* glibtop_get_proc_map:
* @buf:
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_map_entry * glibtop_map_entry *
glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid);
/**
* glibtop_get_proc_map_l:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_proc_map_p:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
/**
* glibtop_get_proc_map_s:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
#if GLIBTOP_SUID_PROC_MAP #if GLIBTOP_SUID_PROC_MAP
#define glibtop_get_proc_map_r glibtop_get_proc_map_p #define glibtop_get_proc_map_r glibtop_get_proc_map_p
#else #else
@@ -153,8 +113,6 @@ glibtop_map_entry *
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid); glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
#endif #endif
GType glibtop_map_entry_get_type (void) G_GNUC_CONST;
GType glibtop_proc_map_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCMEM_H__ #ifndef __GLIBTOP_PROCMEM_H__
@@ -53,12 +53,6 @@ struct _glibtop_proc_mem
* of the process; usually 2,147,483,647 */ * of the process; usually 2,147,483,647 */
}; };
/**
* glibtop_get_proc_mem:
* @buf:
* @pid:
*
*/
void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid); void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_MEM #if GLIBTOP_SUID_PROC_MEM

View File

@@ -18,8 +18,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROC_OPEN_FILES_H__ #ifndef __GLIBTOP_PROC_OPEN_FILES_H__
@@ -94,49 +94,21 @@ struct _glibtop_proc_open_files
guint64 size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */ guint64 size; /* GLIBTOP_PROC_OPEN_FILES_SIZE */
}; };
/**
* glibtop_get_proc_open_files:
* @buf:
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_open_files_entry * glibtop_open_files_entry *
glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_OPEN_FILES #if GLIBTOP_SUID_PROC_FILE
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p #define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p
#else #else
#define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s #define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s
#endif #endif
/**
* glibtop_get_proc_open_files_l:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_open_files_entry * glibtop_open_files_entry *
glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
#if GLIBTOP_SUID_PROC_OPEN_FILES #if GLIBTOP_SUID_PROC_FILE
void _glibtop_init_proc_open_files_p (glibtop *server); void _glibtop_init_proc_open_files_p (glibtop *server);
/**
* glibtop_get_proc_open_files_p:
* @server:
* @buf: (out):
* @pid:
*
* Returns: (transfer full) (array zero-terminated=1):
*/
glibtop_open_files_entry * glibtop_open_files_entry *
glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
#else #else
@@ -146,9 +118,6 @@ glibtop_open_files_entry *
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
#endif #endif
GType glibtop_open_files_entry_get_type (void) G_GNUC_CONST;
GType glibtop_proc_open_files_get_type (void) G_GNUC_CONST;
G_END_DECLS G_END_DECLS
#endif #endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCSEGMENT_H__ #ifndef __GLIBTOP_PROCSEGMENT_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCSIGNAL_H__ #ifndef __GLIBTOP_PROCSIGNAL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCSTATE_H__ #ifndef __GLIBTOP_PROCSTATE_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCTIME_H__ #ifndef __GLIBTOP_PROCTIME_H__
@@ -46,50 +46,26 @@ typedef struct _glibtop_proc_time glibtop_proc_time;
/* Time section */ /* Time section */
/**
* glibtop_proc_time:
* @start_time: Start time of process in seconds since the epoch.
* @rtime: Real time accumulated by process (should be @utime + @stime).
* @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 processs next timeout.
* @it_real_value: The time (in jiffies) before the next <type>SIGALRM</type>
* is sent to the process due to an interval timer.
* @frequency: Tick frequency.
* @xcpu_utime: SMP user-mode CPU time accumulated by process.
* @xcpu_stime: SMP kernel-mode CPU time accumulated by process
*
* Process time data filled by glibtop_get_proc_time().
*
* Under Linux the @start_time value may be wrong due to the information
* available from the kernel.
*
* The Linux kernel defines <type>INITIAL_JIFFIES</type> which implies a time
* shift. Because <type>INITIAL_JIFFIES</type> is not user-space defined,
* we cannot use it to compute an accurate @start_time. On Linux 2.6,
* <type>INITIAL_JIFFIES</type> is 300 so @start_time is
* always 3s different from the real start time of the given process. You
* may also get shift results if your system clock is not synchronised
* with your hardware clock. See <command>man hwclock</command>.
*/
struct _glibtop_proc_time struct _glibtop_proc_time
{ {
/*< private >*/
guint64 flags; guint64 flags;
/*< public >*/ guint64 start_time; /* start time of process --
guint64 start_time; * seconds since 1-1-70 */
guint64 rtime; guint64 rtime; /* real time accumulated by process */
guint64 utime; guint64 utime; /* user-mode CPU time accumulated by process */
guint64 stime; guint64 stime; /* kernel-mode CPU time accumulated by process */
guint64 cutime; guint64 cutime; /* cumulative utime of process and
guint64 cstime; * reaped children */
guint64 timeout; guint64 cstime; /* cumulative stime of process and
guint64 it_real_value; * reaped children */
guint64 frequency; guint64 timeout; /* The time (in jiffies) of the process's
guint64 xcpu_utime [GLIBTOP_NCPU]; * next timeout */
guint64 xcpu_stime [GLIBTOP_NCPU]; guint64 it_real_value; /* The time (in jiffies) before the
* next SIGALRM is sent to the process
* due to an interval timer. */
guint64 frequency; /* Tick frequency. */
guint64 xcpu_utime [GLIBTOP_NCPU]; /* utime and stime for all CPUs on */
guint64 xcpu_stime [GLIBTOP_NCPU]; /* SMP machines. */
}; };

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCUID_H__ #ifndef __GLIBTOP_PROCUID_H__

View File

@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_PROCWD_H__ #ifndef __GLIBTOP_PROCWD_H__
@@ -30,7 +30,7 @@ typedef struct _glibtop_proc_wd glibtop_proc_wd;
#define GLIBTOP_PROC_WD_NUMBER 0 #define GLIBTOP_PROC_WD_NUMBER 0
#define GLIBTOP_PROC_WD_ROOT 1 #define GLIBTOP_PROC_WD_ROOT 1
#define GLIBTOP_PROC_WD_EXE 2 #define GLIBTOP_PROC_WD_EXE 2
#define GLIBTOP_MAX_PROC_WD 3 #define GLIBTOP_PROC_WD_MAX 3
#define GLIBTOP_PROC_WD_ROOT_LEN 215 #define GLIBTOP_PROC_WD_ROOT_LEN 215
#define GLIBTOP_PROC_WD_EXE_LEN 215 #define GLIBTOP_PROC_WD_EXE_LEN 215
@@ -44,13 +44,6 @@ struct _glibtop_proc_wd
}; };
/**
* glibtop_get_proc_wd:
* @buf:
* @pid:
*
* Returns: (transfer full):
*/
char ** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid); char ** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid);
char ** glibtop_get_proc_wd_l(glibtop *server, glibtop_proc_wd *buf, pid_t pid); char ** glibtop_get_proc_wd_l(glibtop *server, glibtop_proc_wd *buf, pid_t pid);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_READ_H__ #ifndef __GLIBTOP_READ_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_READ_DATA_H__ #ifndef __GLIBTOP_READ_DATA_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_SEM_LIMITS_H__ #ifndef __GLIBTOP_SEM_LIMITS_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_SHM_LIMITS_H__ #ifndef __GLIBTOP_SHM_LIMITS_H__
@@ -37,9 +37,6 @@ G_BEGIN_DECLS
typedef struct _glibtop_shm_limits glibtop_shm_limits; typedef struct _glibtop_shm_limits glibtop_shm_limits;
/**
* glibtop_shm_limits:
*/
struct _glibtop_shm_limits struct _glibtop_shm_limits
{ {
guint64 flags; guint64 flags;
@@ -50,10 +47,6 @@ struct _glibtop_shm_limits
guint64 shmall; /* GLIBTOP_IPC_SHMALL */ guint64 shmall; /* GLIBTOP_IPC_SHMALL */
}; };
/**
* glibtop_get_shm_limits:
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits(glibtop_shm_limits *buf); void glibtop_get_shm_limits(glibtop_shm_limits *buf);
#if GLIBTOP_SUID_SHM_LIMITS #if GLIBTOP_SUID_SHM_LIMITS
@@ -62,28 +55,13 @@ void glibtop_get_shm_limits(glibtop_shm_limits *buf);
#define glibtop_get_shm_limits_r glibtop_get_shm_limits_s #define glibtop_get_shm_limits_r glibtop_get_shm_limits_s
#endif #endif
/**
* glibtop_get_shm_limits_l:
* @server: a #glibtop server
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf); void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf);
#if GLIBTOP_SUID_SHM_LIMITS #if GLIBTOP_SUID_SHM_LIMITS
void _glibtop_init_shm_limits_p (glibtop *server); void _glibtop_init_shm_limits_p (glibtop *server);
/**
* glibtop_get_shm_limits_p:
* @server: a #glibtop server
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf); void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf);
#else #else
void _glibtop_init_shm_limits_s (glibtop *server); void _glibtop_init_shm_limits_s (glibtop *server);
/**
* glibtop_get_shm_limits_s:
* @server: a #glibtop server
* @buf: a #glibtop_shm_limits
*/
void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf); void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf);
#endif #endif

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_SIGNAL_H__ #ifndef __GLIBTOP_SIGNAL_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_SWAP_H__ #ifndef __GLIBTOP_SWAP_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_SYSDEPS_H__ #ifndef __GLIBTOP_SYSDEPS_H__
@@ -53,13 +53,8 @@ G_BEGIN_DECLS
#define GLIBTOP_SYSDEPS_PROC_OPEN_FILES 24 #define GLIBTOP_SYSDEPS_PROC_OPEN_FILES 24
#define GLIBTOP_SYSDEPS_PROC_WD 25 #define GLIBTOP_SYSDEPS_PROC_WD 25
#define GLIBTOP_SYSDEPS_PROC_AFFINITY 26 #define GLIBTOP_SYSDEPS_PROC_AFFINITY 26
#define GLIBTOP_SYSDEPS_PROC_IO 27
#define GLIBTOP_SYSDEPS_DISK 28
#define GLIBTOP_MAX_SYSDEPS 29 #define GLIBTOP_MAX_SYSDEPS 27
/* The 'features' args to glibtop_init_* is an unsigned long */
G_STATIC_ASSERT((1UL << (GLIBTOP_MAX_SYSDEPS - 1)) <= ULONG_MAX);
#define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1) #define GLIBTOP_SYSDEPS_ALL ((1 << GLIBTOP_MAX_SYSDEPS) - 1)
@@ -95,15 +90,6 @@ struct _glibtop_sysdeps
guint64 ppp; /* glibtop_ppp */ guint64 ppp; /* glibtop_ppp */
guint64 proc_wd; /* glibtop_proc_wd */ guint64 proc_wd; /* glibtop_proc_wd */
guint64 proc_affinity; /* glibtop_proc_affinity */ guint64 proc_affinity; /* glibtop_proc_affinity */
guint64 proc_io; /* glibtop_proc_io */
guint64 disk; /* glibtop_disk */
guint64 reserved1;
guint64 reserved2;
guint64 reserved3;
guint64 reserved4;
guint64 reserved5;
guint64 reserved6;
guint64 reserved7;
}; };
void glibtop_get_sysdeps (glibtop_sysdeps *buf); void glibtop_get_sysdeps (glibtop_sysdeps *buf);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_SYSINFO_H__ #ifndef __GLIBTOP_SYSINFO_H__

View File

@@ -15,15 +15,14 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_UNION_H__ #ifndef __GLIBTOP_UNION_H__
#define __GLIBTOP_UNION_H__ #define __GLIBTOP_UNION_H__
#include <glibtop/cpu.h> #include <glibtop/cpu.h>
#include <glibtop/disk.h>
#include <glibtop/mem.h> #include <glibtop/mem.h>
#include <glibtop/swap.h> #include <glibtop/swap.h>
#include <glibtop/uptime.h> #include <glibtop/uptime.h>
@@ -45,7 +44,6 @@
#include <glibtop/procopenfiles.h> #include <glibtop/procopenfiles.h>
#include <glibtop/procwd.h> #include <glibtop/procwd.h>
#include <glibtop/procaffinity.h> #include <glibtop/procaffinity.h>
#include <glibtop/procio.h>
#include <glibtop/mountlist.h> #include <glibtop/mountlist.h>
#include <glibtop/fsusage.h> #include <glibtop/fsusage.h>
@@ -61,7 +59,6 @@ typedef union _glibtop_union glibtop_union;
union _glibtop_union union _glibtop_union
{ {
glibtop_cpu cpu; glibtop_cpu cpu;
glibtop_disk disk;
glibtop_mem mem; glibtop_mem mem;
glibtop_swap swap; glibtop_swap swap;
glibtop_uptime uptime; glibtop_uptime uptime;
@@ -87,7 +84,6 @@ union _glibtop_union
glibtop_proc_open_files proc_open_files; glibtop_proc_open_files proc_open_files;
glibtop_proc_wd proc_wd; glibtop_proc_wd proc_wd;
glibtop_proc_affinity proc_affinity; glibtop_proc_affinity proc_affinity;
glibtop_proc_io proc_io;
}; };
G_END_DECLS G_END_DECLS

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_UPTIME_H__ #ifndef __GLIBTOP_UPTIME_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_VERSION_H__ #ifndef __GLIBTOP_VERSION_H__

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#ifndef __GLIBTOP_WRITE_H__ #ifndef __GLIBTOP_WRITE_H__

View File

@@ -1,13 +1,13 @@
AM_CPPFLAGS = @AM_CPPFLAGS@ INCLUDES = @INCLUDES@
lib_LTLIBRARIES = libgtop-2.0.la lib_LTLIBRARIES = libgtop-2.0.la
libgtop_2_0_la_SOURCES = init.c open.c close.c command.c read.c \ libgtop_2_0_la_SOURCES = init.c open.c close.c command.c read.c \
read_data.c write.c lib.c parameter.c \ read_data.c write.c lib.c parameter.c \
sysdeps.c boxed.c sysdeps.c
libgtop_2_0_la_LDFLAGS = $(LT_VERSION_INFO) -export-symbols $(srcdir)/libgtop.sym -no-undefined libgtop_2_0_la_LDFLAGS = $(LT_VERSION_INFO) -export-symbols $(srcdir)/libgtop.sym
libgtop_2_0_la_LIBADD = $(GLIB_LIBS) $(top_builddir)/sysdeps/common/libgtop_common-2.0.la $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la $(sysdeps_suid_lib) libgtop_2_0_la_LIBADD = $(GLIB_LIBS) $(top_builddir)/sysdeps/common/libgtop_common-2.0.la $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la $(sysdeps_suid_lib)
BUILT_SOURCES = lib.c BUILT_SOURCES = lib.c
@@ -20,36 +20,3 @@ EXTRA_DIST = lib.pl libgtop.sym
CLEANFILES = lib.c CLEANFILES = lib.c
-include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = --accept-unprefixed --warn-all
INTROSPECTION_COMPILER_ARGS =
if HAVE_INTROSPECTION
introspection_sources = $(libgtop_2_0_la_SOURCES) lib.c ../glibtop.h ../libgtopconfig.h \
../include/glibtop/close.h ../include/glibtop/loadavg.h ../include/glibtop/prockernel.h ../include/glibtop/procstate.h \
../include/glibtop/sem_limits.h ../include/glibtop/uptime.h ../include/glibtop/command.h ../include/glibtop/mem.h ../include/glibtop/proclist.h \
../include/glibtop/proctime.h ../include/glibtop/shm_limits.h ../include/glibtop/cpu.h ../include/glibtop/disk.h ../include/glibtop/msg_limits.h \
../include/glibtop/procmem.h ../include/glibtop/procuid.h ../include/glibtop/swap.h \
../include/glibtop/procsegment.h ../include/glibtop/sysdeps.h ../include/glibtop/global.h \
../include/glibtop/procsignal.h ../include/glibtop/union.h ../include/glibtop/gnuserv.h \
../include/glibtop/parameter.h ../include/glibtop/mountlist.h ../include/glibtop/fsusage.h ../include/glibtop/procmap.h ../include/glibtop/signal.h \
../include/glibtop/sysinfo.h ../include/glibtop/ppp.h ../include/glibtop/procargs.h ../include/glibtop/netload.h \
../include/glibtop/procwd.h ../include/glibtop/procaffinity.h ../include/glibtop/procio.h \
../include/glibtop/netlist.h ../include/glibtop/procopenfiles.h ../include/glibtop/open.h
GTop-2.0.gir: libgtop-2.0.la
GTop_2_0_gir_AM_CPPFLAGS = GObject-2.0
GTop_2_0_gir_CFLAGS = $(AM_CPPFLAGS)
GTop_2_0_gir_LIBS = libgtop-2.0.la
GTop_2_0_gir_FILES = $(introspection_sources)
INTROSPECTION_GIRS += GTop-2.0.gir
girdir = $(datadir)/gir-1.0
gir_DATA = $(INTROSPECTION_GIRS)
typelibdir = $(libdir)/girepository-1.0
typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
CLEANFILES += $(gir_DATA) $(typelib_DATA)
endif

View File

@@ -1,47 +0,0 @@
/* Copyright (C) 2011 Red Hat
This file is part of LibGTop 1.0.
Contributed by Jasper St. Pierre <jstpierre@mecheye.net>, November 2011
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 <glibtop.h>
#include <glibtop/mountlist.h>
#include <glibtop/procmap.h>
#include <glibtop/procopenfiles.h>
#define DEFINE_BOXED(type) \
static type * \
type##_copy (type *p) \
{ \
type *n = g_new (type, 1); \
memcpy (n, p, sizeof (type)); \
return n; \
} \
\
G_DEFINE_BOXED_TYPE (type, \
type, \
type##_copy, \
g_free)
DEFINE_BOXED (glibtop);
DEFINE_BOXED (glibtop_map_entry);
DEFINE_BOXED (glibtop_proc_map);
DEFINE_BOXED (glibtop_open_files_entry);
DEFINE_BOXED (glibtop_proc_open_files);
DEFINE_BOXED (glibtop_mountentry);
DEFINE_BOXED (glibtop_mountlist);

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,12 +15,11 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
#include <glibtop/error.h>
#include <glibtop/read.h> #include <glibtop/read.h>
#include <glibtop/write.h> #include <glibtop/write.h>
#include <glibtop/read_data.h> #include <glibtop/read_data.h>
@@ -36,45 +35,6 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
glibtop_init_r (&server, 0, 0); glibtop_init_r (&server, 0, 0);
g_assert(command >= GLIBTOP_CMND_QUIT && command < GLIBTOP_MAX_CMND);
switch (command) {
#define CHECK_CMND(CMND) case (CMND): glibtop_debug("CALL: command %s sending %lu bytes", #CMND, (unsigned long)send_size); break
CHECK_CMND(GLIBTOP_CMND_QUIT);
CHECK_CMND(GLIBTOP_CMND_SYSDEPS);
CHECK_CMND(GLIBTOP_CMND_CPU);
CHECK_CMND(GLIBTOP_CMND_DISK);
CHECK_CMND(GLIBTOP_CMND_MEM);
CHECK_CMND(GLIBTOP_CMND_SWAP);
CHECK_CMND(GLIBTOP_CMND_UPTIME);
CHECK_CMND(GLIBTOP_CMND_LOADAVG);
CHECK_CMND(GLIBTOP_CMND_SHM_LIMITS);
CHECK_CMND(GLIBTOP_CMND_MSG_LIMITS);
CHECK_CMND(GLIBTOP_CMND_SEM_LIMITS);
CHECK_CMND(GLIBTOP_CMND_PROCLIST);
CHECK_CMND(GLIBTOP_CMND_PROC_STATE);
CHECK_CMND(GLIBTOP_CMND_PROC_UID);
CHECK_CMND(GLIBTOP_CMND_PROC_MEM);
CHECK_CMND(GLIBTOP_CMND_PROC_TIME);
CHECK_CMND(GLIBTOP_CMND_PROC_SIGNAL);
CHECK_CMND(GLIBTOP_CMND_PROC_KERNEL);
CHECK_CMND(GLIBTOP_CMND_PROC_SEGMENT);
CHECK_CMND(GLIBTOP_CMND_PROC_ARGS);
CHECK_CMND(GLIBTOP_CMND_PROC_MAP);
CHECK_CMND(GLIBTOP_CMND_MOUNTLIST);
CHECK_CMND(GLIBTOP_CMND_FSUSAGE);
CHECK_CMND(GLIBTOP_CMND_NETLOAD);
CHECK_CMND(GLIBTOP_CMND_PPP);
CHECK_CMND(GLIBTOP_CMND_NETLIST);
CHECK_CMND(GLIBTOP_CMND_PROC_OPEN_FILES);
CHECK_CMND(GLIBTOP_CMND_PROC_WD);
CHECK_CMND(GLIBTOP_CMND_PROC_AFFINITY);
CHECK_CMND(GLIBTOP_CMND_PROC_IO);
default:
glibtop_error_r(server, "CALL: command UNKNOWN(%d) sending %lu bytes", command, (unsigned long)send_size); break;
}
#undef CHECK_CMND
cmnd.command = command; cmnd.command = command;
/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we /* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we
@@ -92,8 +52,10 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size,
glibtop_read_l (server, sizeof (glibtop_response), &response); glibtop_read_l (server, sizeof (glibtop_response), &response);
glibtop_debug ("RESPONSE: offset=%lu - data_size=%lu", #ifdef DEBUG
fprintf (stderr, "RESPONSE: %lu - %d\n",
response.offset, response.data_size); response.offset, response.data_size);
#endif
if (recv_buf) if (recv_buf)
memcpy (recv_buf, ((char *) &response) + response.offset, memcpy (recv_buf, ((char *) &response) + response.offset,

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -26,14 +26,12 @@
#include <glibtop/open.h> #include <glibtop/open.h>
#include <glibtop/parameter.h> #include <glibtop/parameter.h>
#include <glibtop/init_hooks.h> #include <glibtop/init_hooks.h>
#include <glibtop/machine.h>
#ifndef DEFAULT_PORT #ifndef DEFAULT_PORT
#define DEFAULT_PORT 42800 #define DEFAULT_PORT 42800
#endif #endif
static glibtop _glibtop_global_server; static glibtop _glibtop_global_server = { 0 };
glibtop *glibtop_global_server = &_glibtop_global_server; glibtop *glibtop_global_server = &_glibtop_global_server;
static void static void
@@ -143,7 +141,7 @@ _init_server (glibtop *server, const unsigned features)
/* Open pipe to server. */ /* Open pipe to server. */
server->method = GLIBTOP_METHOD_PIPE; server->method = GLIBTOP_METHOD_PIPE;
server->server_command = g_strdup(LIBGTOP_SERVER);
} else { } else {
glibtop_error_r (server, "Unknown server method '%s'", glibtop_error_r (server, "Unknown server method '%s'",
@@ -175,9 +173,6 @@ glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
/* Do the initialization, but only if not already initialized. */ /* Do the initialization, but only if not already initialized. */
if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) { if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) {
glibtop_machine_new (server);
if (flags & GLIBTOP_FEATURES_EXCEPT) if (flags & GLIBTOP_FEATURES_EXCEPT)
features = ~features & GLIBTOP_SYSDEPS_ALL; features = ~features & GLIBTOP_SYSDEPS_ALL;
@@ -214,7 +209,7 @@ glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags)
/* Open server, but only if not already opened. */ /* Open server, but only if not already opened. */
if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0) if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0)
glibtop_open_l (server, "glibtop", glibtop_open_l (glibtop_global_server, "glibtop",
features, flags); features, flags);
return server; return server;
@@ -226,8 +221,6 @@ glibtop_init_s (glibtop **server_ptr, unsigned long features, unsigned flags)
glibtop *server; glibtop *server;
const _glibtop_init_func_t *init_fkt; const _glibtop_init_func_t *init_fkt;
glibtop_debug("init_s with features=%#0lx and flags=%#0x", features, flags);
if (server_ptr == NULL) if (server_ptr == NULL)
return NULL; return NULL;

View File

@@ -1,8 +1,21 @@
#!/usr/bin/perl #!/usr/bin/perl
$[ = 1; # set array base to 1
$, = ' '; # set output field separator $, = ' '; # set output field separator
$\ = "\n"; # set output record separator $\ = "\n"; # set output record separator
sub toupper {
local($_) = @_;
tr/a-z/A-Z/;
return $_;
}
sub tolower {
local($_) = @_;
tr/A-Z/a-z/;
return $_;
}
print '/* lib.c */'; print '/* lib.c */';
print "/* This is a generated file. Please modify `lib.pl' */"; print "/* This is a generated file. Please modify `lib.pl' */";
print ''; print '';
@@ -73,9 +86,9 @@ while (<>) {
sub output { sub output {
local($line) = @_; local($line) = @_;
@line_fields = split(/\|/, $line, 9999); @line_fields = split(/\|/, $line, 9999);
$retval = $line_fields[0]; $retval = $line_fields[1];
$feature = $line_fields[1]; $feature = $line_fields[2];
$param_def = $line_fields[2]; $param_def = $line_fields[4];
$orig = $feature; $orig = $feature;
$feature =~ s/^@//; $feature =~ s/^@//;
@@ -93,16 +106,16 @@ sub output {
} }
if ($param_def eq 'string') { if ($param_def eq 'string') {
$call_param = ', ' . $line_fields[3]; $call_param = ', ' . $line_fields[5];
$param_buf = ''; $param_buf = '';
$buf_set = ''; $buf_set = '';
$param_decl = ",\n " . $space . ' const char *' . $param_decl = ",\n " . $space . ' const char *' .
$line_fields[3]; $line_fields[5];
$send_ptr = "\n\tconst void *send_ptr = " . $line_fields[3] . ';'; $send_ptr = "\n\tconst void *send_ptr = " . $line_fields[5] . ';';
$send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" . $send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" .
$line_fields[3] . ') + 1;'; $line_fields[5] . ') + 1;';
} }
else { else {
$call_param = ''; $call_param = '';
@@ -113,9 +126,9 @@ sub output {
$buf_set = ''; $buf_set = '';
$nr_params = (@params = split(/:/, $param_def, 9999)); $nr_params = (@params = split(/:/, $param_def, 9999));
if ($nr_params) { if ($nr_params) {
$param_buf = "\t\tstruct {\n"; $param_buf = "\n\tstruct {\n";
} }
for ($param = 0; $param < $nr_params; $param++) { for ($param = 1; $param <= $nr_params; $param++) {
$list = $params[$param]; $list = $params[$param];
$type = $params[$param]; $type = $params[$param];
$type =~ s/\(.*//; $type =~ s/\(.*//;
@@ -124,13 +137,13 @@ sub output {
$count = (@fields = split(/,/, $list, 9999)); $count = (@fields = split(/,/, $list, 9999));
if ($count > 0) { if ($count > 0) {
for ($field = 0; $field < $count; $field++) { for ($field = 1; $field <= $count; $field++) {
$param_buf .= "\t\t\t$convert{$type} buf_$fields[$field];\n"; $param_buf .= "\t\t$convert{$type} buf_$fields[$field];\n";
$buf_set .= "\t\tparam_buf.buf_$fields[$field] = $fields[$field];\n"; $buf_set .= "\tparam_buf.buf_$fields[$field] = $fields[$field];\n";
} }
} }
for ($field = 0; $field < $count; $field++) { for ($field = 1; $field <= $count; $field++) {
if ($param_decl eq '') { if ($param_decl eq '') {
$param_decl = ",\n " . $space . ' '; $param_decl = ",\n " . $space . ' ';
} }
@@ -142,19 +155,19 @@ sub output {
$fields[$field]; $fields[$field];
$call_param = $call_param . ', ' . $fields[$field]; $call_param = $call_param . ', ' . $fields[$field];
if ($send_ptr eq '') { if ($send_ptr eq '') {
$send_ptr = "\t\tconst void *send_ptr = &param_buf;"; $send_ptr = "\n\tconst void *send_ptr = &param_buf;";
} }
} }
} }
if ($nr_params) { if ($nr_params) {
$param_buf .= "\t\t} param_buf;\n"; $param_buf .= "\t} param_buf;";
$send_size = "\t\tconst size_t send_size = sizeof param_buf;"; $send_size = "\n\tconst size_t send_size = sizeof param_buf;";
} }
else { else {
$send_size = "\t\tconst size_t send_size = 0;"; $send_size = "\n\tconst size_t send_size = 0;";
} }
if ($send_ptr eq '') { if ($send_ptr eq '') {
$send_ptr = "\t\tconst void *send_ptr = NULL;"; $send_ptr = "\n\tconst void *send_ptr = NULL;";
} }
} }
@@ -162,15 +175,17 @@ sub output {
$feature . ' *buf' . $param_decl . ')'; $feature . ' *buf' . $param_decl . ')';
print "{"; print "{" . $param_buf;
print $send_ptr . '' . $send_size;
if ($retval !~ /^void$/) { if ($retval !~ /^void$/) {
print "\t" . $retval . ' retval = (' . $retval . ') 0;'; print "\t" . $retval . ' retval = (' . $retval . ') 0;';
} }
print $buf_set;
print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" . print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" .
uc($feature) . '), 0);'; &toupper($feature) . '), 0);';
print ''; print '';
print "\t/* If neccessary, we ask the server for the requested"; print "\t/* If neccessary, we ask the server for the requested";
@@ -180,21 +195,12 @@ sub output {
print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&"; print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&";
print "\t (server->features & (1 << GLIBTOP_SYSDEPS_" . print "\t (server->features & (1 << GLIBTOP_SYSDEPS_" .
uc($feature) . ')))'; &toupper($feature) . ')))';
print "\t{"; print "\t{";
if ($param_buf) {
print $param_buf;
print $buf_set;
}
print $send_ptr;
print $send_size;
print '';
print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' . print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' .
uc($feature) . ','; &toupper($feature) . ',';
print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,'; print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,';
print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature . print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature .
@@ -203,7 +209,7 @@ sub output {
print "\t} else {"; print "\t} else {";
if ($orig !~ /^@/) { if ($orig !~ /^@/) {
print '#if (!GLIBTOP_SUID_' . uc($feature) . ')'; print '#if (!GLIBTOP_SUID_' . &toupper($feature) . ')';
} }
print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' . print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' .

View File

@@ -3,8 +3,6 @@ glibtop_close
glibtop_close_r glibtop_close_r
glibtop_get_cpu glibtop_get_cpu
glibtop_get_cpu_l glibtop_get_cpu_l
glibtop_get_disk
glibtop_get_disk_l
glibtop_get_fsusage glibtop_get_fsusage
glibtop_get_fsusage_l glibtop_get_fsusage_l
glibtop_get_loadavg glibtop_get_loadavg
@@ -54,8 +52,6 @@ glibtop_get_shm_limits
glibtop_get_shm_limits_l glibtop_get_shm_limits_l
glibtop_get_proc_affinity glibtop_get_proc_affinity
glibtop_get_proc_affinity_l glibtop_get_proc_affinity_l
glibtop_get_proc_io
glibtop_get_proc_io_l
glibtop_get_swap glibtop_get_swap
glibtop_get_swap_l glibtop_get_swap_l
glibtop_get_sysdeps glibtop_get_sysdeps
@@ -72,10 +68,3 @@ glibtop_open_l
glibtop_server_features glibtop_server_features
glibtop_set_parameter_l glibtop_set_parameter_l
glibtop_sys_siglist glibtop_sys_siglist
glibtop_mountlist_get_type
glibtop_mountentry_get_type
glibtop_open_files_entry_get_type
glibtop_proc_open_files_get_type
glibtop_map_entry_get_type
glibtop_proc_map_get_type
glibtop_get_type

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -47,44 +47,56 @@ glibtop_open_l (glibtop *server, const char *program_name,
server->error_method = GLIBTOP_ERROR_METHOD_DEFAULT; server->error_method = GLIBTOP_ERROR_METHOD_DEFAULT;
glibtop_debug ("SIZEOF: %zu - %zu - %zu - %zu - %zu - %zu", #ifdef DEBUG
fprintf (stderr, "SIZEOF: %u - %u - %u - %u - %u - %u\n",
sizeof (glibtop_command), sizeof (glibtop_response), sizeof (glibtop_command), sizeof (glibtop_response),
sizeof (glibtop_mountentry), sizeof (glibtop_union), sizeof (glibtop_mountentry), sizeof (glibtop_union),
sizeof (glibtop_sysdeps), sizeof (glibtop_response_union)); sizeof (glibtop_sysdeps), sizeof (glibtop_response_union));
#endif
switch (server->method) { switch (server->method) {
case GLIBTOP_METHOD_DIRECT: case GLIBTOP_METHOD_DIRECT:
server->features = 0; server->features = 0;
break; break;
case GLIBTOP_METHOD_INET: case GLIBTOP_METHOD_INET:
glibtop_debug ("Connecting to '%s' port %ld.", #ifdef DEBUG
fprintf (stderr, "Connecting to '%s' port %ld.\n",
server->server_host, server->server_port); server->server_host, server->server_port);
#endif
connect_type = glibtop_make_connection connect_type = glibtop_make_connection
(server->server_host, server->server_port, (server->server_host, server->server_port,
&server->socket); &server->socket);
glibtop_debug ("Connect Type is %d.", connect_type); #ifdef DEBUG
fprintf (stderr, "Connect Type is %d.\n", connect_type);
#endif
server->flags |= _GLIBTOP_INIT_STATE_SERVER; server->flags |= _GLIBTOP_INIT_STATE_SERVER;
server->features = -1; server->features = -1;
break; break;
case GLIBTOP_METHOD_UNIX: case GLIBTOP_METHOD_UNIX:
glibtop_debug ("Connecting to Unix Domain Socket."); #ifdef DEBUG
fprintf (stderr, "Connecting to Unix Domain Socket.\n");
#endif
connect_type = glibtop_make_connection connect_type = glibtop_make_connection
("unix", 0, &server->socket); ("unix", 0, &server->socket);
glibtop_debug ("Connect Type is %d.", connect_type); #ifdef DEBUG
fprintf (stderr, "Connect Type is %d.\n", connect_type);
#endif
server->flags |= _GLIBTOP_INIT_STATE_SERVER; server->flags |= _GLIBTOP_INIT_STATE_SERVER;
server->features = -1; server->features = -1;
break; break;
case GLIBTOP_METHOD_PIPE: case GLIBTOP_METHOD_PIPE:
glibtop_debug ("Opening pipe to server (%s).", #ifdef DEBUG
server->server_command); fprintf (stderr, "Opening pipe to server (%s).\n",
LIBGTOP_SERVER);
#endif
if (pipe (server->input) || pipe (server->output)) if (pipe (server->input) || pipe (server->output))
glibtop_error_io_r (server, "cannot make a pipe"); glibtop_error_io_r (server, "cannot make a pipe");
@@ -98,9 +110,9 @@ glibtop_open_l (glibtop *server, const char *program_name,
close (server->input [0]); close (server->output [1]); close (server->input [0]); close (server->output [1]);
dup2 (server->input [1], 1); dup2 (server->input [1], 1);
dup2 (server->output [0], 0); dup2 (server->output [0], 0);
execl (server->server_command, "libgtop-server", NULL); execl (LIBGTOP_SERVER, "libgtop-server", NULL);
glibtop_error_io_r (server, "execl (%s)", glibtop_error_io_r (server, "execl (%s)",
server->server_command); LIBGTOP_SERVER);
_exit (2); _exit (2);
} }
@@ -153,14 +165,18 @@ glibtop_open_l (glibtop *server, const char *program_name,
memcpy (&server->sysdeps, &sysdeps, sizeof (glibtop_sysdeps)); memcpy (&server->sysdeps, &sysdeps, sizeof (glibtop_sysdeps));
glibtop_debug ("Server features are %#0lx.", #ifdef DEBUG
fprintf (stderr, "Server features are %lu.\n",
server->features); server->features);
#endif
} }
/* In any case, we call the open functions of our own sysdeps /* In any case, we call the open functions of our own sysdeps
* directory. */ * directory. */
glibtop_debug ("Calling sysdeps open function."); #ifdef DEBUG
fprintf (stderr, "Calling sysdeps open function.\n");
#endif
glibtop_init_s (&server, features, flags); glibtop_init_s (&server, features, flags);
} }

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -33,7 +33,9 @@ glibtop_read_l (glibtop *server, size_t size, void *buf)
int fd; int fd;
glibtop_init_r (&server, 0, 0); glibtop_init_r (&server, 0, 0);
glibtop_debug("LIBRARY: really reading %d bytes.", (int)size); #ifdef DEBUG
fprintf (stderr, "LIBRARY: really reading %d bytes.\n", (int)size);
#endif
fd = server->socket ? server->socket : server->input[0]; fd = server->socket ? server->socket : server->input[0];

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -36,8 +36,10 @@ glibtop_read_data_l (glibtop *server)
glibtop_init_r (&server, 0, 0); glibtop_init_r (&server, 0, 0);
glibtop_debug ("LIBRARY: reading %lu data bytes.", #ifdef DEBUG
fprintf (stderr, "LIBRARY: reading %lu data bytes.\n",
(unsigned long) sizeof (size_t)); (unsigned long) sizeof (size_t));
#endif
if (server->socket) { if (server->socket) {
ret = recv (server->socket, &size, sizeof (size_t), 0); ret = recv (server->socket, &size, sizeof (size_t), 0);
@@ -48,8 +50,10 @@ glibtop_read_data_l (glibtop *server)
if (ret < 0) if (ret < 0)
glibtop_error_io_r (server, _("read data size")); glibtop_error_io_r (server, _("read data size"));
glibtop_debug ("LIBRARY: really reading %lu data bytes (ret = %d).", #ifdef DEBUG
fprintf (stderr, "LIBRARY: really reading %lu data bytes (ret = %d).\n",
(unsigned long) size, ret); (unsigned long) size, ret);
#endif
if (!size) return NULL; if (!size) return NULL;

104
lib/structures.pl Normal file
View File

@@ -0,0 +1,104 @@
#!/usr/bin/perl
die "Usage: $0 features.def structures.def" unless $#ARGV == 2;
$[ = 1; # set array base to 1
$, = ' '; # set output field separator
$\ = "\n"; # set output record separator
sub toupper {
local($_) = @_;
tr/a-z/A-Z/;
return $_;
}
sub tolower {
local($_) = @_;
tr/A-Z/a-z/;
return $_;
}
$structures{$structure_count++} = 'glibtop';
open FEATURESDEF, $ARGV[1] or
die "open ($ARGV[1]): $!";
while (<FEATURESDEF>) {
chop; # strip record separator
if (/^[^\#]/) {
&parse_features_def ($_);
}
}
close FEATURESDEF;
open STRUCTDEF, $ARGV[2] or
die "open ($ARGV[2]): $!";
while (<STRUCTDEF>) {
chop; # strip record separator
if (/^[^\#]/) {
&parse_structure_def ($_);
}
}
close STRUCTDEF;
$init_structures_code = sprintf
(qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_GLIBTOP] = scm_make_structure_type\n\t\t("glibtop", sizeof (glibtop));\n]);
for ($nr = 0; $nr < $structure_count; $nr++) {
$structure = $structures{$nr};
$init_structures_code .= sprintf
(qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_%s] = scm_make_structure_type\n\t\t("%s", sizeof (%s));\n],
toupper($structure), $structure, $structure);
}
print qq[/* structures.h */];
print qq[/* This is a generated file. Please modify \`guile.pl\' */];
print '';
print qq[\#ifndef __GLIBTOP_STRUCTURES_H__];
print qq[\#define __GLIBTOP_STRUCTURES_H__];
print '';
print qq[\#include <glibtop.h>];
print '';
print qq[G_BEGIN_DECLS];
print '';
for ($nr = 0; $nr < $structure_count; $nr++) {
$structure = $structures{$nr};
printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_STRUCTURE_'.&toupper($structure), $nr);
}
print '';
printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_MAX_STRUCTURES', $structure_count);
print '';
print qq[G_END_DECLS];
print '';
print qq[\#endif /* __GLIBTOP_STRUCTURES_H__ */];
sub parse_features_def {
local($line) = @_;
@line_fields = split(/\|/, $line, 9999);
$retval = $line_fields[1];
$element_def = $line_fields[3];
$feature = $line_fields[2];
$param_def = $line_fields[4];
$feature =~ s/^@//;
$features{$feature} = $feature;
$structures{$structure_count++} = 'glibtop_'.$feature;
}
sub parse_structure_def {
local($line) = @_;
@line_fields = split(/\|/, $line, 9999);
$name = $line_fields[1];
$structures{$structure_count++} = $name;
}

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -27,7 +27,6 @@
const unsigned long glibtop_server_features = const unsigned long glibtop_server_features =
GLIBTOP_SUID_CPU + GLIBTOP_SUID_CPU +
GLIBTOP_SUID_DISK +
GLIBTOP_SUID_MEM + GLIBTOP_SUID_MEM +
GLIBTOP_SUID_SWAP + GLIBTOP_SUID_SWAP +
GLIBTOP_SUID_UPTIME + GLIBTOP_SUID_UPTIME +
@@ -45,21 +44,16 @@ GLIBTOP_SUID_PROC_KERNEL +
GLIBTOP_SUID_PROC_SEGMENT + GLIBTOP_SUID_PROC_SEGMENT +
GLIBTOP_SUID_PROC_ARGS + GLIBTOP_SUID_PROC_ARGS +
GLIBTOP_SUID_PROC_MAP + GLIBTOP_SUID_PROC_MAP +
GLIBTOP_SUID_PROC_OPEN_FILES +
GLIBTOP_SUID_NETLOAD + GLIBTOP_SUID_NETLOAD +
GLIBTOP_SUID_NETLIST + GLIBTOP_SUID_NETLIST +
GLIBTOP_SUID_PROC_WD + GLIBTOP_SUID_PROC_WD +
GLIBTOP_SUID_PROC_AFFINITY + GLIBTOP_SUID_PROC_AFFINITY +
GLIBTOP_SUID_PPP + GLIBTOP_SUID_PPP;
GLIBTOP_SUID_PROC_IO;
const _glibtop_init_func_t _glibtop_init_hook_s [] = { const _glibtop_init_func_t _glibtop_init_hook_s [] = {
#if !GLIBTOP_SUID_CPU #if !GLIBTOP_SUID_CPU
_glibtop_init_cpu_s, _glibtop_init_cpu_s,
#endif #endif
#if !GLIBTOP_SUID_DISK
_glibtop_init_disk_s,
#endif
#if !GLIBTOP_SUID_MEM #if !GLIBTOP_SUID_MEM
_glibtop_init_mem_s, _glibtop_init_mem_s,
#endif #endif
@@ -125,12 +119,6 @@ const _glibtop_init_func_t _glibtop_init_hook_s [] = {
#endif #endif
#if !GLIBTOP_SUID_PPP #if !GLIBTOP_SUID_PPP
_glibtop_init_ppp_s, _glibtop_init_ppp_s,
#endif
#if !GLIBTOP_SUID_PROC_IO
_glibtop_init_proc_io_s,
#endif
#if !GLIBTOP_SUID_PROC_OPEN_FILES
_glibtop_init_proc_open_files_s,
#endif #endif
NULL NULL
}; };
@@ -139,9 +127,6 @@ const _glibtop_init_func_t _glibtop_init_hook_p [] = {
#if GLIBTOP_SUID_CPU #if GLIBTOP_SUID_CPU
_glibtop_init_cpu_p, _glibtop_init_cpu_p,
#endif #endif
#if GLIBTOP_SUID_DISK
_glibtop_init_disk_p,
#endif
#if GLIBTOP_SUID_MEM #if GLIBTOP_SUID_MEM
_glibtop_init_mem_p, _glibtop_init_mem_p,
#endif #endif
@@ -207,12 +192,6 @@ const _glibtop_init_func_t _glibtop_init_hook_p [] = {
#endif #endif
#if GLIBTOP_SUID_PPP #if GLIBTOP_SUID_PPP
_glibtop_init_ppp_p, _glibtop_init_ppp_p,
#endif
#if GLIBTOP_SUID_PROC_IO
_glibtop_init_proc_io_p,
#endif
#if GLIBTOP_SUID_PROC_OPEN_FILES
_glibtop_init_proc_open_files_p,
#endif #endif
NULL NULL
}; };

View File

@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with LibGTop; see the file COPYING. If not, write to the along with LibGTop; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02110-1301, USA. Boston, MA 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -37,7 +37,9 @@ glibtop_write_l (glibtop *server, size_t size, void *buf)
if (size == 0) return; if (size == 0) return;
glibtop_debug("LIBRARY: really writing %d bytes.", (int)size); #ifdef DEBUG
fprintf (stderr, "LIBRARY: really writing %d bytes.\n", (int)size);
#endif
fd = server->socket ? server->socket : server->output[1]; fd = server->socket ? server->socket : server->output[1];

View File

@@ -4,16 +4,20 @@ dnl
dnl It defines the following variables: dnl It defines the following variables:
dnl dnl
dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop. dnl * 'libgtop_sysdeps_dir' - sysdeps dir for libgtop.
dnl * 'libgtop_need_server' - is the server really needed? Defines 'LIBGTOP_NEED_SERVER' dnl * 'libgtop_use_machine_h' - some of system dependend parts of libgtop provide
dnl if true; defines conditional 'LIBGTOP_NEED_SERVER'. dnl their own header file. In this case we need to
dnl define 'HAVE_GLIBTOP_MACHINE_H'.
dnl * 'libgtop_need_server' - is the server really needed? Defines 'NEED_LIBGTOP'
dnl if true; defines conditional 'NEED_LIBGTOP'.
AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
AC_SUBST(libgtop_sysdeps_dir) AC_SUBST(libgtop_sysdeps_dir)
AC_SUBST(libgtop_use_machine_h)
AC_SUBST(libgtop_need_server) AC_SUBST(libgtop_need_server)
AC_ARG_WITH(examples, AC_ARG_WITH(libgtop-examples,
AS_HELP_STRING([--with-examples], AS_HELP_STRING([--with-examples],
[Build the libgtop examples @<:@default=yes@:>@]),[ [Build the libgtop examples @<:@default=yes@:>@]),[
build_examples="$withval"], [build_examples=yes]) build_examples="$withval"], [build_examples=yes])
@@ -27,58 +31,77 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes) AM_CONDITIONAL(HACKER_MODE, test x"$hacker_mode" = xyes)
AC_ARG_WITH(libgtop-smp,
AS_HELP_STRING([--with-libgtop-smp],
[Enable SMP support @<:@default-auto@:>@]),[
libgtop_smp="$withval"],[libgtop_smp=auto])
if test $libgtop_smp = auto ; then
AC_MSG_CHECKING(whether to enable SMP support)
case "$host_os" in
linux*)
libgtop_smp=yes
;;
aix*)
libgtop_smp=yes
;;
*)
libgtop_smp=no
;;
esac
AC_MSG_RESULT($libgtop_smp)
fi
if test $libgtop_smp = yes ; then
AC_DEFINE(HAVE_LIBGTOP_SMP, 1, [Define if libgtop supports SMP])
fi
AM_CONDITIONAL(LIBGTOP_SMP, test $libgtop_smp = yes)
AC_MSG_CHECKING(for libgtop sysdeps directory) AC_MSG_CHECKING(for libgtop sysdeps directory)
case "$host_os" in case "$host_os" in
linux*) linux*)
libgtop_sysdeps_dir=linux libgtop_sysdeps_dir=linux
libgtop_use_machine_h=no
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_need_server=yes libgtop_need_server=no
libgtop_sysdeps_private_mountlist=yes libgtop_sysdeps_private_mountlist=yes
libgtop_sysdeps_private_fsusage=yes libgtop_sysdeps_private_fsusage=yes
libgtop_postinstall='chown root $(DESTDIR)$(libexecdir)/libgtop_server2 && chmod 4755 $(DESTDIR)$(libexecdir)/libgtop_server2'
;; ;;
netbsd*|bsdi*) netbsd*|openbsd*|bsdi*)
libgtop_sysdeps_dir=bsd libgtop_sysdeps_dir=bsd
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_postinstall='chgrp kmem $(DESTDIR)$(libexecdir)/libgtop_server2 && chmod 2755 $(DESTDIR)$(libexecdir)/libgtop_server2' libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
;;
openbsd*)
libgtop_sysdeps_dir=openbsd
libgtop_need_server=yes
libgtop_sysdeps_private_mountlist=yes
libgtop_sysdeps_private_fsusage=yes
libgtop_postinstall='chgrp kmem $(DESTDIR)$(libexecdir)/libgtop_server2 && chmod 2555 $(DESTDIR)$(libexecdir)/libgtop_server2'
;; ;;
freebsd*|kfreebsd*) freebsd*|kfreebsd*)
libgtop_sysdeps_dir=freebsd libgtop_sysdeps_dir=freebsd
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_sysdeps_private_mountlist=yes libgtop_sysdeps_private_mountlist=yes
libgtop_sysdeps_private_fsusage=yes libgtop_sysdeps_private_fsusage=yes
libgtop_postinstall='chgrp kmem $(DESTDIR)$(libexecdir)/libgtop_server2 && chmod 2755 $(DESTDIR)$(libexecdir)/libgtop_server2' libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod 2755 $(bindir)/libgtop_server2'
;; ;;
solaris*) solaris*)
libgtop_sysdeps_dir=solaris libgtop_sysdeps_dir=solaris
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_postinstall='chgrp sys $(DESTDIR)$(libexecdir)/libgtop_server && chmod 2755 $(DESTDIR)$(libexecdir)/libgtop_server' libgtop_postinstall='chgrp sys $(bindir)/libgtop_server && chmod 2755 $(bindir)/libgtop_server'
;; ;;
aix*) aix*)
libgtop_sysdeps_dir=aix libgtop_sysdeps_dir=aix
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_postinstall='chgrp system $(DESTDIR)$(libexecdir)/libgtop_server && chmod g+s $(DESTDIR)$(libexecdir)/libgtop_server2' libgtop_postinstall='chgrp system $(bindir)/libgtop_server && chmod g+s $(bindir)/libgtop_server2'
;; ;;
darwin*) darwin*)
libgtop_sysdeps_dir=darwin libgtop_sysdeps_dir=darwin
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
libgtop_have_sysinfo=yes libgtop_have_sysinfo=yes
libgtop_postinstall='chgrp kmem $(DESTDIR)$(libexecdir)/libgtop_server2 && chmod g+s $(DESTDIR)$(libexecdir)/libgtop_server2' libgtop_postinstall='chgrp kmem $(bindir)/libgtop_server2 && chmod g+s $(bindir)/libgtop_server2'
;;
cygwin*)
libgtop_sysdeps_dir=cygwin
libgtop_need_server=no
libgtop_have_sysinfo=yes
libgtop_sysdeps_private_mountlist=yes
;; ;;
*) *)
if test x$hacker_mode = xyes ; then if test x$hacker_mode = xyes ; then
@@ -87,19 +110,23 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
#Please note that this port is obsolete and not working at #Please note that this port is obsolete and not working at
#all. It is only useful for people who want to fix it ... :-) #all. It is only useful for people who want to fix it ... :-)
libgtop_sysdeps_dir=sun4 libgtop_sysdeps_dir=sun4
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
;; ;;
osf*) osf*)
libgtop_sysdeps_dir=osf1 libgtop_sysdeps_dir=osf1
libgtop_use_machine_h=yes
libgtop_need_server=yes libgtop_need_server=yes
;; ;;
*) *)
libgtop_sysdeps_dir=stub libgtop_sysdeps_dir=stub
libgtop_use_machine_h=no
libgtop_need_server=no libgtop_need_server=no
;; ;;
esac esac
else else
libgtop_sysdeps_dir=stub libgtop_sysdeps_dir=stub
libgtop_use_machine_h=no
libgtop_need_server=no libgtop_need_server=no
fi fi
;; ;;
@@ -115,16 +142,30 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
case "$host_os" in case "$host_os" in
*bsd*) *bsd*)
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=) case "$host_os" in
*kfreebsd*)
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS="-lkvm -lfreebsd -lbsd", KVM_LIBS=, -lfreebsd -lbsd);;
*)
AC_CHECK_LIB(kvm, kvm_open, KVM_LIBS=-lkvm, KVM_LIBS=);;
esac
AC_SUBST(KVM_LIBS) AC_SUBST(KVM_LIBS)
AC_CHECK_LIB(util, kinfo_getfile) case "$host_os" in
AC_CHECK_FUNCS(kinfo_getfile) kfreebsd*)
EXTRA_SYSDEPS_LIBS="-lgeom -ldevstat"
;;
freebsd*)
osreldate=`sysctl -n kern.osreldate 2>/dev/null`
if test -n "${osreldate}" && test ${osreldate} -ge 600000 ; then
EXTRA_SYSDEPS_LIBS="-lgeom -ldevstat"
fi
;;
esac
AC_CHECK_HEADERS(net/if_var.h,,, [ AC_SUBST(EXTRA_SYSDEPS_LIBS)
#include <net/if.h>
#include <sys/types.h> AC_CHECK_HEADERS(net/if_var.h)
#include <sys/socket.h>])
AC_MSG_CHECKING([for I4B]) AC_MSG_CHECKING([for I4B])
AC_TRY_COMPILE([ AC_TRY_COMPILE([
#include <sys/types.h> #include <sys/types.h>
@@ -189,10 +230,10 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[
fi fi
AC_MSG_CHECKING(what we need to define to get struct msginfo) AC_MSG_CHECKING(what we need to define to get struct msginfo)
AC_CACHE_VAL(msginfo_cv_needs, AC_CACHE_VAL(msginfo_needs,
msginfo_cv_needs= msginfo_needs=
for def in nothing KERNEL _KERNEL; do for def in nothing KERNEL _KERNEL; do
AC_COMPILE_IFELSE([AC_LANG_SOURCE([#define $def AC_COMPILE_IFELSE([#define $def
#include <sys/types.h> #include <sys/types.h>
#include <sys/ipc.h> #include <sys/ipc.h>
#include <sys/msg.h> #include <sys/msg.h>
@@ -204,23 +245,23 @@ main (void)
struct msginfo mi; struct msginfo mi;
mi.msgmax = 0; mi.msgmax = 0;
return 0; return 0;
}])], }],
[ [
msginfo_cv_needs=$def msginfo_needs=$def
if test ${msginfo_cv_needs} = KERNEL; then if test ${msginfo_needs} = KERNEL; then
AC_DEFINE(STRUCT_MSGINFO_NEEDS_KERNEL, 1, AC_DEFINE(STRUCT_MSGINFO_NEEDS_KERNEL, 1,
[Define to 1 if we need to define KERNEL to get 'struct msginfo']) [Define to 1 if we need to define KERNEL to get 'struct msginfo'])
elif test ${msginfo_cv_needs} = _KERNEL; then elif test ${msginfo_needs} = _KERNEL; then
AC_DEFINE(STRUCT_MSGINFO_NEEDS__KERNEL, 1, AC_DEFINE(STRUCT_MSGINFO_NEEDS__KERNEL, 1,
[Define to 1 if we need to define _KERNEL to get 'struct msginfo']) [Define to 1 if we need to define _KERNEL to get 'struct msginfo'])
fi fi
] ]
) )
test -n "${msginfo_cv_needs}" && break test -n "${msginfo_needs}" && break
done done
) )
AC_MSG_RESULT($msginfo_cv_needs) AC_MSG_RESULT($msginfo_needs)
if test -z "${msginfo_cv_needs}"; then if test -z "${msginfo_needs}"; then
AC_MSG_ERROR([Could not find the definition of 'struct msginfo']) AC_MSG_ERROR([Could not find the definition of 'struct msginfo'])
fi fi
;; ;;
@@ -265,14 +306,22 @@ main (void)
;; ;;
esac esac
AC_MSG_CHECKING(for machine.h in libgtop sysdeps dir)
AC_MSG_RESULT($libgtop_use_machine_h)
AC_MSG_CHECKING(whether we need libgtop) AC_MSG_CHECKING(whether we need libgtop)
AC_MSG_RESULT($libgtop_need_server) AC_MSG_RESULT($libgtop_need_server)
if test x$libgtop_need_server = xyes ; then if test x$libgtop_need_server = xyes ; then
AC_DEFINE(LIBGTOP_NEED_SERVER, 1, [Define if libgtop server is required]) AC_DEFINE(NEED_LIBGTOP, 1, [Define if libgtop is required])
fi fi
AM_CONDITIONAL(LIBGTOP_NEED_SERVER, test x$libgtop_need_server = xyes) if test x$libgtop_use_machine_h = xyes ; then
AC_DEFINE(HAVE_GLIBTOP_MACHINE_H, 1,
[Define if machine.h in libgtop sysdeps dir])
fi
AM_CONDITIONAL(NEED_LIBGTOP, test x$libgtop_need_server = xyes)
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_MOUNTLIST, test x$libgtop_sysdeps_private_mountlist = xyes) AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_MOUNTLIST, test x$libgtop_sysdeps_private_mountlist = xyes)
AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_FSUSAGE, test x$libgtop_sysdeps_private_fsusage = xyes) AM_CONDITIONAL(LIBGTOP_SYSDEPS_PRIVATE_FSUSAGE, test x$libgtop_sysdeps_private_fsusage = xyes)
]) ])

View File

@@ -1,32 +0,0 @@
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:gnome="http://api.gnome.org/doap-extensions#"
xmlns="http://usefulinc.com/ns/doap#">
<name xml:lang="en">libgtop</name>
<shortdesc xml:lang="en">LibGTop2</shortdesc>
<description xml:lang="en">A library for collecting system monitoring data</description>
<download-page rdf:resource="http://download.gnome.org/sources/libgtop/" />
<bug-database rdf:resource="https://gitlab.gnome.org/GNOME/libgtop/issues/" />
<category rdf:resource="http://api.gnome.org/doap-extensions#core" />
<programming-language>C</programming-language>
<maintainer>
<foaf:Person>
<foaf:name>Benoît Dejean</foaf:name>
<foaf:mbox rdf:resource="mailto:benoit@placenet.org" />
<gnome:userid>bdejean</gnome:userid>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Robert Roth</foaf:name>
<foaf:mbox rdf:resource="mailto:robert.roth.off@gmail.com" />
<gnome:userid>robertroth</gnome:userid>
</foaf:Person>
</maintainer>
</Project>

View File

@@ -16,7 +16,7 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# #
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
@@ -2756,7 +2756,7 @@ case "$ltmain" in
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# #
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a

View File

@@ -1,96 +0,0 @@
dnl -*- mode: autoconf -*-
dnl Copyright 2009 Johan Dahlin
dnl
dnl This file is free software; the author(s) gives unlimited
dnl permission to copy and/or distribute it, with or without
dnl modifications, as long as this notice is preserved.
dnl
# serial 1
m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
[
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
dnl enable/disable introspection
m4_if([$2], [require],
[dnl
enable_introspection=yes
],[dnl
AC_ARG_ENABLE(introspection,
AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
[Enable introspection for this build]),,
[enable_introspection=auto])
])dnl
AC_MSG_CHECKING([for gobject-introspection])
dnl presence/version checking
AS_CASE([$enable_introspection],
[no], [dnl
found_introspection="no (disabled, use --enable-introspection to enable)"
],dnl
[yes],[dnl
PKG_CHECK_EXISTS([gobject-introspection-1.0],,
AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
found_introspection=yes,
AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
],dnl
[auto],[dnl
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
],dnl
[dnl
AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
])dnl
AC_MSG_RESULT([$found_introspection])
INTROSPECTION_SCANNER=
INTROSPECTION_COMPILER=
INTROSPECTION_GENERATE=
INTROSPECTION_GIRDIR=
INTROSPECTION_TYPELIBDIR=
if test "x$found_introspection" = "xyes"; then
INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
INTROSPECTION_GIRDIR=`echo ${INTROSPECTION_GIRDIR} | sed -e "s|${datadir}|\\\$(datadir)|"`
INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
INTROSPECTION_TYPELIBDIR=`echo ${INTROSPECTION_TYPELIBDIR} | sed -e "s|${libdir}|\\\$(libdir)|"`
INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
fi
AC_SUBST(INTROSPECTION_SCANNER)
AC_SUBST(INTROSPECTION_COMPILER)
AC_SUBST(INTROSPECTION_GENERATE)
AC_SUBST(INTROSPECTION_GIRDIR)
AC_SUBST(INTROSPECTION_TYPELIBDIR)
AC_SUBST(INTROSPECTION_CFLAGS)
AC_SUBST(INTROSPECTION_LIBS)
AC_SUBST(INTROSPECTION_MAKEFILE)
AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
])
dnl Usage:
dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
[
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
])
dnl Usage:
dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
[
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
])

Some files were not shown because too many files have changed in this diff Show More