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.4 by pajs, Wed Feb 19 17:13:24 2003 UTC vs.
Revision 1.33 by ats, Mon Apr 5 15:40:15 2004 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * i-scream central monitoring system
3 < * http://www.i-scream.org.uk
4 < * Copyright (C) 2000-2002 i-scream
3 > * http://www.i-scream.org
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 <        uint_t user;
28 <        uint_t kernel;
29 <        uint_t idle;
30 <        uint_t iowait;
31 <        uint_t swap;
32 <        uint_t nice;
33 <        uint_t total;
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 < }cpu_states_t;
55 > } sg_cpu_stats;
56  
57 < typedef struct{
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;
# Line 39 | Line 65 | typedef struct{
65          float swap;
66          float nice;
67          time_t time_taken;
68 < }cpu_percent_t;
68 > } sg_cpu_percents;
69  
70 < typedef struct{
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 < }mem_stat_t;
77 > } sg_mem_stats;
78  
79 < typedef struct{
79 > sg_mem_stats *sg_get_mem_stats();
80 >
81 > typedef struct {
82          double min1;
83          double min5;
84          double min15;
85 < }load_stat_t;
85 > } sg_load_stats;
86  
87 < #ifdef SOLARIS
58 < #define MAX_LOGIN_NAME_SIZE 8
59 < #endif
87 > sg_load_stats *sg_get_load_stats();
88  
89 < typedef char name[MAX_LOGIN_NAME_SIZE+1];
90 <
63 < typedef struct{
64 <        name *name_list;
89 > typedef struct {
90 >        char *name_list;
91          int num_entries;
92 < }user_stat_t;
92 > } sg_user_stats;
93  
94 < typedef struct{
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 < }swap_stat_t;
100 > } sg_swap_stats;
101  
102 < typedef struct{
75 <        char *os_name;
76 <        char *os_release;
77 <        char *os_version;
78 <        char *platform;
79 <        char *hostname;
80 <        time_t uptime;
81 < }general_stat_t;
102 > sg_swap_stats *sg_get_swap_stats();
103  
104   typedef struct {
105          char *device_name;
# Line 90 | Line 111 | typedef struct {
111          long long total_inodes;
112          long long used_inodes;
113          long long free_inodes;
114 < }disk_stat_t;
114 > } sg_fs_stats;
115  
116 < typedef struct{
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 < }diskio_stat_t;
123 > } sg_disk_io_stats;
124  
125 < typedef struct{
126 <        int total;
104 <        int running;
105 <        int sleeping;
106 <        int stopped;
107 <        int zombie;
108 < }process_stat_t;
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{
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 < }network_stat_t;
138 > } sg_network_io_stats;
139  
140 < typedef struct{
141 <        long long num_pagein;
142 <        long long num_pageout;
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 < }page_stat_t;
162 > } sg_page_stats;
163  
164 < cpu_states_t *get_cpu_totals();
165 < cpu_states_t *get_cpu_diff();
127 < cpu_percent_t *cpu_percent_usage();
164 > sg_page_stats *sg_get_page_stats();
165 > sg_page_stats *sg_get_page_stats_diff();
166  
167 < mem_stat_t *get_memory_stats();
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 < load_stat_t *get_load_stats();
175 > typedef struct {
176 >        char *process_name;
177 >        char *proctitle;
178  
179 < user_stat_t *get_user_stats();
179 >        pid_t pid;
180 >        pid_t parent; /* Parent pid */
181 >        pid_t pgid;   /* process id of process group leader */
182  
183 < swap_stat_t *get_swap_stats();
183 >        uid_t uid;
184 >        uid_t euid;
185 >        gid_t gid;
186 >        gid_t egid;
187  
188 < general_stat_t *get_general_stats();
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 < disk_stat_t *get_disk_stats(int *entries);
196 > sg_process_stats *sg_get_process_stats(int *entries);
197  
198 < process_stat_t *get_process_stats();
198 > typedef struct {
199 >        int total;
200 >        int running;
201 >        int sleeping;
202 >        int stopped;
203 >        int zombie;
204 > } sg_process_count;
205  
206 < network_stat_t *get_network_stats(int *entries);
144 < network_stat_t *get_network_stats_diff(int *entries);
206 > sg_process_count *sg_get_process_count();
207  
146 page_stat_t *get_page_stats();
147 page_stat_t *get_page_stats_diff();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines