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.13 by tdb, Sun Aug 24 20:24:09 2003 UTC vs.
Revision 1.38 by tdb, Wed Apr 7 09:44:08 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{
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 enum {
36 >        SG_ERROR_NONE = 0,
37 >        SG_ERROR_MALLOC_FAILED
38 > } sg_error;
39 >
40 > void sg_set_error(sg_error code, const char *arg);
41 > sg_error sg_get_error();
42 > const char *sg_str_error(sg_error code);
43 >
44 > typedef struct {
45 >        char *os_name;
46 >        char *os_release;
47 >        char *os_version;
48 >        char *platform;
49 >        char *hostname;
50 >        time_t uptime;
51 > } sg_host_info;
52 >
53 > sg_host_info *sg_get_host_info();
54 >
55 > typedef struct {
56          long long user;
57          long long kernel;
58          long long idle;
# Line 29 | Line 61 | typedef struct{
61          long long nice;
62          long long total;
63          time_t systime;
64 < }cpu_states_t;
64 > } sg_cpu_stats;
65  
66 < typedef struct{
66 > sg_cpu_stats *sg_get_cpu_stats();
67 > sg_cpu_stats *sg_get_cpu_stats_diff();
68 >
69 > typedef struct {
70          float user;
71          float kernel;
72          float idle;
# Line 39 | Line 74 | typedef struct{
74          float swap;
75          float nice;
76          time_t time_taken;
77 < }cpu_percent_t;
77 > } sg_cpu_percents;
78  
79 < typedef struct{
79 > sg_cpu_percents *sg_get_cpu_percents();
80 >
81 > typedef struct {
82          long long total;
83          long long free;
84          long long used;
85          long long cache;
86 < }mem_stat_t;
86 > } sg_mem_stats;
87  
88 < typedef struct{
88 > sg_mem_stats *sg_get_mem_stats();
89 >
90 > typedef struct {
91          double min1;
92          double min5;
93          double min15;
94 < }load_stat_t;
94 > } sg_load_stats;
95  
96 < #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
96 > sg_load_stats *sg_get_load_stats();
97  
98 < typedef struct{
98 > typedef struct {
99          char *name_list;
100          int num_entries;
101 < }user_stat_t;
101 > } sg_user_stats;
102  
103 < typedef struct{
103 > sg_user_stats *sg_get_user_stats();
104 >
105 > typedef struct {
106          long long total;
107          long long used;
108          long long free;
109 < }swap_stat_t;
109 > } sg_swap_stats;
110  
111 < 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;
111 > sg_swap_stats *sg_get_swap_stats();
112  
113   typedef struct {
114          char *device_name;
# Line 91 | Line 120 | typedef struct {
120          long long total_inodes;
121          long long used_inodes;
122          long long free_inodes;
123 < }disk_stat_t;
123 > } sg_fs_stats;
124  
125 < typedef struct{
125 > sg_fs_stats *sg_get_fs_stats(int *entries);
126 >
127 > typedef struct {
128          char *disk_name;
129          long long read_bytes;
130          long long write_bytes;
131          time_t systime;
132 < }diskio_stat_t;
132 > } sg_disk_io_stats;
133  
134 < typedef struct{
135 <        int total;
105 <        int running;
106 <        int sleeping;
107 <        int stopped;
108 <        int zombie;
109 < }process_stat_t;
134 > sg_disk_io_stats *sg_get_disk_io_stats(int *entries);
135 > sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries);
136  
137 < typedef struct{
137 > typedef struct {
138          char *interface_name;
139          long long tx;
140          long long rx;
141 +        long long ipackets;
142 +        long long opackets;
143 +        long long ierrors;
144 +        long long oerrors;
145 +        long long collisions;
146          time_t systime;
147 < }network_stat_t;
147 > } sg_network_io_stats;
148  
149 < typedef struct{
149 > sg_network_io_stats *sg_get_network_io_stats(int *entries);
150 > sg_network_io_stats *sg_get_network_io_stats_diff(int *entries);
151 >
152 > typedef enum {
153 >        SG_IFACE_DUPLEX_FULL,
154 >        SG_IFACE_DUPLEX_HALF,
155 >        SG_IFACE_DUPLEX_UNKNOWN
156 > } sg_iface_duplex;
157 >
158 > typedef struct {
159 >        char *interface_name;
160 >        int speed;      /* In megabits/sec */
161 >        sg_iface_duplex dup;
162 >        int up;
163 > } sg_network_iface_stats;
164 >
165 > sg_network_iface_stats *sg_get_network_iface_stats(int *entries);
166 >
167 > typedef struct {
168          long long pages_pagein;
169          long long pages_pageout;
170          time_t systime;
171 < }page_stat_t;
171 > } sg_page_stats;
172  
173 < cpu_states_t *get_cpu_totals();
174 < cpu_states_t *get_cpu_diff();
126 < cpu_percent_t *cpu_percent_usage();
173 > sg_page_stats *sg_get_page_stats();
174 > sg_page_stats *sg_get_page_stats_diff();
175  
176 < mem_stat_t *get_memory_stats();
176 > typedef enum {
177 >        SG_PROCESS_STATE_RUNNING,
178 >        SG_PROCESS_STATE_SLEEPING,
179 >        SG_PROCESS_STATE_STOPPED,
180 >        SG_PROCESS_STATE_ZOMBIE,
181 >        SG_PROCESS_STATE_UNKNOWN
182 > } sg_process_state;
183  
184 < load_stat_t *get_load_stats();
184 > typedef struct {
185 >        char *process_name;
186 >        char *proctitle;
187  
188 < user_stat_t *get_user_stats();
188 >        pid_t pid;
189 >        pid_t parent; /* Parent pid */
190 >        pid_t pgid;   /* process id of process group leader */
191  
192 < swap_stat_t *get_swap_stats();
192 >        uid_t uid;
193 >        uid_t euid;
194 >        gid_t gid;
195 >        gid_t egid;
196  
197 < general_stat_t *get_general_stats();
197 >        unsigned long long proc_size; /* in bytes */
198 >        unsigned long long proc_resident; /* in bytes */
199 >        time_t time_spent; /* time running in seconds */
200 >        double cpu_percent;
201 >        int nice;
202 >        sg_process_state state;
203 > } sg_process_stats;
204  
205 < 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);
205 > sg_process_stats *sg_get_process_stats(int *entries);
206  
207 < process_stat_t *get_process_stats();
207 > typedef struct {
208 >        int total;
209 >        int running;
210 >        int sleeping;
211 >        int stopped;
212 >        int zombie;
213 > } sg_process_count;
214  
215 < network_stat_t *get_network_stats(int *entries);
145 < network_stat_t *get_network_stats_diff(int *entries);
215 > sg_process_count *sg_get_process_count();
216  
217 < page_stat_t *get_page_stats();
218 < page_stat_t *get_page_stats_diff();
217 > #ifdef SG_ENABLE_DEPRECATED
218 > #include <statgrab_deprecated.h>
219 > #endif
220 >

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines