ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/statgrab.h
Revision: 1.27
Committed: Fri Feb 13 18:45:43 2004 UTC (20 years, 3 months ago) by pajs
Content type: text/plain
Branch: MAIN
Changes since 1.26: +2 -1 lines
Log Message:
Added up/down interface detection. Not tested (or even compiled) on any
os. So that really needs to be done :)

File Contents

# Content
1 /*
2 * i-scream central monitoring system
3 * http://www.i-scream.org
4 * Copyright (C) 2000-2004 i-scream
5 *
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 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 GNU
14 * Lesser General Public License for more details.
15 *
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: statgrab.h,v 1.26 2004/02/13 14:39:34 pajs Exp $
22 */
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;
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 char *name_list;
62 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 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 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
114 typedef enum{
115 FULL_DUPLEX,
116 HALF_DUPLEX,
117 UNKNOWN_DUPLEX
118 }statgrab_duplex;
119
120 typedef struct{
121 char *interface_name;
122 int speed; /* In megabits/sec */
123 statgrab_duplex dup;
124 int up;
125 }network_iface_stat_t;
126
127 typedef struct{
128 long long pages_pagein;
129 long long pages_pageout;
130 time_t systime;
131 }page_stat_t;
132
133 cpu_states_t *get_cpu_totals();
134 cpu_states_t *get_cpu_diff();
135 cpu_percent_t *cpu_percent_usage();
136
137 mem_stat_t *get_memory_stats();
138
139 load_stat_t *get_load_stats();
140
141 user_stat_t *get_user_stats();
142
143 swap_stat_t *get_swap_stats();
144
145 general_stat_t *get_general_stats();
146
147 disk_stat_t *get_disk_stats(int *entries);
148 diskio_stat_t *get_diskio_stats(int *entries);
149 diskio_stat_t *get_diskio_stats_diff(int *entries);
150
151 process_stat_t *get_process_stats();
152
153 network_stat_t *get_network_stats(int *entries);
154 network_stat_t *get_network_stats_diff(int *entries);
155
156 network_iface_stat_t *get_network_iface_stats(int *entries);
157
158 page_stat_t *get_page_stats();
159 page_stat_t *get_page_stats_diff();
160
161 int statgrab_init(void);
162 int statgrab_drop_privileges(void);
163