Changeset View
Changeset View
Standalone View
Standalone View
contrib/top/loadavg.h
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
/* | /* | ||||
* Copyright (c) 1984 through 2008, William LeFebvre | |||||
* All rights reserved. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions are met: | |||||
* | |||||
* * Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* | |||||
* * Redistributions in binary form must reproduce the above | |||||
* copyright notice, this list of conditions and the following disclaimer | |||||
* in the documentation and/or other materials provided with the | |||||
* distribution. | |||||
* | |||||
* * Neither the name of William LeFebvre nor the names of other | |||||
* contributors may be used to endorse or promote products derived from | |||||
* this software without specific prior written permission. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
/* | |||||
* Top - a top users display for Berkeley Unix | * Top - a top users display for Berkeley Unix | ||||
* | * | ||||
* Defines required to access load average figures. | * Defines required to access load average figures. | ||||
* | * | ||||
* This include file sets up everything we need to access the load average | * This include file sets up everything we need to access the load average | ||||
* values in the kernel in a machine independent way. First, it sets the | * values in the kernel in a machine independent way. First, it sets the | ||||
* typedef "load_avg" to be either double or long (depending on what is | * typedef "load_avg" to be either double or long (depending on what is | ||||
* needed), then it defines these macros appropriately: | * needed), then it defines these macros appropriately: | ||||
* | * | ||||
* loaddouble(la) - convert load_avg to double. | * loaddouble(la) - convert load_avg to double. | ||||
* intload(i) - convert integer to load_avg. | * intload(i) - convert integer to load_avg. | ||||
*/ | */ | ||||
/* | /* | ||||
* We assume that if FSCALE is defined, then avenrun and ccpu are type long. | * We assume that if FSCALE is defined, then avenrun and ccpu are type long. | ||||
* If your machine is an exception (mips, perhaps?) then make adjustments | * If your machine is an exception (mips, perhaps?) then make adjustments | ||||
* here. | * here. | ||||
* | * | ||||
* Defined types: load_avg for load averages, pctcpu for cpu percentages. | * Defined types: load_avg for load averages, pctcpu for cpu percentages. | ||||
*/ | */ | ||||
#if defined(mips) && !(defined(NetBSD) || defined(FreeBSD)) | #if defined(mips) && !defined(NetBSD) | ||||
# include <sys/fixpoint.h> | # include <sys/fixpoint.h> | ||||
# if defined(FBITS) && !defined(FSCALE) | # if defined(FBITS) && !defined(FSCALE) | ||||
# define FSCALE (1 << FBITS) /* RISC/os on mips */ | # define FSCALE (1 << FBITS) /* mips */ | ||||
# endif | # endif | ||||
#endif | #endif | ||||
#ifdef FSCALE | #ifdef FSCALE | ||||
# define FIXED_LOADAVG FSCALE | # define FIXED_LOADAVG FSCALE | ||||
# define FIXED_PCTCPU FSCALE | # define FIXED_PCTCPU FSCALE | ||||
#endif | #endif | ||||
#ifdef ibm032 | #ifdef ibm032 | ||||
# undef FIXED_LOADAVG | # undef FIXED_LOADAVG | ||||
# undef FIXED_PCTCPU | # undef FIXED_PCTCPU | ||||
# define FIXED_PCTCPU PCT_SCALE | # define FIXED_PCTCPU PCT_SCALE | ||||
#endif | #endif | ||||
#ifdef FIXED_PCTCPU | #ifdef FIXED_PCTCPU | ||||
typedef long pctcpu; | typedef long pctcpu; | ||||
# define pctdouble(p) ((double)(p) / FIXED_PCTCPU) | # define pctdouble(p) ((double)(p) / FIXED_PCTCPU) | ||||
#else | #else | ||||
typedef double pctcpu; | typedef double pctcpu; | ||||
# define pctdouble(p) (p) | # define pctdouble(p) (p) | ||||
#endif | #endif | ||||
#ifdef FIXED_LOADAVG | #ifdef FIXED_LOADAVG | ||||
typedef fixpt_t load_avg; | typedef long load_avg; | ||||
# define loaddouble(la) ((double)(la) / FIXED_LOADAVG) | # define loaddouble(la) ((double)(la) / FIXED_LOADAVG) | ||||
# define intload(i) ((int)((i) * FIXED_LOADAVG)) | # define intload(i) ((int)((i) * FIXED_LOADAVG)) | ||||
#else | #else | ||||
typedef double load_avg; | typedef double load_avg; | ||||
# define loaddouble(la) (la) | # define loaddouble(la) (la) | ||||
# define intload(i) ((double)(i)) | # define intload(i) ((double)(i)) | ||||
#endif | #endif |