procps/proc/sysinfo.h

132 lines
4.0 KiB
C
Raw Normal View History

2002-12-09 12:30:07 +05:30
#ifndef PROC_SYSINFO_H
#define PROC_SYSINFO_H
2003-05-31 06:08:55 +05:30
#include <sys/types.h>
#include <sys/dir.h>
2002-11-25 15:46:33 +05:30
#include "procps.h"
2002-12-09 12:30:07 +05:30
EXTERN_C_BEGIN
2002-05-28 09:48:55 +05:30
extern unsigned long long Hertz; /* clock tick frequency */
2002-02-02 04:17:29 +05:30
extern long smp_num_cpus; /* number of CPUs */
#define JT double
2002-10-09 12:41:08 +05:30
extern void five_cpu_numbers(JT *uret, JT *nret, JT *sret, JT *iret, JT *wret);
2002-02-02 04:17:29 +05:30
#undef JT
extern int uptime (double *uptime_secs, double *idle_secs);
extern void loadavg(double *av1, double *av5, double *av15);
/* obsolete */
2003-01-23 11:18:27 +05:30
extern unsigned long kb_main_shared;
2002-02-02 04:17:29 +05:30
/* old but still kicking -- the important stuff */
2003-01-23 11:18:27 +05:30
extern unsigned long kb_main_buffers;
extern unsigned long kb_main_cached;
extern unsigned long kb_main_free;
extern unsigned long kb_main_total;
extern unsigned long kb_swap_free;
extern unsigned long kb_swap_total;
2002-02-02 04:17:29 +05:30
/* recently introduced */
2003-01-23 11:18:27 +05:30
extern unsigned long kb_high_free;
extern unsigned long kb_high_total;
extern unsigned long kb_low_free;
extern unsigned long kb_low_total;
2002-02-02 04:17:29 +05:30
/* 2.4.xx era */
2003-01-23 11:18:27 +05:30
extern unsigned long kb_active;
extern unsigned long kb_inact_laundry; // grrr...
extern unsigned long kb_inact_dirty;
extern unsigned long kb_inact_clean;
extern unsigned long kb_inact_target;
extern unsigned long kb_swap_cached; /* late 2.4+ */
2002-02-02 04:17:29 +05:30
/* derived values */
2003-01-23 11:18:27 +05:30
extern unsigned long kb_swap_used;
extern unsigned long kb_main_used;
2002-10-06 22:16:06 +05:30
/* 2.5.41+ */
2003-01-23 11:18:27 +05:30
extern unsigned long kb_writeback;
extern unsigned long kb_slab;
extern unsigned long nr_reversemaps;
extern unsigned long kb_committed_as;
extern unsigned long kb_dirty;
extern unsigned long kb_inactive;
extern unsigned long kb_mapped;
extern unsigned long kb_pagetables;
2002-02-02 04:17:29 +05:30
2003-05-31 06:08:55 +05:30
#define BUFFSIZE 8192
typedef unsigned long long jiff;
extern void getstat(jiff *restrict cuse, jiff *restrict cice, jiff *restrict csys, jiff *restrict cide, jiff *restrict ciow,
unsigned long *restrict pin, unsigned long *restrict pout, unsigned long *restrict s_in, unsigned long *restrict sout,
unsigned *restrict intr, unsigned *restrict ctxt,
unsigned int *restrict running, unsigned int *restrict blocked,
unsigned int *restrict btime, unsigned int *restrict processes);
2002-02-02 04:17:29 +05:30
extern void meminfo(void);
2002-10-06 22:16:06 +05:30
2003-01-23 11:18:27 +05:30
extern unsigned long vm_nr_dirty;
extern unsigned long vm_nr_writeback;
extern unsigned long vm_nr_pagecache;
extern unsigned long vm_nr_page_table_pages;
extern unsigned long vm_nr_reverse_maps;
extern unsigned long vm_nr_mapped;
extern unsigned long vm_nr_slab;
extern unsigned long vm_pgpgin;
extern unsigned long vm_pgpgout;
extern unsigned long vm_pswpin;
extern unsigned long vm_pswpout;
extern unsigned long vm_pgalloc;
extern unsigned long vm_pgfree;
extern unsigned long vm_pgactivate;
extern unsigned long vm_pgdeactivate;
extern unsigned long vm_pgfault;
extern unsigned long vm_pgmajfault;
extern unsigned long vm_pgscan;
extern unsigned long vm_pgrefill;
extern unsigned long vm_pgsteal;
extern unsigned long vm_kswapd_steal;
extern unsigned long vm_pageoutrun;
extern unsigned long vm_allocstall;
2002-10-06 22:16:06 +05:30
extern void vminfo(void);
2003-06-08 22:58:06 +05:30
typedef struct disk_stat{
unsigned int disk_type;
char disk_name [16];
unsigned reads;
unsigned merged_reads;
unsigned long long reads_sectors;
unsigned milli_reading;
unsigned writes;
unsigned merged_writes;
unsigned long long written_sectors;
unsigned milli_writing;
unsigned inprogress_IO;
unsigned milli_spent_IO;
unsigned weighted_milli_spent_IO;
}disk_stat;
typedef struct partition_stat{
unsigned int disk_type;
unsigned int partition_num;
char partition_name [16];
struct disk_stat* parent_disk;
unsigned reads;
unsigned long long reads_sectors;
unsigned writes;
unsigned requested_writes;
}partition_stat;
extern unsigned int getdiskstat (struct disk_stat**,struct partition_stat**);
typedef struct slab_cache{
char name[48];
unsigned active_objs;
unsigned num_objs;
unsigned objsize;
unsigned objperslab;
}slab_cache;
extern unsigned int getslabinfo (struct slab_cache**);
2002-12-09 12:30:07 +05:30
EXTERN_C_END
2002-02-02 04:17:29 +05:30
#endif /* SYSINFO_H */