ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/statgrab.h
Revision: 1.25
Committed: Sun Jan 25 20:13:57 2004 UTC (20 years, 3 months ago) by pajs
Content type: text/plain
Branch: MAIN
Changes since 1.24: +3 -1 lines
Log Message:
Added code for freebsd to do the network interface speeds. I've put it
under the label ALLBSD however, as i suspect it will work on all the
BSD's of intrest.

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.24 2004/01/23 23:23:33 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 NO_DUPLEX
118 }duplex;
119
120 typedef struct{
121 char *interface_name;
122 int speed; /* In megabits/sec */
123 duplex dup;
124 }network_iface_stat_t;
125
126 typedef struct{
127 long long pages_pagein;
128 long long pages_pageout;
129 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 diskio_stat_t *get_diskio_stats(int *entries);
148 diskio_stat_t *get_diskio_stats_diff(int *entries);
149
150 process_stat_t *get_process_stats();
151
152 network_stat_t *get_network_stats(int *entries);
153 network_stat_t *get_network_stats_diff(int *entries);
154
155 network_iface_stat_t *get_network_iface_stats(int *entries);
156
157 page_stat_t *get_page_stats();
158 page_stat_t *get_page_stats_diff();
159
160 int statgrab_init(void);
161 int statgrab_drop_privileges(void);
162