diff options
author | bde <bde@FreeBSD.org> | 2004-05-19 15:41:26 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2004-05-19 15:41:26 +0000 |
commit | f309a749f55f70c2cd608bb5406228db7803873f (patch) | |
tree | cf3f3f9c7355143e263b31af5e429443de31dd41 /sys/sys/gmon.h | |
parent | eef4a496456d18eaa620744429e239336c1cc5fe (diff) | |
download | FreeBSD-src-f309a749f55f70c2cd608bb5406228db7803873f.zip FreeBSD-src-f309a749f55f70c2cd608bb5406228db7803873f.tar.gz |
Moved most of the "MI" definitions and declarations from <machine/profile.h>
to <sys/gmon.h>. Cleaned them up a little by not attempting to ifdef
for incomplete and out of date support for GUPROF in userland, as in
the sparc64 version.
Diffstat (limited to 'sys/sys/gmon.h')
-rw-r--r-- | sys/sys/gmon.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sys/sys/gmon.h b/sys/sys/gmon.h index 003e19c..0b2e235 100644 --- a/sys/sys/gmon.h +++ b/sys/sys/gmon.h @@ -198,4 +198,36 @@ extern struct gmonparam _gmonparam; #define GPROF_TOS 3 /* struct: destination/count structure */ #define GPROF_GMONPARAM 4 /* struct: profiling parameters (see above) */ +#ifdef _KERNEL + +#ifdef GUPROF + +#define CALIB_SCALE 1000 +#define KCOUNT(p,index) \ + ((p)->kcount[(index) / (HISTFRACTION * sizeof(HISTCOUNTER))]) +#define PC_TO_I(p, pc) ((uintfptr_t)(pc) - (uintfptr_t)(p)->lowpc) + +extern int cputime_bias; + +int cputime(void); +void nullfunc_loop_profiled(void); +void nullfunc_profiled(void); +void startguprof(struct gmonparam *p); +void stopguprof(struct gmonparam *p); + +#else /* !GUPROF */ + +#define startguprof(p) +#define stopguprof(p) + +#endif /* GUPROF */ + +void empty_loop(void); +void kmupetext(uintfptr_t nhighpc); +void mexitcount(uintfptr_t selfpc); +void nullfunc(void); +void nullfunc_loop(void); + +#endif /* _KERNEL */ + #endif /* !_SYS_GMON_H_ */ |