ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/statgrab.h
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/statgrab.h (file contents):
Revision 1.14 by pajs, Mon Oct 20 15:25:47 2003 UTC vs.
Revision 1.42 by tdb, Wed Apr 7 21:08:40 2004 UTC

# Line 1 | Line 1
1 < /*
2 < * i-scream central monitoring system
1 > /*
2 > * i-scream libstatgrab
3   * http://www.i-scream.org
4 < * Copyright (C) 2000-2003 i-scream
4 > * Copyright (C) 2000-2004 i-scream
5   *
6 < * This program is free software; you can redistribute it and/or
7 < * modify it under the terms of the GNU General Public License
8 < * as published by the Free Software Foundation; either version 2
9 < * of the License, or (at your option) any later version.
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 program is distributed in the hope that it will be useful,
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
14 < * GNU General Public License for more details.
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 General Public License
17 < * along with this program; if not, write to the Free Software
18 < * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
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$
22   */
23  
24   #include <sys/types.h>
25  
26 < typedef struct{
27 <        long long user;
28 <        long long kernel;
29 <        long long idle;
30 <        long long iowait;
28 <        long long swap;
29 <        long long nice;
30 <        long long total;
31 <        time_t systime;
32 < }cpu_states_t;
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 < typedef struct{
33 <        float user;
34 <        float kernel;
35 <        float idle;
36 <        float iowait;
37 <        float swap;
38 <        float nice;
32 > int sg_init(void);
33 > int sg_drop_privileges(void);
34 >
35 > typedef enum {
36 >        SG_ERROR_NONE = 0,
37 >        SG_ERROR_ASPRINTF,
38 >        SG_ERROR_DEVSTAT_GETDEVS,
39 >        SG_ERROR_DEVSTAT_SELECTDEVS,
40 >        SG_ERROR_ENOENT,
41 >        SG_ERROR_GETIFADDRS,
42 >        SG_ERROR_GETMNTINFO,
43 >        SG_ERROR_GETPAGESIZE,
44 >        SG_ERROR_KSTAT_DATA_LOOKUP,
45 >        SG_ERROR_KSTAT_LOOKUP,
46 >        SG_ERROR_KSTAT_OPEN,
47 >        SG_ERROR_KSTAT_READ,
48 >        SG_ERROR_KVM_GETSWAPINFO,
49 >        SG_ERROR_KVM_OPENFILES,
50 >        SG_ERROR_MALLOC,
51 >        SG_ERROR_OPEN,
52 >        SG_ERROR_OPENDIR,
53 >        SG_ERROR_PARSE,
54 >        SG_ERROR_SETEGID,
55 >        SG_ERROR_SETEUID,
56 >        SG_ERROR_SETMNTENT,
57 >        SG_ERROR_SOCKET,
58 >        SG_ERROR_SWAPCTL,
59 >        SG_ERROR_SYSCONF,
60 >        SG_ERROR_SYSCTL,
61 >        SG_ERROR_SYSCTLBYNAME,
62 >        SG_ERROR_SYSCTLNAMETOMIB,
63 >        SG_ERROR_UNAME,
64 >        SG_ERROR_UNSUPPORTED,
65 >        SG_ERROR_XSW_VER_MISMATCH
66 > } sg_error;
67 >
68 > void sg_set_error(sg_error code, const char *arg);
69 > sg_error sg_get_error();
70 > const char *sg_str_error(sg_error code);
71 >
72 > typedef struct {
73 >        char *os_name;
74 >        char *os_release;
75 >        char *os_version;
76 >        char *platform;
77 >        char *hostname;
78 >        time_t uptime;
79 > } sg_host_info;
80 >
81 > sg_host_info *sg_get_host_info();
82 >
83 > typedef struct {
84 >        long long user;
85 >        long long kernel;
86 >        long long idle;
87 >        long long iowait;
88 >        long long swap;
89 >        long long nice;
90 >        long long total;
91 >        time_t systime;
92 > } sg_cpu_stats;
93 >
94 > sg_cpu_stats *sg_get_cpu_stats();
95 > sg_cpu_stats *sg_get_cpu_stats_diff();
96 >
97 > typedef struct {
98 >        float user;
99 >        float kernel;
100 >        float idle;
101 >        float iowait;
102 >        float swap;
103 >        float nice;
104          time_t time_taken;
105 < }cpu_percent_t;
105 > } sg_cpu_percents;
106  
107 < typedef struct{
107 > sg_cpu_percents *sg_get_cpu_percents();
108 >
109 > typedef struct {
110          long long total;
111          long long free;
112          long long used;
113          long long cache;
114 < }mem_stat_t;
114 > } sg_mem_stats;
115  
116 < typedef struct{
116 > sg_mem_stats *sg_get_mem_stats();
117 >
118 > typedef struct {
119          double min1;
120          double min5;
121          double min15;
122 < }load_stat_t;
122 > } sg_load_stats;
123  
124 < #ifdef SOLARIS
58 < #define MAX_LOGIN_NAME_SIZE 8
59 < #endif
60 < #if defined(LINUX) || defined(FREEBSD)
61 < #define MAX_LOGIN_NAME_SIZE UT_NAMESIZE
62 < #endif
124 > sg_load_stats *sg_get_load_stats();
125  
126 < typedef struct{
126 > typedef struct {
127          char *name_list;
128          int num_entries;
129 < }user_stat_t;
129 > } sg_user_stats;
130  
131 < typedef struct{
131 > sg_user_stats *sg_get_user_stats();
132 >
133 > typedef struct {
134          long long total;
135          long long used;
136          long long free;
137 < }swap_stat_t;
137 > } sg_swap_stats;
138  
139 < typedef struct{
76 <        char *os_name;
77 <        char *os_release;
78 <        char *os_version;
79 <        char *platform;
80 <        char *hostname;
81 <        time_t uptime;
82 < }general_stat_t;
139 > sg_swap_stats *sg_get_swap_stats();
140  
141   typedef struct {
142 <        char *device_name;
142 >        char *device_name;
143          char *fs_type;
144 <        char *mnt_point;
145 <        long long size;
146 <        long long used;
147 <        long long avail;
148 <        long long total_inodes;
144 >        char *mnt_point;
145 >        long long size;
146 >        long long used;
147 >        long long avail;
148 >        long long total_inodes;
149          long long used_inodes;
150 <        long long free_inodes;
151 < }disk_stat_t;
150 >        long long free_inodes;
151 > } sg_fs_stats;
152  
153 < typedef struct{
153 > sg_fs_stats *sg_get_fs_stats(int *entries);
154 >
155 > typedef struct {
156          char *disk_name;
157          long long read_bytes;
158          long long write_bytes;
159          time_t systime;
160 < }diskio_stat_t;
160 > } sg_disk_io_stats;
161  
162 < typedef struct{
163 <        int total;
105 <        int running;
106 <        int sleeping;
107 <        int stopped;
108 <        int zombie;
109 < }process_stat_t;
162 > sg_disk_io_stats *sg_get_disk_io_stats(int *entries);
163 > sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries);
164  
165 < typedef struct{
165 > typedef struct {
166          char *interface_name;
167          long long tx;
168          long long rx;
169 +        long long ipackets;
170 +        long long opackets;
171 +        long long ierrors;
172 +        long long oerrors;
173 +        long long collisions;
174          time_t systime;
175 < }network_stat_t;
175 > } sg_network_io_stats;
176  
177 < typedef struct{
177 > sg_network_io_stats *sg_get_network_io_stats(int *entries);
178 > sg_network_io_stats *sg_get_network_io_stats_diff(int *entries);
179 >
180 > typedef enum {
181 >        SG_IFACE_DUPLEX_FULL,
182 >        SG_IFACE_DUPLEX_HALF,
183 >        SG_IFACE_DUPLEX_UNKNOWN
184 > } sg_iface_duplex;
185 >
186 > typedef struct {
187 >        char *interface_name;
188 >        int speed;      /* In megabits/sec */
189 >        sg_iface_duplex dup;
190 >        int up;
191 > } sg_network_iface_stats;
192 >
193 > sg_network_iface_stats *sg_get_network_iface_stats(int *entries);
194 >
195 > typedef struct {
196          long long pages_pagein;
197          long long pages_pageout;
198          time_t systime;
199 < }page_stat_t;
199 > } sg_page_stats;
200  
201 < cpu_states_t *get_cpu_totals();
202 < cpu_states_t *get_cpu_diff();
126 < cpu_percent_t *cpu_percent_usage();
201 > sg_page_stats *sg_get_page_stats();
202 > sg_page_stats *sg_get_page_stats_diff();
203  
204 < mem_stat_t *get_memory_stats();
204 > typedef enum {
205 >        SG_PROCESS_STATE_RUNNING,
206 >        SG_PROCESS_STATE_SLEEPING,
207 >        SG_PROCESS_STATE_STOPPED,
208 >        SG_PROCESS_STATE_ZOMBIE,
209 >        SG_PROCESS_STATE_UNKNOWN
210 > } sg_process_state;
211  
212 < load_stat_t *get_load_stats();
212 > typedef struct {
213 >        char *process_name;
214 >        char *proctitle;
215  
216 < user_stat_t *get_user_stats();
216 >        pid_t pid;
217 >        pid_t parent; /* Parent pid */
218 >        pid_t pgid;   /* process id of process group leader */
219  
220 < swap_stat_t *get_swap_stats();
220 >        uid_t uid;
221 >        uid_t euid;
222 >        gid_t gid;
223 >        gid_t egid;
224  
225 < general_stat_t *get_general_stats();
225 >        unsigned long long proc_size; /* in bytes */
226 >        unsigned long long proc_resident; /* in bytes */
227 >        time_t time_spent; /* time running in seconds */
228 >        double cpu_percent;
229 >        int nice;
230 >        sg_process_state state;
231 > } sg_process_stats;
232  
233 < disk_stat_t *get_disk_stats(int *entries);
139 < diskio_stat_t *get_diskio_stats(int *entries);
140 < diskio_stat_t *get_diskio_stats_diff(int *entries);
233 > sg_process_stats *sg_get_process_stats(int *entries);
234  
235 < process_stat_t *get_process_stats();
235 > typedef struct {
236 >        int total;
237 >        int running;
238 >        int sleeping;
239 >        int stopped;
240 >        int zombie;
241 > } sg_process_count;
242  
243 < network_stat_t *get_network_stats(int *entries);
145 < network_stat_t *get_network_stats_diff(int *entries);
243 > sg_process_count *sg_get_process_count();
244  
245 < page_stat_t *get_page_stats();
246 < page_stat_t *get_page_stats_diff();
245 > #ifdef SG_ENABLE_DEPRECATED
246 > #include <statgrab_deprecated.h>
247 > #endif
248  
150 int statgrab_init(void);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines