summaryrefslogtreecommitdiff
path: root/kernel/table.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/table.h')
-rw-r--r--kernel/table.h188
1 files changed, 188 insertions, 0 deletions
diff --git a/kernel/table.h b/kernel/table.h
new file mode 100644
index 00000000..d4959370
--- /dev/null
+++ b/kernel/table.h
@@ -0,0 +1,188 @@
+#ifndef _LINUX_TABLE_H
+#define _LINUX_TABLE_H
+
+#ifdef _KERNEL
+#include <linux/types.h>
+#else
+#define NR_TASKS 512
+#endif
+
+#define TABLE_KERN_PROC_ALL 0 /* all processes */
+#define TABLE_KERN_PROC_PID 1
+#define TABLE_KERN_PROC_PGRP 2
+#define TABLE_KERN_PROC_SESSION 3
+#define TABLE_KERN_PROC_TTY 4
+#define TABLE_KERN_PROC_UID 5
+#define TABLE_KERN_PROC_RUID 6
+
+#define TABLE_KERN_PROC_MASK 15
+
+#define TABLE_EXCLUDE_IDLE 0x1000
+#define TABLE_EXCLUDE_SYSTEM 0x2000
+#define TABLE_EXCLUDE_NOTTY 0x4000
+
+#define TABLE_VERSION 0
+#define TABLE_CPU 1
+#define TABLE_MEM 2
+#define TABLE_SWAP 3
+#define TABLE_LOADAVG 4
+#define TABLE_UPTIME 5
+#define TABLE_PROCLIST 6
+#define TABLE_PROC_UID 7
+#define TABLE_PROC_MEM 8
+#define TABLE_PROC_SEGMENT 9
+#define TABLE_PROC_TIME 10
+#define TABLE_PROC_STATE 11
+#define TABLE_PROC_SIGNAL 12
+#define TABLE_PROC_KERNEL 13
+
+/* CPU Usage (in jiffies = 1/100th seconds) */
+
+struct table_cpu
+{
+ unsigned long total; /* Total CPU Time */
+ unsigned long user; /* CPU Time in User Mode */
+ unsigned long nice; /* CPU Time in User Mode (nice) */
+ unsigned long sys; /* CPU Time in System Mode */
+ unsigned long idle; /* CPU Time in the Idle Task */
+ unsigned long frequency; /* Tick frequency */
+};
+
+/* Memory Usage (in bytes) */
+
+struct table_mem
+{
+ unsigned long total; /* Total physical memory */
+ unsigned long used; /* Used memory size */
+ unsigned long free; /* Free memory size */
+ unsigned long shared; /* Shared memory size */
+ unsigned long buffer; /* Size of buffers */
+ unsigned long cached; /* Size of cached memory */
+};
+
+/* Swap Space (in bytes) */
+
+struct table_swap
+{
+ unsigned long total; /* Total swap space */
+ unsigned long used; /* Used swap space */
+ unsigned long free; /* Free swap space */
+ unsigned long pagein; /* Total # of pages swapped in */
+ unsigned long pageout; /* Total # of pages swapped out */
+};
+
+/* Load average */
+
+struct table_loadavg
+{
+ double loadavg [3];
+ unsigned nr_running;
+ unsigned nr_tasks;
+ unsigned last_pid;
+};
+
+/* Uptime */
+
+struct table_uptime
+{
+ unsigned long uptime;
+ unsigned long idle;
+};
+
+/* Process list. */
+
+struct proclist_args
+{
+ int which, arg;
+};
+
+struct table_proclist
+{
+ int nr_running, nr_tasks, last_pid;
+ unsigned pids [NR_TASKS];
+};
+
+/* Information about processes. */
+
+struct table_proc_state
+{
+ long state;
+ unsigned long flags;
+ char comm[16];
+ int uid, gid;
+};
+
+struct table_proc_uid
+{
+ int uid, euid, suid, fsuid;
+ int gid, egid, sgid, fsgid;
+ int pid, pgrp, ppid;
+ int session;
+ unsigned int tty;
+ int tpgid;
+ long priority;
+ long counter;
+ long def_priority;
+};
+
+struct table_proc_mem
+{
+ unsigned long context;
+ unsigned long start_code, end_code, start_data, end_data;
+ unsigned long start_brk, brk, start_stack, start_mmap;
+ unsigned long arg_start, arg_end, env_start, env_end;
+ unsigned long rss, rlim, total_vm, locked_vm;
+};
+
+struct table_proc_segment
+{
+ unsigned long vsize;
+ unsigned long size, resident, shared;
+ unsigned long trs, lrs, drs, srs, dt;
+};
+
+struct table_proc_time
+{
+ long utime, stime, cutime, cstime, start_time;
+ unsigned long timeout, policy, rt_priority;
+ unsigned long it_real_value, it_prof_value, it_virt_value;
+ unsigned long it_real_incr, it_prof_incr, it_virt_incr;
+};
+
+struct table_proc_signal
+{
+ unsigned long long signal,
+ blocked, /* bitmap of masked signals */
+ ignored, /* mask of ignored signals */
+ caught; /* mask of caught signals */
+};
+
+struct table_proc_kernel
+{
+ unsigned long keip, kesp, wchan;
+ unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
+ unsigned long nswap, cnswap;
+};
+
+/* Union */
+
+union table
+{
+ struct table_cpu cpu;
+ struct table_mem mem;
+ struct table_swap swap;
+ struct table_loadavg loadavg;
+ struct table_uptime uptime;
+ struct table_proclist proclist;
+ struct table_proc_uid proc_uid;
+ struct table_proc_mem proc_mem;
+ struct table_proc_segment proc_segment;
+ struct table_proc_time proc_time;
+ struct table_proc_state proc_state;
+ struct table_proc_signal proc_signal;
+ struct table_proc_kernel proc_kernel;
+};
+
+#endif /* _LINUX_IPC_H */
+
+