ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/statgrab.h
Revision: 1.37
Committed: Tue Apr 6 22:09:22 2004 UTC (20 years, 1 month ago) by ats
Content type: text/plain
Branch: MAIN
Changes since 1.36: +3 -3 lines
Log Message:
Add SG_ERROR_NONE.

Make sg_str_error return const char *.

File Contents

# User Rev Content
1 tdb 1.22 /*
2 tdb 1.34 * i-scream libstatgrab
3 tdb 1.13 * http://www.i-scream.org
4 tdb 1.22 * Copyright (C) 2000-2004 i-scream
5 pajs 1.1 *
6 tdb 1.22 * 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 pajs 1.1 *
11 tdb 1.22 * This library is distributed in the hope that it will be useful,
12 pajs 1.1 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 tdb 1.22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14     * Lesser General Public License for more details.
15 pajs 1.1 *
16 tdb 1.22 * 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 tdb 1.23 *
21 ats 1.37 * $Id: statgrab.h,v 1.36 2004/04/06 21:38:55 tdb Exp $
22 pajs 1.1 */
23    
24 pajs 1.21 #include <sys/types.h>
25    
26 ats 1.33 /* 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 tdb 1.36
35     typedef enum {
36 ats 1.37 SG_ERROR_NONE = 0
37 tdb 1.36 } sg_error;
38    
39     void sg_set_error(sg_error code, const char *arg);
40     sg_error sg_get_error();
41 ats 1.37 const char *sg_str_error(sg_error code);
42 ats 1.33
43     typedef struct {
44     char *os_name;
45     char *os_release;
46     char *os_version;
47     char *platform;
48     char *hostname;
49     time_t uptime;
50     } sg_host_info;
51    
52     sg_host_info *sg_get_host_info();
53    
54     typedef struct {
55 pajs 1.9 long long user;
56     long long kernel;
57     long long idle;
58     long long iowait;
59     long long swap;
60     long long nice;
61     long long total;
62 pajs 1.1 time_t systime;
63 ats 1.33 } sg_cpu_stats;
64 pajs 1.1
65 ats 1.33 sg_cpu_stats *sg_get_cpu_stats();
66     sg_cpu_stats *sg_get_cpu_stats_diff();
67    
68     typedef struct {
69 pajs 1.1 float user;
70     float kernel;
71     float idle;
72     float iowait;
73     float swap;
74     float nice;
75     time_t time_taken;
76 ats 1.33 } sg_cpu_percents;
77    
78     sg_cpu_percents *sg_get_cpu_percents();
79 pajs 1.1
80 ats 1.33 typedef struct {
81 pajs 1.1 long long total;
82     long long free;
83     long long used;
84     long long cache;
85 ats 1.33 } sg_mem_stats;
86    
87     sg_mem_stats *sg_get_mem_stats();
88 pajs 1.1
89 ats 1.33 typedef struct {
90 pajs 1.1 double min1;
91     double min5;
92     double min15;
93 ats 1.33 } sg_load_stats;
94    
95     sg_load_stats *sg_get_load_stats();
96 pajs 1.1
97 ats 1.33 typedef struct {
98 pajs 1.8 char *name_list;
99 pajs 1.1 int num_entries;
100 ats 1.33 } sg_user_stats;
101    
102     sg_user_stats *sg_get_user_stats();
103 pajs 1.1
104 ats 1.33 typedef struct {
105 pajs 1.1 long long total;
106     long long used;
107     long long free;
108 ats 1.33 } sg_swap_stats;
109 pajs 1.1
110 ats 1.33 sg_swap_stats *sg_get_swap_stats();
111 pajs 1.1
112     typedef struct {
113     char *device_name;
114     char *fs_type;
115     char *mnt_point;
116     long long size;
117     long long used;
118     long long avail;
119     long long total_inodes;
120     long long used_inodes;
121     long long free_inodes;
122 ats 1.33 } sg_fs_stats;
123    
124     sg_fs_stats *sg_get_fs_stats(int *entries);
125 pajs 1.1
126 ats 1.33 typedef struct {
127 pajs 1.4 char *disk_name;
128     long long read_bytes;
129     long long write_bytes;
130     time_t systime;
131 ats 1.33 } sg_disk_io_stats;
132 pajs 1.4
133 ats 1.33 sg_disk_io_stats *sg_get_disk_io_stats(int *entries);
134     sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries);
135 pajs 1.1
136 ats 1.33 typedef struct {
137 pajs 1.1 char *interface_name;
138     long long tx;
139     long long rx;
140 tdb 1.28 long long ipackets;
141     long long opackets;
142     long long ierrors;
143     long long oerrors;
144     long long collisions;
145 pajs 1.1 time_t systime;
146 ats 1.33 } sg_network_io_stats;
147    
148     sg_network_io_stats *sg_get_network_io_stats(int *entries);
149     sg_network_io_stats *sg_get_network_io_stats_diff(int *entries);
150 pajs 1.24
151 ats 1.33 typedef enum {
152     SG_IFACE_DUPLEX_FULL,
153     SG_IFACE_DUPLEX_HALF,
154     SG_IFACE_DUPLEX_UNKNOWN
155     } sg_iface_duplex;
156 pajs 1.24
157 ats 1.33 typedef struct {
158 pajs 1.24 char *interface_name;
159     int speed; /* In megabits/sec */
160 ats 1.33 sg_iface_duplex dup;
161 pajs 1.27 int up;
162 ats 1.33 } sg_network_iface_stats;
163    
164     sg_network_iface_stats *sg_get_network_iface_stats(int *entries);
165 pajs 1.1
166 ats 1.33 typedef struct {
167 pajs 1.2 long long pages_pagein;
168     long long pages_pageout;
169 pajs 1.1 time_t systime;
170 ats 1.33 } sg_page_stats;
171    
172     sg_page_stats *sg_get_page_stats();
173     sg_page_stats *sg_get_page_stats_diff();
174 pajs 1.29
175 ats 1.33 typedef enum {
176     SG_PROCESS_STATE_RUNNING,
177     SG_PROCESS_STATE_SLEEPING,
178     SG_PROCESS_STATE_STOPPED,
179     SG_PROCESS_STATE_ZOMBIE,
180     SG_PROCESS_STATE_UNKNOWN
181     } sg_process_state;
182 pajs 1.30
183 ats 1.33 typedef struct {
184 pajs 1.29 char *process_name;
185     char *proctitle;
186    
187     pid_t pid;
188     pid_t parent; /* Parent pid */
189     pid_t pgid; /* process id of process group leader */
190    
191     uid_t uid;
192     uid_t euid;
193     gid_t gid;
194     gid_t egid;
195    
196     unsigned long long proc_size; /* in bytes */
197     unsigned long long proc_resident; /* in bytes */
198 tdb 1.31 time_t time_spent; /* time running in seconds */
199 pajs 1.29 double cpu_percent;
200     int nice;
201 ats 1.33 sg_process_state state;
202     } sg_process_stats;
203 pajs 1.29
204 ats 1.33 sg_process_stats *sg_get_process_stats(int *entries);
205 pajs 1.1
206 ats 1.33 typedef struct {
207     int total;
208     int running;
209     int sleeping;
210     int stopped;
211     int zombie;
212     } sg_process_count;
213 pajs 1.14
214 ats 1.33 sg_process_count *sg_get_process_count();
215 tdb 1.35
216     #ifdef SG_ENABLE_DEPRECATED
217     #include <statgrab_deprecated.h>
218     #endif
219 ats 1.18