summaryrefslogtreecommitdiffstats
path: root/lib/libc/gmon
Commit message (Collapse)AuthorAgeFilesLines
* Remove _THREAD_SAFE and make libc thread-safe by default bydeischen2001-01-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | adding (weak definitions to) stubs for some of the pthread functions. If the threads library is linked in, the real pthread functions will pulled in. Use the following convention for system calls wrapped by the threads library: __sys_foo - actual system call _foo - weak definition to __sys_foo foo - weak definition to __sys_foo Change all libc uses of system calls wrapped by the threads library from foo to _foo. In order to define the prototypes for _foo(), we introduce namespace.h and un-namespace.h (suggested by bde). All files that need to reference these system calls, should include namespace.h before any standard includes, then include un-namespace.h after the standard includes and before any local includes. <db.h> is an exception and shouldn't be included in between namespace.h and un-namespace.h namespace.h will define foo to _foo, and un-namespace.h will undefine foo. Try to eliminate some of the recursive calls to MT-safe functions in libc/stdio in preparation for adding a mutex to FILE. We have recursive mutexes, but would like to avoid using them if possible. Remove uneeded includes of <errno.h> from a few files. Add $FreeBSD$ to a few files in order to pass commitprep. Approved by: -arch
* Prepare for mdoc(7)NG.ru2000-12-291-2/+3
|
* Introduce ".Lb" macro to libc manpages.phantom2000-04-211-0/+2
| | | | More libraries manpages updates following.
* Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),jasone2000-01-271-9/+9
| | | | | | | | | | | | | | | | | just use _foo() <-- foo(). In the case of a libpthread that doesn't do call conversion (such as linuxthreads and our upcoming libpthread), this is adequate. In the case of libc_r, we still need three names, which are now _thread_sys_foo() <-- _foo() <-- foo(). Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(), nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo(). Remove all internal libc usage of: creat(), pause(), sleep(), system(), tcdrain(), wait(), and waitpid(). Make thread cancellation fully POSIX-compliant. Suggested by: deischen
* Add three-tier symbol naming in support of POSIX thread cancellationjasone2000-01-121-9/+11
| | | | | | points. For library functions, the pattern is __sleep() <-- _libc_sleep() <-- sleep(). The arrows represent weak aliases. For system calls, the pattern is _read() <-- _libc_read() <-- read().
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-291-10/+10
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* $Id$ -> $FreeBSD$peter1999-08-283-3/+3
|
* Enable gmon/mcount on alpha.simokawa1999-07-162-13/+3
|
* Add $Id$, to make it simpler for members of the translation teams tonik1999-07-121-0/+1
| | | | | | | | | | | | | | | | | track. The $Id$ line is normally at the bottom of the main comment block in the man page, separated from the rest of the manpage by an empty comment, like so; .\" $Id$ .\" If the immediately preceding comment is a @(#) format ID marker than the the $Id$ will line up underneath it with no intervening blank lines. Otherwise, an additional blank line is inserted. Approved by: bde
* Change a test for NETBSD_SYSCALLS to __alpha__. We're not ready tojb1998-09-051-2/+2
| | | | do profiling on alpha yet.
* Change the profile data file name from gmon.out to progname.gmonjb1998-09-052-7/+14
| | | | where progname comes from __progname in crt0 or crt1.
* Changed to the C9x draft spelling of the (unsigned) integral typebde1998-07-141-12/+12
| | | | | | | | suitable for holding object pointers (ptrint_t -> uintptr_t). Added corresponding signed type (intptr_t). Changed/added corresponding non-C9x types for function pointers to match. Don't use nonstandard types to implement these types, and don't comment on them in <machine/types.h>.
* Oops, fptrint_t still needs to be declared in <machine/profile.h> in thebde1998-07-101-9/+1
| | | | | !KERNEL case. The kludge to get it declared in libc/gmon/mcount.c wasn't sufficient because fptrint_t is used in <sys/gmon.h>.
* Added a kernel-only typedef (ptrint_t) giving an integral type that isbde1998-07-101-2/+11
| | | | | | | | | | least unsuitable for holding an object pointer. This should have been used to fix warnings about casts between pointers and ints on alphas. Moved corresponding existing general typedef (fptrint_t) for function pointers from the i386 <machine/profile.h> to a kernel-only typedef in <machine/types.h>. Kludged libc/gmon/mcount.c so that it can still see this typedef.
* These files are very specific to FreeBSD kernels, so silently compilejb1998-03-092-1/+6
| | | | no code when building a library with __NETBSD_SYSCALLS defined.
* Format the MLINKS statement the same as in most other libc Makefile.inc's.bde1997-12-191-2/+3
|
* Removed the subdirectory paths from the definitions of MAN[1-9]. Theybde1997-10-151-3/+2
| | | | | were a workaround for limitations in bsd.man.mk that were fixed about 2 years ago.
* Changed all paths to be relative to src/lib instead of src/lib/libcjb1997-05-031-2/+7
| | | | | | | | | | so that all these makefiles can be used to build libc_r too. Added .if ${LIB} == "c" tests to restrict man page builds to libc to avoid needlessly building them with libc_r too. Split libc Makefile into Makefile and Makefile.inc to allow the libc_r Makefile to include Makefile.inc too.
* Fixed #include and/or prototype bugs in synopsis.bde1997-04-131-0/+3
|
* Revert $FreeBSD$ to $Id$peter1997-02-221-1/+1
|
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-1/+1
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Cleaned up interrupt masking by declaring the state variable in abde1996-08-281-6/+5
| | | | | | | machine-dependent macro and passing it to all machine-dependent macros. Eliminated the state variable for the GUPROF case.
* Add support to enable libc to be compiled in ELF format. (#ifdef __ELF__)peter1996-05-051-0/+4
| | | | | | | | | | | In a nutshell, this macroizes the local/global symbol scoping rules that are different in a.out and ELF. It also makes the i386 assembler stubs conform to i386 PIC calling conventions - the a.out ld.so didn't object, but the ELF one needs it as it implements PIC jumps via PLT's as well as calls. The a.out rtld only worked because it was accidently snooping the grandparent calling function's return address off the stack.. This also affects the libc_r code a little, because of cpp macro nesting.
* Use PAGE_SIZE instead of NBPGphk1996-05-021-2/+2
|
* Xref clocks(7).joerg1996-04-051-1/+2
|
* Added $Id$.bde1995-12-301-0/+4
|
* Implemented non-statistical kernel profiling. This is based onbde1995-12-291-8/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | looking at a high resolution clock for each of the following events: function call, function return, interrupt entry, interrupt exit, and interesting branches. The differences between the times of these events are added at appropriate places in a ordinary histogram (as if very fast statistical profiling sampled the pc at those places) so that ordinary gprof can be used to analyze the times. gmon.h: Histogram counters need to be 4 bytes for microsecond resolutions. They will need to be larger for the 586 clock. The comments were vax-centric and wrong even on vaxes. Does anyone disagree? gprof4.c: The standard gprof should support counters of all integral sizes and the size of the counter should be in the gmon header. This hack will do until then. (Use gprof4 -u to examine the results of non-statistical profiling.) config/*: Non-statistical profiling is configured with `config -pp'. `config -p' still gives ordinary profiling. kgmon/*: Non-statistical profiling is enabled with `kgmon -B'. `kgmon -b' still enables ordinary profiling (and distables non-statistical profiling) if non-statistical profiling is configured.
* Add moncontrol.3 -> monstartup.3 link here.phk1995-10-151-0/+1
|
* Remove trailing whitespace.rgrimes1995-05-302-4/+4
|
* Added support for kernel profiling to mcount.cpaul1994-09-151-0/+4
|
* First crack at making libc work with the new make macros. It compiles onwollman1994-08-051-1/+1
| | | | | my machine, and a simple static (genassym) and shared (sysctl) executable both work. Still to be done: RPCand YP merge.
* BSD 4.4 Lite Lib Sourcesrgrimes1994-05-274-0/+544
OpenPOWER on IntegriCloud