|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <errno.h> ! 3: #include <nlist.h> ! 4: #include "defs.h" ! 5: #include "load.h" ! 6: ! 7: /* globals */ ! 8: struct nlist nl[] ={ ! 9: {"_intrtime",0}, ! 10: {"_cp_time",0}, ! 11: {"_avenrun",0}, ! 12: { 0,0 }, ! 13: }; ! 14: char *sys = "/unix"; ! 15: char *core = "/dev/kmem"; ! 16: int mem; ! 17: ! 18: /* imported */ ! 19: extern int errno; ! 20: extern long lseek(); ! 21: extern long time(); ! 22: ! 23: /* initialize */ ! 24: initload() ! 25: { ! 26: nlist(sys, nl); ! 27: ! 28: mem = open(core, 0); ! 29: if (mem<0) { ! 30: printf("can't open %s\n", core); ! 31: printf("errno = %d\n", errno); ! 32: exit(1); ! 33: } ! 34: ! 35: } ! 36: ! 37: /* generate the current information */ ! 38: genload() ! 39: { ! 40: char buf[16]; ! 41: double fabs(); ! 42: ! 43: lseek(mem, (long)nl[1].n_value, 0); ! 44: read(mem, (char *)load.l_cp, sizeof(load.l_cp)); ! 45: lseek(mem, (long)nl[2].n_value, 0); ! 46: read(mem, (char *)&(load.l_runq), sizeof(load.l_runq)); ! 47: load.l_time = time ((long *)0); ! 48: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.