ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/statgrab.h
Revision: 1.35
Committed: Tue Apr 6 16:37:34 2004 UTC (20 years, 1 month ago) by tdb
Content type: text/plain
Branch: MAIN
Changes since 1.34: +5 -1 lines
Log Message:
Add compatibility code. This provides a working pre-0.10 API for old
applications. To use simply change the #include line to:

#define SG_ENABLE_DEPRECATED
#include <statgrab.h>

This can be disabled at build time completely using --disable-deprecated.

File Contents

# Content
1 /*
2 * i-scream libstatgrab
3 * http://www.i-scream.org
4 * Copyright (C) 2000-2004 i-scream
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 * 02111-1307 USA
20 *
21 * $Id: statgrab.h,v 1.34 2004/04/06 14:52:58 tdb Exp $
22 */
23
24 #include <sys/types.h>
25
26 /* FIXME typedefs for 32/64-bit types */
27 /* FIXME maybe tidy up field names? */
28 /* FIXME tab/space damage */
29 /* FIXME prefixes for util functions too */
30 /* FIXME comments for less obvious fields */
31
32 int sg_init(void);
33 int sg_drop_privileges(void);
34
35 typedef struct {
36 char *os_name;
37 char *os_release;
38 char *os_version;
39 char *platform;
40 char *hostname;
41 time_t uptime;
42 } sg_host_info;
43
44 sg_host_info *sg_get_host_info();
45
46 typedef struct {
47 long long user;
48 long long kernel;
49 long long idle;
50 long long iowait;
51 long long swap;
52 long long nice;
53 long long total;
54 time_t systime;
55 } sg_cpu_stats;
56
57 sg_cpu_stats *sg_get_cpu_stats();
58 sg_cpu_stats *sg_get_cpu_stats_diff();
59
60 typedef struct {
61 float user;
62 float kernel;
63 float idle;
64 float iowait;
65 float swap;
66 float nice;
67 time_t time_taken;
68 } sg_cpu_percents;
69
70 sg_cpu_percents *sg_get_cpu_percents();
71
72 typedef struct {
73 long long total;
74 long long free;
75 long long used;
76 long long cache;
77 } sg_mem_stats;
78
79 sg_mem_stats *sg_get_mem_stats();
80
81 typedef struct {
82 double min1;
83 double min5;
84 double min15;
85 } sg_load_stats;
86
87 sg_load_stats *sg_get_load_stats();
88
89 typedef struct {
90 char *name_list;
91 int num_entries;
92 } sg_user_stats;
93
94 sg_user_stats *sg_get_user_stats();
95
96 typedef struct {
97 long long total;
98 long long used;
99 long long free;
100 } sg_swap_stats;
101
102 sg_swap_stats *sg_get_swap_stats();
103
104 typedef struct {
105 char *device_name;
106 char *fs_type;
107 char *mnt_point;
108 long long size;
109 long long used;
110 long long avail;
111 long long total_inodes;
112 long long used_inodes;
113 long long free_inodes;
114 } sg_fs_stats;
115
116 sg_fs_stats *sg_get_fs_stats(int *entries);
117
118 typedef struct {
119 char *disk_name;
120 long long read_bytes;
121 long long write_bytes;
122 time_t systime;
123 } sg_disk_io_stats;
124
125 sg_disk_io_stats *sg_get_disk_io_stats(int *entries);
126 sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries);
127
128 typedef struct {
129 char *interface_name;
130 long long tx;
131 long long rx;
132 long long ipackets;
133 long long opackets;
134 long long ierrors;
135 long long oerrors;
136 long long collisions;
137 time_t systime;
138 } sg_network_io_stats;
139
140 sg_network_io_stats *sg_get_network_io_stats(int *entries);
141 sg_network_io_stats *sg_get_network_io_stats_diff(int *entries);
142
143 typedef enum {
144 SG_IFACE_DUPLEX_FULL,
145 SG_IFACE_DUPLEX_HALF,
146 SG_IFACE_DUPLEX_UNKNOWN
147 } sg_iface_duplex;
148
149 typedef struct {
150 char *interface_name;
151 int speed; /* In megabits/sec */
152 sg_iface_duplex dup;
153 int up;
154 } sg_network_iface_stats;
155
156 sg_network_iface_stats *sg_get_network_iface_stats(int *entries);
157
158 typedef struct {
159 long long pages_pagein;
160 long long pages_pageout;
161 time_t systime;
162 } sg_page_stats;
163
164 sg_page_stats *sg_get_page_stats();
165 sg_page_stats *sg_get_page_stats_diff();
166
167 typedef enum {
168 SG_PROCESS_STATE_RUNNING,
169 SG_PROCESS_STATE_SLEEPING,
170 SG_PROCESS_STATE_STOPPED,
171 SG_PROCESS_STATE_ZOMBIE,
172 SG_PROCESS_STATE_UNKNOWN
173 } sg_process_state;
174
175 typedef struct {
176 char *process_name;
177 char *proctitle;
178
179 pid_t pid;
180 pid_t parent; /* Parent pid */
181 pid_t pgid; /* process id of process group leader */
182
183 uid_t uid;
184 uid_t euid;
185 gid_t gid;
186 gid_t egid;
187
188 unsigned long long proc_size; /* in bytes */
189 unsigned long long proc_resident; /* in bytes */
190 time_t time_spent; /* time running in seconds */
191 double cpu_percent;
192 int nice;
193 sg_process_state state;
194 } sg_process_stats;
195
196 sg_process_stats *sg_get_process_stats(int *entries);
197
198 typedef struct {
199 int total;
200 int running;
201 int sleeping;
202 int stopped;
203 int zombie;
204 } sg_process_count;
205
206 sg_process_count *sg_get_process_count();
207
208 #ifdef SG_ENABLE_DEPRECATED
209 #include <statgrab_deprecated.h>
210 #endif
211