1#ifndef PROC_SYSINFO_H 2#define PROC_SYSINFO_H 3#include <sys/types.h> 4#include <sys/dir.h> 5#include "procps.h" 6 7EXTERN_C_BEGIN 8 9extern unsigned long long Hertz; /* clock tick frequency */ 10extern long smp_num_cpus; /* number of CPUs */ 11extern int have_privs; /* boolean, true if setuid or similar */ 12 13 14extern int uptime (double *uptime_secs, double *idle_secs); 15extern void loadavg(double *av1, double *av5, double *av15); 16 17 18/* obsolete */ 19extern unsigned long kb_main_shared; 20/* old but still kicking -- the important stuff */ 21extern unsigned long kb_main_buffers; 22extern unsigned long kb_main_cached; 23extern unsigned long kb_main_free; 24extern unsigned long kb_main_total; 25extern unsigned long kb_swap_free; 26extern unsigned long kb_swap_total; 27/* recently introduced */ 28extern unsigned long kb_high_free; 29extern unsigned long kb_high_total; 30extern unsigned long kb_low_free; 31extern unsigned long kb_low_total; 32/* 2.4.xx era */ 33extern unsigned long kb_active; 34extern unsigned long kb_inact_laundry; // grrr... 35extern unsigned long kb_inact_dirty; 36extern unsigned long kb_inact_clean; 37extern unsigned long kb_inact_target; 38extern unsigned long kb_swap_cached; /* late 2.4+ */ 39/* derived values */ 40extern unsigned long kb_swap_used; 41extern unsigned long kb_main_used; 42/* 2.5.41+ */ 43extern unsigned long kb_writeback; 44extern unsigned long kb_slab; 45extern unsigned long nr_reversemaps; 46extern unsigned long kb_committed_as; 47extern unsigned long kb_dirty; 48extern unsigned long kb_inactive; 49extern unsigned long kb_mapped; 50extern unsigned long kb_pagetables; 51 52#define BUFFSIZE (64*1024) 53typedef unsigned long long jiff; 54extern void getstat(jiff *restrict cuse, jiff *restrict cice, jiff *restrict csys, jiff *restrict cide, jiff *restrict ciow, jiff *restrict cxxx, jiff *restrict cyyy, jiff *restrict czzz, 55 unsigned long *restrict pin, unsigned long *restrict pout, unsigned long *restrict s_in, unsigned long *restrict sout, 56 unsigned *restrict intr, unsigned *restrict ctxt, 57 unsigned int *restrict running, unsigned int *restrict blocked, 58 unsigned int *restrict btime, unsigned int *restrict processes); 59 60extern void meminfo(void); 61 62 63extern unsigned long vm_nr_dirty; 64extern unsigned long vm_nr_writeback; 65extern unsigned long vm_nr_pagecache; 66extern unsigned long vm_nr_page_table_pages; 67extern unsigned long vm_nr_reverse_maps; 68extern unsigned long vm_nr_mapped; 69extern unsigned long vm_nr_slab; 70extern unsigned long vm_pgpgin; 71extern unsigned long vm_pgpgout; 72extern unsigned long vm_pswpin; 73extern unsigned long vm_pswpout; 74extern unsigned long vm_pgalloc; 75extern unsigned long vm_pgfree; 76extern unsigned long vm_pgactivate; 77extern unsigned long vm_pgdeactivate; 78extern unsigned long vm_pgfault; 79extern unsigned long vm_pgmajfault; 80extern unsigned long vm_pgscan; 81extern unsigned long vm_pgrefill; 82extern unsigned long vm_pgsteal; 83extern unsigned long vm_kswapd_steal; 84extern unsigned long vm_pageoutrun; 85extern unsigned long vm_allocstall; 86 87extern void vminfo(void); 88 89typedef struct disk_stat{ 90 unsigned long long reads_sectors; 91 unsigned long long written_sectors; 92 char disk_name [16]; 93 unsigned inprogress_IO; 94 unsigned merged_reads; 95 unsigned merged_writes; 96 unsigned milli_reading; 97 unsigned milli_spent_IO; 98 unsigned milli_writing; 99 unsigned partitions; 100 unsigned reads; 101 unsigned weighted_milli_spent_IO; 102 unsigned writes; 103}disk_stat; 104 105typedef struct partition_stat{ 106 char partition_name [16]; 107 unsigned long long reads_sectors; 108 unsigned parent_disk; // index into a struct disk_stat array 109 unsigned reads; 110 unsigned writes; 111 unsigned requested_writes; 112}partition_stat; 113 114extern unsigned int getpartitions_num(struct disk_stat *disks, int ndisks); 115extern unsigned int getdiskstat (struct disk_stat**,struct partition_stat**); 116 117typedef struct slab_cache{ 118 char name[48]; 119 unsigned active_objs; 120 unsigned num_objs; 121 unsigned objsize; 122 unsigned objperslab; 123}slab_cache; 124 125extern unsigned int getslabinfo (struct slab_cache**); 126 127extern unsigned get_pid_digits(void) FUNCTION; 128 129EXTERN_C_END 130#endif /* SYSINFO_H */ 131