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.23 by tdb, Mon Jan 19 16:49:21 2004 UTC vs.
Revision 1.41 by tdb, Wed Apr 7 19:26:16 2004 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines