1 #define MAXCPU_21 2048 2 #define MAXDSK_21 1024 3 #define MAXLVM_21 2048 4 #define MAXMDD_21 256 5 #define MAXINTF_21 128 6 7 #define MAXDKNAM 32 8 9 /************************************************************************/ 10 11 struct memstat_21 { 12 count_t physmem; // number of physical pages 13 count_t freemem; // number of free pages 14 count_t buffermem; // number of buffer pages 15 count_t slabmem; // number of slab pages 16 count_t cachemem; // number of cache pages 17 count_t cachedrt; // number of cache pages (dirty) 18 19 count_t totswap; // number of pages in swap 20 count_t freeswap; // number of free swap pages 21 22 count_t pgscans; // number of page scans 23 count_t pgsteal; // number of page steals 24 count_t allocstall; // try to free pages forced 25 count_t swouts; // number of pages swapped out 26 count_t swins; // number of pages swapped in 27 28 count_t commitlim; // commit limit in pages 29 count_t committed; // number of reserved pages 30 31 count_t shmem; // tot shmem incl. tmpfs (pages) 32 count_t shmrss; // resident shared memory (pages) 33 count_t shmswp; // swapped shared memory (pages) 34 35 count_t slabreclaim; // reclaimable slab (pages) 36 37 count_t tothugepage; // total huge pages (huge pages) 38 count_t freehugepage; // free huge pages (huge pages) 39 count_t hugepagesz; // huge page size (bytes) 40 41 count_t vmwballoon; // vmware claimed balloon pages 42 43 count_t cfuture[8]; // reserved for future use 44 }; 45 46 /************************************************************************/ 47 48 struct netstat_21 { 49 struct ipv4_stats ipv4; 50 struct icmpv4_stats_wrong icmpv4; 51 struct udpv4_stats udpv4; 52 53 struct ipv6_stats ipv6; 54 struct icmpv6_stats icmpv6; 55 struct udpv6_stats udpv6; 56 57 struct tcp_stats tcp; 58 }; 59 60 /************************************************************************/ 61 62 struct freqcnt_21 { 63 count_t maxfreq;/* frequency in MHz */ 64 count_t cnt; /* number of clock ticks times state */ 65 count_t ticks; /* number of total clock ticks */ 66 /* if zero, cnt is actul freq */ 67 }; 68 69 struct percpu_21 { 70 int cpunr; 71 count_t stime; /* system time in clock ticks */ 72 count_t utime; /* user time in clock ticks */ 73 count_t ntime; /* nice time in clock ticks */ 74 count_t itime; /* idle time in clock ticks */ 75 count_t wtime; /* iowait time in clock ticks */ 76 count_t Itime; /* irq time in clock ticks */ 77 count_t Stime; /* softirq time in clock ticks */ 78 count_t steal; /* steal time in clock ticks */ 79 count_t guest; /* guest time in clock ticks */ 80 struct freqcnt_21 freqcnt;/* frequency scaling info */ 81 count_t cfuture[4]; /* reserved for future use */ 82 }; 83 84 struct cpustat_21 { 85 count_t nrcpu; /* number of cpu's */ 86 count_t devint; /* number of device interrupts */ 87 count_t csw; /* number of context switches */ 88 count_t nprocs; /* number of processes started */ 89 float lavg1; /* load average last minute */ 90 float lavg5; /* load average last 5 minutes */ 91 float lavg15; /* load average last 15 minutes */ 92 count_t cfuture[4]; /* reserved for future use */ 93 94 struct percpu_21 all; 95 struct percpu_21 cpu[MAXCPU_21]; 96 }; 97 98 /************************************************************************/ 99 100 struct perdsk_21 { 101 char name[MAXDKNAM]; /* empty string for last */ 102 count_t nread; /* number of read transfers */ 103 count_t nrsect; /* number of sectors read */ 104 count_t nwrite; /* number of write transfers */ 105 count_t nwsect; /* number of sectors written */ 106 count_t io_ms; /* number of millisecs spent for I/O */ 107 count_t avque; /* average queue length */ 108 count_t cfuture[4]; /* reserved for future use */ 109 }; 110 111 struct dskstat_21 { 112 int ndsk; /* number of physical disks */ 113 int nmdd; /* number of md volumes */ 114 int nlvm; /* number of logical volumes */ 115 struct perdsk_21 dsk[MAXDSK_21]; 116 struct perdsk_21 mdd[MAXMDD_21]; 117 struct perdsk_21 lvm[MAXLVM_21]; 118 }; 119 120 /************************************************************************/ 121 122 struct perintf_21 { 123 char name[16]; /* empty string for last */ 124 125 count_t rbyte; /* number of read bytes */ 126 count_t rpack; /* number of read packets */ 127 count_t rerrs; /* receive errors */ 128 count_t rdrop; /* receive drops */ 129 count_t rfifo; /* receive fifo */ 130 count_t rframe; /* receive framing errors */ 131 count_t rcompr; /* receive compressed */ 132 count_t rmultic;/* receive multicast */ 133 count_t rfuture[4]; /* reserved for future use */ 134 135 count_t sbyte; /* number of written bytes */ 136 count_t spack; /* number of written packets */ 137 count_t serrs; /* transmit errors */ 138 count_t sdrop; /* transmit drops */ 139 count_t sfifo; /* transmit fifo */ 140 count_t scollis;/* collisions */ 141 count_t scarrier;/* transmit carrier */ 142 count_t scompr; /* transmit compressed */ 143 count_t sfuture[4]; /* reserved for future use */ 144 145 long speed; /* interface speed in megabits/second */ 146 char duplex; /* full duplex (boolean) */ 147 count_t cfuture[4]; /* reserved for future use */ 148 }; 149 150 struct intfstat_21 { 151 int nrintf; 152 struct perintf_21 intf[MAXINTF_21]; 153 }; 154 155 /************************************************************************/ 156 /* 157 ** experimental stuff for access to local HTTP daemons 158 */ 159 struct wwwstat_21 { 160 count_t accesses; /* total number of HTTP-requests */ 161 count_t totkbytes; /* total kbytes transfer for HTTP-req */ 162 count_t uptime; /* number of seconds since startup */ 163 int bworkers; /* number of busy httpd-daemons */ 164 int iworkers; /* number of idle httpd-daemons */ 165 }; 166 /************************************************************************/ 167 168 struct sstat_21 { 169 struct cpustat_21 cpu; 170 struct memstat_21 mem; 171 struct netstat_21 net; 172 struct intfstat_21 intf; 173 struct dskstat_21 dsk; 174 175 struct wwwstat_21 www; 176 };