From 65fbcf1ea3dc818a138dff0e9c1f7ecf5b29f62d Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Tue, 21 Jul 1998 17:25:09 +0000 Subject: [PATCH] New directory for 2.0.xx kernels. 1998-07-21 Martin Baulig * table20: New directory for 2.0.xx kernels. * table21: New directory for 2.1.xx kernels. * *: Moved into `table20' and `table21'. --- kernel/ChangeLog | 8 + kernel/Makefile | 13 -- kernel/README | 21 --- kernel/kernel.patch | 49 ----- kernel/main.c | 423 -------------------------------------------- kernel/table.h | 154 ---------------- kernel/test.c | 85 --------- kernel/version.h | 1 - 8 files changed, 8 insertions(+), 746 deletions(-) delete mode 100644 kernel/Makefile delete mode 100644 kernel/README delete mode 100644 kernel/kernel.patch delete mode 100644 kernel/main.c delete mode 100644 kernel/table.h delete mode 100644 kernel/test.c delete mode 100644 kernel/version.h diff --git a/kernel/ChangeLog b/kernel/ChangeLog index dfde45e2..a3efd8d7 100644 --- a/kernel/ChangeLog +++ b/kernel/ChangeLog @@ -1,3 +1,11 @@ +1998-07-21 Martin Baulig + + * table20: New directory for 2.0.xx kernels. + + * table21: New directory for 2.1.xx kernels. + + * *: Moved into `table20' and `table21'. + 1998-06-14 Martin Baulig * README: Added README. diff --git a/kernel/Makefile b/kernel/Makefile deleted file mode 100644 index d24e3ba8..00000000 --- a/kernel/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# -# Makefile for the linux system information tables. -# -# Note! Dependencies are done automagically by 'make dep', which also -# removes any old dependencies. DON'T put your own dependencies here -# unless it's something special (ie not a .c file). -# -# Note 2! The CFLAGS definition is now in the main makefile... - -O_TARGET := table.o -O_OBJS := main.o - -include $(TOPDIR)/Rules.make diff --git a/kernel/README b/kernel/README deleted file mode 100644 index 88d26bec..00000000 --- a/kernel/README +++ /dev/null @@ -1,21 +0,0 @@ -This is a new system call `table ()' for the Linux table. It is faster -than reading from /proc and can be used to fetch all information required -for libgtop until whe have some other function (extended sysctl, ...) in -standard kernels. - -I didn't want to change sysctl or some other function myself cause this may -cause other applications relying upon those function to fail. This is -something for the ``real'' kernel gurus ... - -To use this new system call for libgtop, do the following: - -* Copy this directory to /usr/src/linux/table -* Make /usr/src/linux/include/linux/table.h symlink to /usr/src/linux/table/table.h -* Apply the patch `kernel.patch' to the kernel, compile, install and reboot -* Recompile libgtop (remove `config.cache' and run the `autogen.sh' again). - -If you want to change and/or add something - feel free to do so ! - -Have fun, - -Martin diff --git a/kernel/kernel.patch b/kernel/kernel.patch deleted file mode 100644 index 0ac00716..00000000 --- a/kernel/kernel.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -ur linux-2.0.32/Makefile linux-hacked/Makefile ---- linux-2.0.32/Makefile Fri Nov 7 19:51:05 1997 -+++ linux-hacked/Makefile Thu Jun 11 20:41:12 1998 -@@ -87,7 +87,7 @@ - # standard CFLAGS - # - --CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce -+CFLAGS = -Wall -Wstrict-prototypes -g -O2 -fomit-frame-pointer -fno-strength-reduce - - ifdef CONFIG_CPP - CFLAGS := $(CFLAGS) -x c++ -@@ -113,12 +113,12 @@ - # Include the make variables (CC, etc...) - # - --ARCHIVES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o net/network.a -+ARCHIVES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o net/network.a table/table.o - FILESYSTEMS =fs/filesystems.a - DRIVERS =drivers/block/block.a \ - drivers/char/char.a - LIBS =$(TOPDIR)/lib/lib.a --SUBDIRS =kernel drivers mm fs net ipc lib -+SUBDIRS =kernel drivers mm fs net ipc lib table - - ifeq ($(CONFIG_ISDN),y) - DRIVERS := $(DRIVERS) drivers/isdn/isdn.a -diff -ur linux-2.0.32/arch/i386/kernel/entry.S linux-hacked/arch/i386/kernel/entry.S ---- linux-2.0.32/arch/i386/kernel/entry.S Tue Sep 16 23:42:45 1997 -+++ linux-hacked/arch/i386/kernel/entry.S Thu Jun 11 21:37:20 1998 -@@ -699,4 +699,6 @@ - .long SYMBOL_NAME(sys_mremap) - .long 0,0 - .long SYMBOL_NAME(sys_vm86) -- .space (NR_syscalls-166)*4 -+ .long 0 -+ .long SYMBOL_NAME(sys_table) -+ .space (NR_syscalls-168)*4 -diff -ur linux-2.0.32/include/asm-i386/unistd.h linux-hacked/include/asm-i386/unistd.h ---- linux-2.0.32/include/asm-i386/unistd.h Fri Mar 22 07:34:02 1996 -+++ linux-hacked/include/asm-i386/unistd.h Thu Jun 11 21:37:03 1998 -@@ -169,6 +169,7 @@ - #define __NR_sched_rr_get_interval 161 - #define __NR_nanosleep 162 - #define __NR_mremap 163 -+#define __NR_table 168 - - /* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */ - #define _syscall0(type,name) \ diff --git a/kernel/main.c b/kernel/main.c deleted file mode 100644 index 08a184d6..00000000 --- a/kernel/main.c +++ /dev/null @@ -1,423 +0,0 @@ -/* - * linux/table/table_impl.c - * Copyright (C) 1998 Martin Baulig - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include "version.h" - -#if defined(__i386__) -# define KSTK_EIP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1019]) -# define KSTK_ESP(tsk) (((unsigned long *)tsk->kernel_stack_page)[1022]) -#elif defined(__alpha__) - /* - * See arch/alpha/kernel/ptrace.c for details. - */ -# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \ - + (long)&((struct pt_regs *)0)->reg) -# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc))) -# define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->tss.usp) -#elif defined(__sparc__) -# define PT_REG(reg) (PAGE_SIZE - sizeof(struct pt_regs) \ - + (long)&((struct pt_regs *)0)->reg) -# define KSTK_EIP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(pc))) -# define KSTK_ESP(tsk) (*(unsigned long *)(tsk->kernel_stack_page + PT_REG(u_regs[UREG_FP]))) -#endif - -static struct task_struct * -get_task (pid_t pid) -{ - struct task_struct ** p; - - p = task; - while (++p < task+NR_TASKS) { - if (*p && (*p)->pid == pid) - return *p; - } - - return NULL; -} - -static inline void statm_pte_range(pmd_t * pmd, unsigned long address, unsigned long size, - int * pages, int * shared, int * dirty, int * total) -{ - pte_t * pte; - unsigned long end; - - if (pmd_none(*pmd)) - return; - if (pmd_bad(*pmd)) { - printk("statm_pte_range: bad pmd (%08lx)\n", pmd_val(*pmd)); - pmd_clear(pmd); - return; - } - pte = pte_offset(pmd, address); - address &= ~PMD_MASK; - end = address + size; - if (end > PMD_SIZE) - end = PMD_SIZE; - do { - pte_t page = *pte; - - address += PAGE_SIZE; - pte++; - if (pte_none(page)) - continue; - ++*total; - if (!pte_present(page)) - continue; - ++*pages; - if (pte_dirty(page)) - ++*dirty; - if (pte_page(page) >= high_memory) - continue; - if (mem_map[MAP_NR(pte_page(page))].count > 1) - ++*shared; - } while (address < end); -} - -static inline void statm_pmd_range(pgd_t * pgd, unsigned long address, unsigned long size, - int * pages, int * shared, int * dirty, int * total) -{ - pmd_t * pmd; - unsigned long end; - - if (pgd_none(*pgd)) - return; - if (pgd_bad(*pgd)) { - printk("statm_pmd_range: bad pgd (%08lx)\n", pgd_val(*pgd)); - pgd_clear(pgd); - return; - } - pmd = pmd_offset(pgd, address); - address &= ~PGDIR_MASK; - end = address + size; - if (end > PGDIR_SIZE) - end = PGDIR_SIZE; - do { - statm_pte_range(pmd, address, end - address, pages, shared, dirty, total); - address = (address + PMD_SIZE) & PMD_MASK; - pmd++; - } while (address < end); -} - -static void statm_pgd_range(pgd_t * pgd, unsigned long address, unsigned long end, - int * pages, int * shared, int * dirty, int * total) -{ - while (address < end) { - statm_pmd_range(pgd, address, end - address, pages, shared, dirty, total); - address = (address + PGDIR_SIZE) & PGDIR_MASK; - pgd++; - } -} - -static unsigned long -get_wchan (struct task_struct *p) -{ - if (!p || p == current || p->state == TASK_RUNNING) - return 0; -#if defined(__i386__) - { - unsigned long ebp, eip; - unsigned long stack_page; - int count = 0; - - stack_page = p->kernel_stack_page; - if (!stack_page) - return 0; - ebp = p->tss.ebp; - do { - if (ebp < stack_page || ebp >= 4092+stack_page) - return 0; - eip = *(unsigned long *) (ebp+4); - if (eip < (unsigned long) interruptible_sleep_on - || eip >= (unsigned long) add_timer) - return eip; - ebp = *(unsigned long *) ebp; - } while (count++ < 16); - } -#elif defined(__alpha__) - /* - * This one depends on the frame size of schedule(). Do a - * "disass schedule" in gdb to find the frame size. Also, the - * code assumes that sleep_on() follows immediately after - * interruptible_sleep_on() and that add_timer() follows - * immediately after interruptible_sleep(). Ugly, isn't it? - * Maybe adding a wchan field to task_struct would be better, - * after all... - */ - { - unsigned long schedule_frame; - unsigned long pc; - - pc = thread_saved_pc(&p->tss); - if (pc >= (unsigned long) interruptible_sleep_on && pc < (unsigned long) add_timer) { - schedule_frame = ((unsigned long *)p->tss.ksp)[6]; - return ((unsigned long *)schedule_frame)[12]; - } - return pc; - } -#endif - return 0; -} - -asmlinkage int -sys_table (int type, union table *buf, const void *param) -{ - union table tbl; - struct sysinfo i; - struct task_struct *tsk = NULL; - pid_t pid; - int err; - - if (type == TABLE_VERSION) - return _TABLE_VERSION; - - if (!buf) - return -EFAULT; - - memset (&tbl, 0, sizeof (union table)); - - /* For TABLE_PROC_*, read pid and get task_struct */ - - switch (type) { - case TABLE_PROC_UID: - case TABLE_PROC_MEM: - case TABLE_PROC_SEGMENT: - case TABLE_PROC_TIME: - case TABLE_PROC_STATE: - case TABLE_PROC_SIGNAL: - case TABLE_PROC_KERNEL: - err = verify_area (VERIFY_READ, param, sizeof (pid_t)); - if (err) - return err; - memcpy_fromfs (&pid, param, sizeof (pid_t)); - - tsk = get_task (pid); - if (tsk == NULL) - return -ESRCH; - break; - } - - /* Main function dispatcher */ - - switch (type) { - case TABLE_CPU: - tbl.cpu.total = jiffies; - tbl.cpu.user = kstat.cpu_user; - tbl.cpu.nice = kstat.cpu_nice; - tbl.cpu.sys = kstat.cpu_system; - tbl.cpu.idle = tbl.cpu.total - (tbl.cpu.user + tbl.cpu.nice + tbl.cpu.sys); - tbl.cpu.frequency = HZ; - break; - case TABLE_MEM: - si_meminfo (&i); - tbl.mem.total = i.totalram; - tbl.mem.used = i.totalram - i.freeram; - tbl.mem.free = i.freeram; - tbl.mem.shared = i.sharedram; - tbl.mem.buffer = i.bufferram; - tbl.mem.cached = page_cache_size << PAGE_SHIFT; - break; - case TABLE_SWAP: - si_swapinfo (&i); - tbl.swap.total = i.totalswap; - tbl.swap.used = i.totalswap - i.freeswap; - tbl.swap.free = i.freeswap; - break; - case TABLE_LOADAVG: - tbl.loadavg.loadavg [0] = (double) avenrun [0] / (1 << FSHIFT); - tbl.loadavg.loadavg [1] = (double) avenrun [1] / (1 << FSHIFT); - tbl.loadavg.loadavg [2] = (double) avenrun [2] / (1 << FSHIFT); - tbl.loadavg.nr_running = nr_running; - tbl.loadavg.nr_tasks = nr_tasks; - tbl.loadavg.last_pid = last_pid; - break; - case TABLE_UPTIME: - tbl.uptime.uptime = jiffies; - tbl.uptime.idle = task[0]->utime + task[0]->stime; - break; - case TABLE_PROC_STATE: - tbl.proc_state.state = tsk->state; - tbl.proc_state.flags = tsk->flags; - memcpy (tbl.proc_state.comm, tsk->comm, sizeof (tbl.proc_state.comm)); - break; - case TABLE_PROC_UID: - tbl.proc_uid.uid = tsk->uid; - tbl.proc_uid.euid = tsk->euid; - tbl.proc_uid.suid = tsk->suid; - tbl.proc_uid.fsuid = tsk->fsuid; - - tbl.proc_uid.gid = tsk->gid; - tbl.proc_uid.egid = tsk->egid; - tbl.proc_uid.sgid = tsk->sgid; - tbl.proc_uid.fsgid = tsk->fsgid; - - tbl.proc_uid.pid = tsk->pid; - tbl.proc_uid.pgrp = tsk->pgrp; - tbl.proc_uid.ppid = tsk->p_pptr->pid; - - tbl.proc_uid.session = tsk->session; - tbl.proc_uid.tty = tsk->tty ? kdev_t_to_nr (tsk->tty->device) : 0; - tbl.proc_uid.tpgid = tsk->tty ? tsk->tty->pgrp : -1; - - tbl.proc_uid.priority = tsk->priority; - tbl.proc_uid.counter = tsk->counter; - tbl.proc_uid.def_priority = DEF_PRIORITY; - break; - case TABLE_PROC_SIGNAL: - tbl.proc_signal.signal = tsk->signal; - tbl.proc_signal.blocked = tsk->blocked; - - if (tsk->sig) { - struct sigaction * action = tsk->sig->action; - unsigned long sig_ign = 0, sig_caught = 0; - unsigned long bit = 1; - int i; - - for (i = 0; i < 32; i++) { - switch((unsigned long) action->sa_handler) { - case 0: - break; - case 1: - sig_ign |= bit; - break; - default: - sig_caught |= bit; - } - bit <<= 1; - action++; - } - - tbl.proc_signal.ignored = sig_ign; - tbl.proc_signal.caught = sig_caught; - } else { - tbl.proc_signal.ignored = 0; - tbl.proc_signal.caught = 0; - } - break; - case TABLE_PROC_MEM: - if (tsk->mm && tsk->mm != &init_mm) { - tbl.proc_mem.context = tsk->mm->context; - tbl.proc_mem.start_code = tsk->mm->start_code; - tbl.proc_mem.end_code = tsk->mm->end_code; - tbl.proc_mem.start_data = tsk->mm-> start_data; - tbl.proc_mem.end_data = tsk->mm->end_data; - tbl.proc_mem.start_brk = tsk->mm->start_brk; - tbl.proc_mem.brk = tsk->mm->brk; - tbl.proc_mem.start_stack = tsk->mm->start_stack; - tbl.proc_mem.start_mmap = tsk->mm->start_mmap; - tbl.proc_mem.arg_start = tsk->mm->arg_start; - tbl.proc_mem.arg_end = tsk->mm->arg_end; - tbl.proc_mem.env_start = tsk->mm->env_start; - tbl.proc_mem.env_end = tsk->mm->env_end; - tbl.proc_mem.rss = tsk->mm->rss; - tbl.proc_mem.total_vm = tsk->mm->total_vm; - tbl.proc_mem.locked_vm = tsk->mm->locked_vm; - } - tbl.proc_mem.rlim = tsk->rlim ? tsk->rlim[RLIMIT_RSS].rlim_cur : 0; - break; - case TABLE_PROC_SEGMENT: - if (tsk->mm && tsk->mm != &init_mm) { - unsigned long vsize = 0; - int size = 0, resident = 0, share = 0; - int trs = 0, lrs = 0, drs = 0, dt = 0; - struct vm_area_struct * vma = tsk->mm->mmap; - - while (vma) { - pgd_t *pgd = pgd_offset(tsk->mm, vma->vm_start); - int pages = 0, shared = 0, dirty = 0, total = 0; - - vsize += vma->vm_end - vma->vm_start; - - statm_pgd_range (pgd, vma->vm_start, vma->vm_end, - &pages, &shared, &dirty, &total); - resident += pages; - share += shared; - dt += dirty; - size += total; - if (vma->vm_flags & VM_EXECUTABLE) - trs += pages; /* text */ - else if (vma->vm_flags & VM_GROWSDOWN) - drs += pages; /* stack */ - else if (vma->vm_end > 0x60000000) - lrs += pages; /* library */ - else - drs += pages; - vma = vma->vm_next; - } - - tbl.proc_segment.vsize = vsize; - tbl.proc_segment.size = size; - tbl.proc_segment.resident = resident; - tbl.proc_segment.shared = share; - tbl.proc_segment.trs = trs; - tbl.proc_segment.lrs = lrs; - tbl.proc_segment.dt = dt; - } - break; - case TABLE_PROC_TIME: - tbl.proc_time.utime = tsk->utime; - tbl.proc_time.stime = tsk->stime; - tbl.proc_time.cutime = tsk->cutime; - tbl.proc_time.cstime = tsk->cstime; - - tbl.proc_time.start_time = tsk->start_time; - tbl.proc_time.timeout = tsk->timeout; - tbl.proc_time.policy = tsk->policy; - tbl.proc_time.rt_priority = tsk->rt_priority; - - tbl.proc_time.it_real_value = tsk->it_real_value; - tbl.proc_time.it_prof_value = tsk->it_prof_value; - tbl.proc_time.it_virt_value = tsk->it_virt_value; - tbl.proc_time.it_real_incr = tsk->it_real_incr; - tbl.proc_time.it_prof_incr = tsk->it_prof_incr; - tbl.proc_time.it_virt_incr = tsk->it_virt_incr; - break; - case TABLE_PROC_KERNEL: - tbl.proc_kernel.min_flt = tsk->min_flt; - tbl.proc_kernel.cmin_flt = tsk->cmin_flt; - tbl.proc_kernel.maj_flt = tsk->maj_flt; - tbl.proc_kernel.cmaj_flt = tsk->cmaj_flt; - - tbl.proc_kernel.kesp = tsk->kernel_stack_page ? KSTK_EIP(tsk) : 0; - tbl.proc_kernel.keip = tsk->kernel_stack_page ? KSTK_ESP(tsk) : 0; - - tbl.proc_kernel.nswap = tsk->nswap; - tbl.proc_kernel.cnswap = tsk->cnswap; - - tbl.proc_kernel.wchan = get_wchan (tsk); - break; - default: - return -EINVAL; - } - - err = verify_area (VERIFY_WRITE, buf, sizeof (struct table)); - if (err) - return err; - - memcpy_tofs (buf, &tbl, sizeof (union table)); - return 0; -} diff --git a/kernel/table.h b/kernel/table.h deleted file mode 100644 index 801b410b..00000000 --- a/kernel/table.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef _LINUX_TABLE_H -#define _LINUX_TABLE_H - -#ifdef _KERNEL -#include -#endif - -#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_PROC_UID 6 -#define TABLE_PROC_MEM 7 -#define TABLE_PROC_SEGMENT 8 -#define TABLE_PROC_TIME 9 -#define TABLE_PROC_STATE 10 -#define TABLE_PROC_SIGNAL 11 -#define TABLE_PROC_KERNEL 12 - -/* 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 */ -}; - -/* 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; -}; - -/* Information about processes. */ - -struct table_proc_state -{ - long state; - unsigned long flags; - char comm[16]; -}; - -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; - int size, resident, shared; - int trs, lrs, drs, 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 signal; - unsigned long blocked; /* bitmap of masked signals */ - unsigned long ignored; /* mask of ignored signals */ - unsigned long 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_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 */ - - diff --git a/kernel/test.c b/kernel/test.c deleted file mode 100644 index f4ed092c..00000000 --- a/kernel/test.c +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include - -#include -#include -#include - -#include - -static inline _syscall3 (int, table, int, type, union table *, tbl, const void *, param); - -int -main (void) -{ - union table tbl; - unsigned count; - int ret; - - ret = table (TABLE_VERSION, NULL, NULL); - - if (ret == -1) { - fprintf (stderr, "table(%u): %s\n", TABLE_VERSION, sys_errlist [errno]); - exit (-errno); - } - - fprintf (stderr, "Table (%u) = %u\n", TABLE_VERSION, ret); - - for (count = 0; count < 5; count++) { - ret = table (TABLE_CPU, &tbl, NULL); - - if (ret == -1) { - fprintf (stderr, "table(%u): %s\n", TABLE_CPU, sys_errlist [errno]); - exit (-errno); - } - - fprintf (stderr, "Table (%u) = %lu, %lu, %lu, %lu, %lu, %lu\n", - TABLE_CPU, tbl.cpu.total, tbl.cpu.user, tbl.cpu.nice, - tbl.cpu.sys, tbl.cpu.idle, tbl.cpu.frequency); - } - - ret = table (TABLE_MEM, &tbl, NULL); - - if (ret == -1) { - fprintf (stderr, "table(%u): %s\n", TABLE_MEM, sys_errlist [errno]); - exit (-errno); - } - - fprintf (stderr, "Table (%u) = %lu, %lu, %lu, %lu, %lu, %lu\n", - TABLE_MEM, tbl.mem.total, tbl.mem.used, tbl.mem.free, - tbl.mem.shared, tbl.mem.buffer, tbl.mem.cached); - - ret = table (TABLE_SWAP, &tbl, NULL); - - if (ret == -1) { - fprintf (stderr, "table(%u): %s\n", TABLE_SWAP, sys_errlist [errno]); - exit (-errno); - } - - fprintf (stderr, "Table (%u) = %lu, %lu, %lu\n", - TABLE_SWAP, tbl.swap.total, tbl.swap.used, tbl.swap.free); - - ret = table (TABLE_LOADAVG, &tbl, NULL); - - if (ret == -1) { - fprintf (stderr, "table(%u): %s\n", TABLE_LOADAVG, sys_errlist [errno]); - exit (-errno); - } - - fprintf (stderr, "Table (%u) = (%lu, %lu, %lu) - %u, %u, %u\n", - TABLE_LOADAVG, tbl.loadavg.loadavg [0], tbl.loadavg.loadavg [1], - tbl.loadavg.loadavg [2], tbl.loadavg.nr_running, - tbl.loadavg.nr_tasks, tbl.loadavg.last_pid); - - ret = table (TABLE_UPTIME, &tbl, NULL); - - if (ret == -1) { - fprintf (stderr, "table(%u): %s\n", TABLE_UPTIME, sys_errlist [errno]); - exit (-errno); - } - - fprintf (stderr, "Table (%u) = %lu, %lu\n", - TABLE_UPTIME, tbl.uptime.uptime, tbl.uptime.idle); - - exit (0); -} diff --git a/kernel/version.h b/kernel/version.h deleted file mode 100644 index d47411ee..00000000 --- a/kernel/version.h +++ /dev/null @@ -1 +0,0 @@ -#define _TABLE_VERSION 1