History log of /openbsd-current/lib/libc/gmon/gmon.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.33 26-Jul-2022 cheloha

moncontrol(3): remove hertz() fallback function

In the moncontrol(3) code in libc there is a fallback function,
hertz(). The idea is, if getting kern.clockrate from sysctl(2) fails,
we fall back to deriving the value of hz(9) using setitimer(2)'s
rounding behavior.

This is extremely clever, but it actually sucks. Calling setitimer(2)
quietly cancels any extant ITIMER_REAL timer, so moncontrol(3) cannot
be safely used alongside setitimer(2). This fact is not documented.

kern.clockrate is not blocked by pledge(2), so outside of stack
corruption (which we can't do anything about anyway) I don't see a way
for the sysctl(2) call to ever fail on OpenBSD. So hertz() is also
pointless.

Hence this patch: get rid of hertz().

Thread: https://marc.info/?l=openbsd-tech&m=163881542813633&w=2

ok guenther@


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE
# 1.32 12-Oct-2020 deraadt

make fixed-sized fixed-value mib[] arrays be const
ok guenther tb millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.31 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.30 21-Sep-2016 guenther

Delete casts to off_t and size_t that are implied by assignments
or prototypes. Ditto for some of the char* and void* casts too.

verified no change to instructions on ILP32 (i386) and LP64 (amd64)
ok natano@ abluhm@ deraadt@ millert@


Revision tags: OPENBSD_6_0_BASE
# 1.29 07-May-2016 guenther

Declare moncontrol(3) APIs in <sys/gmon.h>
Export _gmonparam again.
Make gcrt0.o use an reserved name for _monstartup()

ok millert@


# 1.28 14-Mar-2016 mmcc

(char *)0 -> NULL


# 1.27 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.26 19-Jan-2016 mmcc

replace (void *)0 with NULL


# 1.25 14-Sep-2015 guenther

Wrap moncontrol() so that internal calls go direct and it's a weak symbol


Revision tags: OPENBSD_5_8_BASE
# 1.24 06-May-2015 jsg

fix a fd leak in an error path in code under #ifdef DEBUG


Revision tags: OPENBSD_5_7_BASE
# 1.23 16-Jan-2015 deraadt

Move to the <limits.h> universe.
review by millert, binary checking process with doug, concept with guenther


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.22 12-Feb-2013 mpi

Back out per-CPU kernel profiling, it shouldn't modify a public header
at this moment.


# 1.21 12-Feb-2013 mpi

Unbreak the tree by adding missing defines. Forgot to sync in previous
spotted by todd@.


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.20 20-Nov-2005 millert

Allocate space for profiling data using mmap instead of sbrk.
Tested by myself and pedro@


Revision tags: OPENBSD_3_8_BASE
# 1.19 08-Aug-2005 espie

zap remaining rcsid.

Kill old files that are no longer compiled.

okay theo


# 1.18 21-Apr-2005 deraadt

be more careful about snprintf return value; ok beck cloder


# 1.17 23-Mar-2005 otto

deregister & ansify. ok deraad@ marco@ cloder@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE
# 1.16 25-Jun-2003 deraadt

protos


# 1.15 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.14 24-Nov-2002 cloder

Zero out the reserved fields of struct gmonhdr rather than leaving
stack garbage in them. From FreeBSD.

OK deraadt@


Revision tags: OPENBSD_3_2_BASE
# 1.13 25-May-2002 deraadt

remaining easy snprintf conversions


Revision tags: OPENBSD_3_1_BASE
# 1.12 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 15-Jul-1998 millert

make that 0664 until we find out why umask is not being applied


# 1.10 15-Jul-1998 millert

open gmon.out mode 0644, not 0666


# 1.9 05-Jul-1998 deraadt

use STDERR_FILENO; kleink


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.8 23-Jul-1997 kstailey

tabify + trailing blanks


Revision tags: OPENBSD_2_0_BASE OPENBSD_2_1_BASE
# 1.7 15-Sep-1996 tholo

Remove dead code
Remove unused variables
Silence some warnings
lint(1) is your friend


# 1.6 05-Sep-1996 deraadt

protect getenv, do not oflow, fix unused debug; bitblt and deraadt


# 1.5 19-Aug-1996 tholo

Fix RCS ids
Make sure everything uses {SYS,}LIBC_SCCS properly


# 1.4 18-Jun-1996 deraadt

use p->hashfraction when doing non-time-critical calculations, rather than
using HASHFRACTION directly. in time-critical calculations, if HASHFRACTION
is a power of two, check that p->hashfraction == HASHFRACTION and if so do
the calculation with the compiled-in value so that the compiler can optimize
out (potentially) expensive divisions. if p->hashfraction != HASHFRACTION,
actually do the division. This has the result that on machines with slow
division, the division can be optimized out of the common case, but that
if HASHFRACTION changes from the compiled-in value (for whatever reason),
profiling will still work. Changes suggested by Chris Torek.


# 1.3 25-Mar-1996 tholo

Protect internal mcount symbol from lint(1)
Use __asm, not asm


# 1.2 14-Dec-1995 deraadt

from cgd@netbsd:
kill a gratuitous cast of lowpc to an int
Add support for PROFDIR environment variable


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.32 12-Oct-2020 deraadt

make fixed-sized fixed-value mib[] arrays be const
ok guenther tb millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.31 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.30 21-Sep-2016 guenther

Delete casts to off_t and size_t that are implied by assignments
or prototypes. Ditto for some of the char* and void* casts too.

verified no change to instructions on ILP32 (i386) and LP64 (amd64)
ok natano@ abluhm@ deraadt@ millert@


Revision tags: OPENBSD_6_0_BASE
# 1.29 07-May-2016 guenther

Declare moncontrol(3) APIs in <sys/gmon.h>
Export _gmonparam again.
Make gcrt0.o use an reserved name for _monstartup()

ok millert@


# 1.28 14-Mar-2016 mmcc

(char *)0 -> NULL


# 1.27 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.26 19-Jan-2016 mmcc

replace (void *)0 with NULL


# 1.25 14-Sep-2015 guenther

Wrap moncontrol() so that internal calls go direct and it's a weak symbol


Revision tags: OPENBSD_5_8_BASE
# 1.24 06-May-2015 jsg

fix a fd leak in an error path in code under #ifdef DEBUG


Revision tags: OPENBSD_5_7_BASE
# 1.23 16-Jan-2015 deraadt

Move to the <limits.h> universe.
review by millert, binary checking process with doug, concept with guenther


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.22 12-Feb-2013 mpi

Back out per-CPU kernel profiling, it shouldn't modify a public header
at this moment.


# 1.21 12-Feb-2013 mpi

Unbreak the tree by adding missing defines. Forgot to sync in previous
spotted by todd@.


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.20 20-Nov-2005 millert

Allocate space for profiling data using mmap instead of sbrk.
Tested by myself and pedro@


Revision tags: OPENBSD_3_8_BASE
# 1.19 08-Aug-2005 espie

zap remaining rcsid.

Kill old files that are no longer compiled.

okay theo


# 1.18 21-Apr-2005 deraadt

be more careful about snprintf return value; ok beck cloder


# 1.17 23-Mar-2005 otto

deregister & ansify. ok deraad@ marco@ cloder@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE
# 1.16 25-Jun-2003 deraadt

protos


# 1.15 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.14 24-Nov-2002 cloder

Zero out the reserved fields of struct gmonhdr rather than leaving
stack garbage in them. From FreeBSD.

OK deraadt@


Revision tags: OPENBSD_3_2_BASE
# 1.13 25-May-2002 deraadt

remaining easy snprintf conversions


Revision tags: OPENBSD_3_1_BASE
# 1.12 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 15-Jul-1998 millert

make that 0664 until we find out why umask is not being applied


# 1.10 15-Jul-1998 millert

open gmon.out mode 0644, not 0666


# 1.9 05-Jul-1998 deraadt

use STDERR_FILENO; kleink


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.8 23-Jul-1997 kstailey

tabify + trailing blanks


Revision tags: OPENBSD_2_0_BASE OPENBSD_2_1_BASE
# 1.7 15-Sep-1996 tholo

Remove dead code
Remove unused variables
Silence some warnings
lint(1) is your friend


# 1.6 05-Sep-1996 deraadt

protect getenv, do not oflow, fix unused debug; bitblt and deraadt


# 1.5 19-Aug-1996 tholo

Fix RCS ids
Make sure everything uses {SYS,}LIBC_SCCS properly


# 1.4 18-Jun-1996 deraadt

use p->hashfraction when doing non-time-critical calculations, rather than
using HASHFRACTION directly. in time-critical calculations, if HASHFRACTION
is a power of two, check that p->hashfraction == HASHFRACTION and if so do
the calculation with the compiled-in value so that the compiler can optimize
out (potentially) expensive divisions. if p->hashfraction != HASHFRACTION,
actually do the division. This has the result that on machines with slow
division, the division can be optimized out of the common case, but that
if HASHFRACTION changes from the compiled-in value (for whatever reason),
profiling will still work. Changes suggested by Chris Torek.


# 1.3 25-Mar-1996 tholo

Protect internal mcount symbol from lint(1)
Use __asm, not asm


# 1.2 14-Dec-1995 deraadt

from cgd@netbsd:
kill a gratuitous cast of lowpc to an int
Add support for PROFDIR environment variable


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.31 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.30 21-Sep-2016 guenther

Delete casts to off_t and size_t that are implied by assignments
or prototypes. Ditto for some of the char* and void* casts too.

verified no change to instructions on ILP32 (i386) and LP64 (amd64)
ok natano@ abluhm@ deraadt@ millert@


Revision tags: OPENBSD_6_0_BASE
# 1.29 07-May-2016 guenther

Declare moncontrol(3) APIs in <sys/gmon.h>
Export _gmonparam again.
Make gcrt0.o use an reserved name for _monstartup()

ok millert@


# 1.28 14-Mar-2016 mmcc

(char *)0 -> NULL


# 1.27 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.26 19-Jan-2016 mmcc

replace (void *)0 with NULL


# 1.25 14-Sep-2015 guenther

Wrap moncontrol() so that internal calls go direct and it's a weak symbol


Revision tags: OPENBSD_5_8_BASE
# 1.24 06-May-2015 jsg

fix a fd leak in an error path in code under #ifdef DEBUG


Revision tags: OPENBSD_5_7_BASE
# 1.23 16-Jan-2015 deraadt

Move to the <limits.h> universe.
review by millert, binary checking process with doug, concept with guenther


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.22 12-Feb-2013 mpi

Back out per-CPU kernel profiling, it shouldn't modify a public header
at this moment.


# 1.21 12-Feb-2013 mpi

Unbreak the tree by adding missing defines. Forgot to sync in previous
spotted by todd@.


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.20 20-Nov-2005 millert

Allocate space for profiling data using mmap instead of sbrk.
Tested by myself and pedro@


Revision tags: OPENBSD_3_8_BASE
# 1.19 08-Aug-2005 espie

zap remaining rcsid.

Kill old files that are no longer compiled.

okay theo


# 1.18 21-Apr-2005 deraadt

be more careful about snprintf return value; ok beck cloder


# 1.17 23-Mar-2005 otto

deregister & ansify. ok deraad@ marco@ cloder@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE
# 1.16 25-Jun-2003 deraadt

protos


# 1.15 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.14 24-Nov-2002 cloder

Zero out the reserved fields of struct gmonhdr rather than leaving
stack garbage in them. From FreeBSD.

OK deraadt@


Revision tags: OPENBSD_3_2_BASE
# 1.13 25-May-2002 deraadt

remaining easy snprintf conversions


Revision tags: OPENBSD_3_1_BASE
# 1.12 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 15-Jul-1998 millert

make that 0664 until we find out why umask is not being applied


# 1.10 15-Jul-1998 millert

open gmon.out mode 0644, not 0666


# 1.9 05-Jul-1998 deraadt

use STDERR_FILENO; kleink


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.8 23-Jul-1997 kstailey

tabify + trailing blanks


Revision tags: OPENBSD_2_0_BASE OPENBSD_2_1_BASE
# 1.7 15-Sep-1996 tholo

Remove dead code
Remove unused variables
Silence some warnings
lint(1) is your friend


# 1.6 05-Sep-1996 deraadt

protect getenv, do not oflow, fix unused debug; bitblt and deraadt


# 1.5 19-Aug-1996 tholo

Fix RCS ids
Make sure everything uses {SYS,}LIBC_SCCS properly


# 1.4 18-Jun-1996 deraadt

use p->hashfraction when doing non-time-critical calculations, rather than
using HASHFRACTION directly. in time-critical calculations, if HASHFRACTION
is a power of two, check that p->hashfraction == HASHFRACTION and if so do
the calculation with the compiled-in value so that the compiler can optimize
out (potentially) expensive divisions. if p->hashfraction != HASHFRACTION,
actually do the division. This has the result that on machines with slow
division, the division can be optimized out of the common case, but that
if HASHFRACTION changes from the compiled-in value (for whatever reason),
profiling will still work. Changes suggested by Chris Torek.


# 1.3 25-Mar-1996 tholo

Protect internal mcount symbol from lint(1)
Use __asm, not asm


# 1.2 14-Dec-1995 deraadt

from cgd@netbsd:
kill a gratuitous cast of lowpc to an int
Add support for PROFDIR environment variable


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.30 21-Sep-2016 guenther

Delete casts to off_t and size_t that are implied by assignments
or prototypes. Ditto for some of the char* and void* casts too.

verified no change to instructions on ILP32 (i386) and LP64 (amd64)
ok natano@ abluhm@ deraadt@ millert@


Revision tags: OPENBSD_6_0_BASE
# 1.29 07-May-2016 guenther

Declare moncontrol(3) APIs in <sys/gmon.h>
Export _gmonparam again.
Make gcrt0.o use an reserved name for _monstartup()

ok millert@


# 1.28 14-Mar-2016 mmcc

(char *)0 -> NULL


# 1.27 13-Mar-2016 guenther

environ and __progname are not declared in a public header; declare them
in libc's hidden/stdlib.h instead of in each .c file that needs one

ok deraadt@ gsoares@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.26 19-Jan-2016 mmcc

replace (void *)0 with NULL


# 1.25 14-Sep-2015 guenther

Wrap moncontrol() so that internal calls go direct and it's a weak symbol


Revision tags: OPENBSD_5_8_BASE
# 1.24 06-May-2015 jsg

fix a fd leak in an error path in code under #ifdef DEBUG


Revision tags: OPENBSD_5_7_BASE
# 1.23 16-Jan-2015 deraadt

Move to the <limits.h> universe.
review by millert, binary checking process with doug, concept with guenther


Revision tags: OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.22 12-Feb-2013 mpi

Back out per-CPU kernel profiling, it shouldn't modify a public header
at this moment.


# 1.21 12-Feb-2013 mpi

Unbreak the tree by adding missing defines. Forgot to sync in previous
spotted by todd@.


Revision tags: OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.20 20-Nov-2005 millert

Allocate space for profiling data using mmap instead of sbrk.
Tested by myself and pedro@


Revision tags: OPENBSD_3_8_BASE
# 1.19 08-Aug-2005 espie

zap remaining rcsid.

Kill old files that are no longer compiled.

okay theo


# 1.18 21-Apr-2005 deraadt

be more careful about snprintf return value; ok beck cloder


# 1.17 23-Mar-2005 otto

deregister & ansify. ok deraad@ marco@ cloder@


Revision tags: OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE
# 1.16 25-Jun-2003 deraadt

protos


# 1.15 02-Jun-2003 millert

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999. Proofed by myself and Theo.


Revision tags: OPENBSD_3_3_BASE
# 1.14 24-Nov-2002 cloder

Zero out the reserved fields of struct gmonhdr rather than leaving
stack garbage in them. From FreeBSD.

OK deraadt@


Revision tags: OPENBSD_3_2_BASE
# 1.13 25-May-2002 deraadt

remaining easy snprintf conversions


Revision tags: OPENBSD_3_1_BASE
# 1.12 16-Feb-2002 millert

Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_BASE OPENBSD_2_7_BASE OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 15-Jul-1998 millert

make that 0664 until we find out why umask is not being applied


# 1.10 15-Jul-1998 millert

open gmon.out mode 0644, not 0666


# 1.9 05-Jul-1998 deraadt

use STDERR_FILENO; kleink


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.8 23-Jul-1997 kstailey

tabify + trailing blanks


Revision tags: OPENBSD_2_0_BASE OPENBSD_2_1_BASE
# 1.7 15-Sep-1996 tholo

Remove dead code
Remove unused variables
Silence some warnings
lint(1) is your friend


# 1.6 05-Sep-1996 deraadt

protect getenv, do not oflow, fix unused debug; bitblt and deraadt


# 1.5 19-Aug-1996 tholo

Fix RCS ids
Make sure everything uses {SYS,}LIBC_SCCS properly


# 1.4 18-Jun-1996 deraadt

use p->hashfraction when doing non-time-critical calculations, rather than
using HASHFRACTION directly. in time-critical calculations, if HASHFRACTION
is a power of two, check that p->hashfraction == HASHFRACTION and if so do
the calculation with the compiled-in value so that the compiler can optimize
out (potentially) expensive divisions. if p->hashfraction != HASHFRACTION,
actually do the division. This has the result that on machines with slow
division, the division can be optimized out of the common case, but that
if HASHFRACTION changes from the compiled-in value (for whatever reason),
profiling will still work. Changes suggested by Chris Torek.


# 1.3 25-Mar-1996 tholo

Protect internal mcount symbol from lint(1)
Use __asm, not asm


# 1.2 14-Dec-1995 deraadt

from cgd@netbsd:
kill a gratuitous cast of lowpc to an int
Add support for PROFDIR environment variable


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision