1 /* Copyright (C) 1998-99 Martin Baulig
2    This file is part of LibGTop 1.0.
3 
4    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
5 
6    LibGTop is free software; you can redistribute it and/or modify it
7    under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License,
9    or (at your option) any later version.
10 
11    LibGTop is distributed in the hope that it will be useful, but WITHOUT
12    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14    for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with LibGTop; see the file COPYING. If not, write to the
18    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19    Boston, MA 02110-1301, USA.
20 */
21 
22 #ifdef HAVE_CONFIG_H
23 #  include <config.h>
24 #endif
25 
26 #include <locale.h>
27 #include <libintl.h>
28 #include <stdio.h>
29 
30 #include <glibtop.h>
31 #include <glibtop/open.h>
32 #include <glibtop/close.h>
33 #include <glibtop/sysdeps.h>
34 
35 #include <glibtop/parameter.h>
36 
37 #ifndef PROFILE_COUNT
38 #define PROFILE_COUNT	1
39 #endif
40 
41 int
main(int argc,char * argv[])42 main (int argc, char *argv [])
43 {
44 	glibtop_sysdeps sysdeps;
45 	unsigned method, count, port;
46 	char buffer [BUFSIZ];
47 
48 	count = PROFILE_COUNT;
49 
50 	setlocale (LC_ALL, "");
51 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR);
52 	textdomain (GETTEXT_PACKAGE);
53 
54 	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN);
55 
56 	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method));
57 
58 	printf ("Method = %d\n", method);
59 
60 	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ);
61 	buffer [count] = 0;
62 
63 	printf ("Command = '%s'\n", buffer);
64 
65 	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ);
66 	buffer [count] = 0;
67 
68 	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port));
69 
70 	printf ("Host = '%s' - %u\n\n", buffer, port);
71 
72 	glibtop_init_r (&glibtop_global_server, 0, 0);
73 
74 	glibtop_get_sysdeps (&sysdeps);
75 
76 #define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f)) ? 1 : 0)
77 
78 	printf ("Sysdeps (0x%08lx):\n\n"
79 		"\tfeatures:\t\t0x%08lx\n\n"
80 		"\tcpu:\t\t%d\t0x%08lx\n"
81 		"\tmem:\t\t%d\t0x%08lx\n"
82 		"\tswap:\t\t%d\t0x%08lx\n\n"
83 		"\tuptime:\t\t%d\t0x%08lx\n"
84 		"\tloadavg:\t%d\t0x%08lx\n\n"
85 		"\tshm_limits:\t%d\t0x%08lx\n"
86 		"\tmsg_limits:\t%d\t0x%08lx\n"
87 		"\tsem_limits:\t%d\t0x%08lx\n\n"
88 		"\tproclist:\t%d\t0x%08lx\n\n"
89 		"\tproc_state:\t%d\t0x%08lx\n"
90 		"\tproc_uid:\t%d\t0x%08lx\n"
91 		"\tproc_mem:\t%d\t0x%08lx\n"
92 		"\tproc_time:\t%d\t0x%08lx\n"
93 		"\tproc_signal:\t%d\t0x%08lx\n"
94 		"\tproc_kernel:\t%d\t0x%08lx\n"
95 		"\tproc_segment:\t%d\t0x%08lx\n"
96 		"\tproc_args:\t%d\t0x%08lx\n"
97 		"\tproc_map:\t%d\t0x%08lx\n"
98 		"\tproc_io:\t%d\t0x%08lx\n\n"
99 		"\tmountlist:\t%d\t0x%08lx\n"
100 		"\tfsusage:\t%d\t0x%08lx\n\n"
101 		"\tnetload:\t%d\t0x%08lx\n"
102 		"\tppp:\t\t%d\t0x%08lx\n\n",
103 		(unsigned long) sysdeps.flags,
104 		(unsigned long) sysdeps.features,
105 		FEATURE_CHECK(CPU),
106 		(unsigned long) sysdeps.cpu,
107 		FEATURE_CHECK(MEM),
108 		(unsigned long) sysdeps.mem,
109 		FEATURE_CHECK(SWAP),
110 		(unsigned long) sysdeps.swap,
111 		FEATURE_CHECK(UPTIME),
112 		(unsigned long) sysdeps.uptime,
113 		FEATURE_CHECK(LOADAVG),
114 		(unsigned long) sysdeps.loadavg,
115 		FEATURE_CHECK(SHM_LIMITS),
116 		(unsigned long) sysdeps.shm_limits,
117 		FEATURE_CHECK(MSG_LIMITS),
118 		(unsigned long) sysdeps.msg_limits,
119 		FEATURE_CHECK(SEM_LIMITS),
120 		(unsigned long) sysdeps.sem_limits,
121 		FEATURE_CHECK(PROCLIST),
122 		(unsigned long) sysdeps.proclist,
123 		FEATURE_CHECK(PROC_STATE),
124 		(unsigned long) sysdeps.proc_state,
125 		FEATURE_CHECK(PROC_UID),
126 		(unsigned long) sysdeps.proc_uid,
127 		FEATURE_CHECK(PROC_MEM),
128 		(unsigned long) sysdeps.proc_mem,
129 		FEATURE_CHECK(PROC_TIME),
130 		(unsigned long) sysdeps.proc_time,
131 		FEATURE_CHECK(PROC_SIGNAL),
132 		(unsigned long) sysdeps.proc_signal,
133 		FEATURE_CHECK(PROC_KERNEL),
134 		(unsigned long) sysdeps.proc_kernel,
135 		FEATURE_CHECK(PROC_SEGMENT),
136 		(unsigned long) sysdeps.proc_segment,
137 		FEATURE_CHECK(PROC_ARGS),
138 		(unsigned long) sysdeps.proc_args,
139 		FEATURE_CHECK(PROC_MAP),
140 		(unsigned long) sysdeps.proc_map,
141 		FEATURE_CHECK(PROC_IO),
142 		(unsigned long) sysdeps.proc_io,
143 		FEATURE_CHECK(MOUNTLIST),
144 		(unsigned long) sysdeps.mountlist,
145 		FEATURE_CHECK(FSUSAGE),
146 		(unsigned long) sysdeps.fsusage,
147 		FEATURE_CHECK(NETLOAD),
148 		(unsigned long) sysdeps.netload,
149 		FEATURE_CHECK(PPP),
150 		(unsigned long) sysdeps.ppp);
151 
152 	glibtop_close ();
153 
154 	exit (0);
155 }
156