124139Sjoerg/* 224139Sjoerg * Top - a top users display for Berkeley Unix 324139Sjoerg * 424139Sjoerg * Defines required to access load average figures. 524139Sjoerg * 624139Sjoerg * This include file sets up everything we need to access the load average 724139Sjoerg * values in the kernel in a machine independent way. First, it sets the 824139Sjoerg * typedef "load_avg" to be either double or long (depending on what is 924139Sjoerg * needed), then it defines these macros appropriately: 1024139Sjoerg * 1124139Sjoerg * loaddouble(la) - convert load_avg to double. 1224139Sjoerg * intload(i) - convert integer to load_avg. 1324139Sjoerg */ 1424139Sjoerg 1524139Sjoerg/* 1624139Sjoerg * We assume that if FSCALE is defined, then avenrun and ccpu are type long. 1724139Sjoerg * If your machine is an exception (mips, perhaps?) then make adjustments 1824139Sjoerg * here. 1924139Sjoerg * 2024139Sjoerg * Defined types: load_avg for load averages, pctcpu for cpu percentages. 2124139Sjoerg */ 22292110Slidl#if defined(mips) && !(defined(NetBSD) || defined(FreeBSD)) 2324139Sjoerg# include <sys/fixpoint.h> 2424139Sjoerg# if defined(FBITS) && !defined(FSCALE) 25292110Slidl# define FSCALE (1 << FBITS) /* RISC/os on mips */ 2624139Sjoerg# endif 2724139Sjoerg#endif 2824139Sjoerg 2924139Sjoerg#ifdef FSCALE 3024139Sjoerg# define FIXED_LOADAVG FSCALE 3124139Sjoerg# define FIXED_PCTCPU FSCALE 3224139Sjoerg#endif 3324139Sjoerg 3424139Sjoerg#ifdef ibm032 3524139Sjoerg# undef FIXED_LOADAVG 3624139Sjoerg# undef FIXED_PCTCPU 3724139Sjoerg# define FIXED_PCTCPU PCT_SCALE 3824139Sjoerg#endif 3924139Sjoerg 4024139Sjoerg 4124139Sjoerg#ifdef FIXED_PCTCPU 4224139Sjoerg typedef long pctcpu; 4324139Sjoerg# define pctdouble(p) ((double)(p) / FIXED_PCTCPU) 4424139Sjoerg#else 4524139Sjoergtypedef double pctcpu; 4624139Sjoerg# define pctdouble(p) (p) 4724139Sjoerg#endif 4824139Sjoerg 4924139Sjoerg#ifdef FIXED_LOADAVG 5041325Sdfr typedef fixpt_t load_avg; 5124139Sjoerg# define loaddouble(la) ((double)(la) / FIXED_LOADAVG) 5224139Sjoerg# define intload(i) ((int)((i) * FIXED_LOADAVG)) 5324139Sjoerg#else 5424139Sjoerg typedef double load_avg; 5524139Sjoerg# define loaddouble(la) (la) 5624139Sjoerg# define intload(i) ((double)(i)) 5724139Sjoerg#endif 58