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