ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/statgrab.h
Revision: 1.26
Committed: Fri Feb 13 14:39:34 2004 UTC (20 years, 3 months ago) by pajs
Content type: text/plain
Branch: MAIN
Changes since 1.25: +4 -4 lines
Log Message:
Couple of name changes, and a tidy up.

File Contents

# User Rev Content
1 tdb 1.22 /*
2 pajs 1.1 * i-scream central monitoring system
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 pajs 1.26 * $Id: statgrab.h,v 1.25 2004/01/25 20:13:57 pajs Exp $
22 pajs 1.1 */
23    
24 pajs 1.21 #include <sys/types.h>
25    
26 pajs 1.1 typedef struct{
27 pajs 1.9 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 pajs 1.1 time_t systime;
35     }cpu_states_t;
36    
37     typedef struct{
38     float user;
39     float kernel;
40     float idle;
41     float iowait;
42     float swap;
43     float nice;
44     time_t time_taken;
45     }cpu_percent_t;
46    
47     typedef struct{
48     long long total;
49     long long free;
50     long long used;
51     long long cache;
52     }mem_stat_t;
53    
54     typedef struct{
55     double min1;
56     double min5;
57     double min15;
58     }load_stat_t;
59    
60     typedef struct{
61 pajs 1.8 char *name_list;
62 pajs 1.1 int num_entries;
63     }user_stat_t;
64    
65     typedef struct{
66     long long total;
67     long long used;
68     long long free;
69     }swap_stat_t;
70    
71     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;
79    
80     typedef struct {
81     char *device_name;
82     char *fs_type;
83     char *mnt_point;
84     long long size;
85     long long used;
86     long long avail;
87     long long total_inodes;
88     long long used_inodes;
89     long long free_inodes;
90     }disk_stat_t;
91    
92     typedef struct{
93 pajs 1.4 char *disk_name;
94     long long read_bytes;
95     long long write_bytes;
96     time_t systime;
97     }diskio_stat_t;
98    
99     typedef struct{
100 pajs 1.1 int total;
101     int running;
102     int sleeping;
103     int stopped;
104     int zombie;
105     }process_stat_t;
106    
107     typedef struct{
108     char *interface_name;
109     long long tx;
110     long long rx;
111     time_t systime;
112     }network_stat_t;
113 pajs 1.24
114     typedef enum{
115     FULL_DUPLEX,
116     HALF_DUPLEX,
117 pajs 1.26 UNKNOWN_DUPLEX
118     }statgrab_duplex;
119 pajs 1.24
120     typedef struct{
121     char *interface_name;
122     int speed; /* In megabits/sec */
123 pajs 1.26 statgrab_duplex dup;
124 pajs 1.24 }network_iface_stat_t;
125 pajs 1.1
126     typedef struct{
127 pajs 1.2 long long pages_pagein;
128     long long pages_pageout;
129 pajs 1.1 time_t systime;
130     }page_stat_t;
131    
132     cpu_states_t *get_cpu_totals();
133     cpu_states_t *get_cpu_diff();
134     cpu_percent_t *cpu_percent_usage();
135    
136     mem_stat_t *get_memory_stats();
137    
138     load_stat_t *get_load_stats();
139    
140     user_stat_t *get_user_stats();
141    
142     swap_stat_t *get_swap_stats();
143    
144     general_stat_t *get_general_stats();
145    
146     disk_stat_t *get_disk_stats(int *entries);
147 pajs 1.5 diskio_stat_t *get_diskio_stats(int *entries);
148 pajs 1.7 diskio_stat_t *get_diskio_stats_diff(int *entries);
149 pajs 1.1
150     process_stat_t *get_process_stats();
151    
152     network_stat_t *get_network_stats(int *entries);
153 pajs 1.4 network_stat_t *get_network_stats_diff(int *entries);
154 pajs 1.25
155     network_iface_stat_t *get_network_iface_stats(int *entries);
156 pajs 1.2
157     page_stat_t *get_page_stats();
158 pajs 1.3 page_stat_t *get_page_stats_diff();
159 pajs 1.14
160     int statgrab_init(void);
161 ats 1.18 int statgrab_drop_privileges(void);
162