summaryrefslogtreecommitdiffstats
path: root/sys/libkern
Commit message (Collapse)AuthorAgeFilesLines
* Use the latest version of these files from OpenBSD.imp1999-08-102-17/+22
| | | | | | | | | | 1) Safty change from casper dik was added to OpenBSD's sources since I grabbed them. milltert@openbsd.org 2) Split up strlcpy to improve efficiency of the common case. milltert@openbsd.org 3) Cleanup of cross references for man page. {alex,aaron}@openbsd.org Pointed out by: deraadt@openbsd.org
* Import strl{cat,cpy} from OpenBSD.imp1999-08-102-0/+134
| | | | Obtained from: OpenBSD
* Add a fast version of bcmp which compares longwords at a time.dfr1999-06-191-1/+93
| | | | Submitted by: Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
* Backed out the previous backout. We may as well have a version of ucmpdi2.cbde1999-06-021-2/+2
| | | | that actually compiles, and I use it for i386's with 64 bit longs.
* Nuke ucmpdi2.c from i386/libkern to serve as a reminder that switchgibbs1999-05-142-4/+3
| | | | | | statements on 64bit values generate poor code. Requested by: bde
* Add ucmpdi2.c to i386 libkern build. Its required for some quadgibbs1999-05-142-3/+4
| | | | manipulation in the aic7xxx driver.
* Fix warnings in preparation for adding -Wall -Wcast-qual to thedillon1999-01-282-4/+4
| | | | kernel compile
* - Fix modulo bug.nate1998-12-011-2/+2
| | | | Reminded by: bde
* Converted rcsid to $Id$ again. There shouldn't be any rcsids in the kernel.bde1998-08-171-8/+2
|
* 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>.
* #include sys/libkern.h instead of stdlib.h.phk1998-06-301-2/+2
| | | | | | PR: 7105 Reviewed by: phk Submitted by: Robert Watson <robert+freebsd@cyrus.watson.org>
* Add initial support for the FreeBSD/alpha kernel. This is very much adfr1998-06-106-0/+228
| | | | | | | | | | work in progress and has never booted a real machine. Initial development and testing was done using SimOS (see http://simos.stanford.edu for details). On the SimOS simulator, this port successfully reaches single-user mode and has been tested with loads as high as one copy of /bin/ls :-). Obtained from: partly from NetBSD/alpha
* Support compiling with `gcc -ansi'.bde1998-04-151-5/+5
|
* Make our v_usecount vnode reference count work identically to thedyson1998-01-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | original BSD code. The association between the vnode and the vm_object no longer includes reference counts. The major difference is that vm_object's are no longer freed gratuitiously from the vnode, and so once an object is created for the vnode, it will last as long as the vnode does. When a vnode object reference count is incremented, then the underlying vnode reference count is incremented also. The two "objects" are now more intimately related, and so the interactions are now much less complex. When vnodes are now normally placed onto the free queue with an object still attached. The rundown of the object happens at vnode rundown time, and happens with exactly the same filesystem semantics of the original VFS code. There is absolutely no need for vnode_pager_uncache and other travesties like that anymore. A side-effect of these changes is that SMP locking should be much simpler, the I/O copyin/copyout optimizations work, NFS should be more ponderable, and further work on layered filesystems should be less frustrating, because of the totally coherent management of the vnode objects and vnodes. Please be careful with your system while running this code, but I would greatly appreciate feedback as soon a reasonably possible.
* Rename some local variables to avoid shadowing other local variables.phk1997-11-071-4/+4
| | | | Found by: -Wshadow
* Removed unused #includes.bde1997-08-025-10/+5
|
* Style optimization in newly added POSIX range []] conformance, redoache1997-06-071-6/+6
| | | | 'for' loop as do...while and remove variable unneded now
* Add missing FNM_PERIOD check for '[' rangeache1997-06-061-4/+10
| | | | | Don't treat !^ as first characters in the range, just as negate sign [/] never match if FNM_PATHNAME
* 1) Now conforms POSIX.2 2.8.3.2 requirements about []] patternache1997-06-061-11/+35
| | | | 2) Treat unclosed [ range in pattern as regular characters (bash style)
* Fix a bug that caused some false mismatches when both FNM_PATHNAMEjdp1997-04-291-1/+2
| | | | | | and FNM_LEADING_DIR were specified and the pattern ended with "*". Example: pattern="src/usr.sbin/w*", string="src/usr.sbin/watch/watch.8,v". This should match, but did not.
* Eliminate some function calls when locale not usedache1997-04-041-6/+4
|
* Speedup in case locale not usedache1997-04-041-2/+6
|
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-2236-36/+36
| | | | ready for it yet.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-1436-36/+36
| | | | | | | | 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.
* collate_range_cmp -> __collate_range_cmpache1996-10-311-3/+4
|
* Unremoved used #include of <sys/systm.h> for the !GUPROF case.bde1996-10-251-1/+4
|
* GNU-style changes:ache1996-10-231-10/+14
| | | | | | | 1) Rename FNM_ICASE to FNM_CASEFOLD 2) Add FNM_LEADING_DIR Add proper (unsigned char) casts to tolower(). Use 'char' function argument for proper sign extension
* add flag FNM_ICASE for case insensitve searchwosch1996-10-201-1/+20
| | | | Reviewed by: ache
* Improved non-statistical (GUPROF) profiling:bde1996-10-171-72/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - use a more accurate and more efficient method of compensating for overheads. The old method counted too much time against leaf functions. - normally use the Pentium timestamp counter if available. On Pentiums, the times are now accurate to within a couple of cpu clock cycles per function call in the (unlikely) event that there are no cache misses in or caused by the profiling code. - optionally use an arbitrary Pentium event counter if available. - optionally regress to using the i8254 counter. - scaled the i8254 counter by a factor of 128. Now the i8254 counters overflow slightly faster than the TSC counters for a 150MHz Pentium :-) (after about 16 seconds). This is to avoid fractional overheads. files.i386: permon.c temporarily has to be classified as a profiling-routine because a couple of functions in it may be called from profiling code. options.i386: - I586_CTR_GUPROF is currently unused (oops). - I586_PMC_GUPROF should be something like 0x70000 to enable (but not use unless prof_machdep.c is changed) support for Pentium event counters. 7 is a control mode and the counter number 0 is somewhere in the 0000 bits (see perfmon.h for the encoding). profile.h: - added declarations. - cleaned up separation of user mode declarations. prof_machdep.c: Mostly clock-select changes. The default clock can be changed by editing kmem. There should be a sysctl for this. subr_prof.c: - added copyright. - calibrate overheads for the new method. - documented new method. - fixed races and and machine dependencies in start/stop code. mcount.c: Use the new overhead compensation method. gmon.h: - changed GPROF4 counter type from unsigned to int. Oops, this should be machine-dependent and/or int32_t. - reorganized overhead counters. Submitted by: Pentium event counter changes mostly by wollman
* add simple srandom() and prototypepeter1996-09-231-2/+10
|
* Updated #includes to 4.4Lite style.bde1996-09-105-10/+10
|
* Fixed the easy cases of const poisoning in the kernel. Cosmetic.bde1996-08-313-8/+9
|
* Don't depend in the kernel on the gcc feature of doing arithmetic onbde1996-08-311-10/+10
| | | | pointers of type `void *'. Warn about this in future.
* Removed sccsids and rcsids and added Id$ to save space like everythingbde1996-08-283-17/+5
| | | | else in libkern.
* 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.
* Convert to newly aded collate compare functionache1996-08-121-3/+3
|
* Use collate for alpha character rangesache1996-08-121-1/+4
|
* General -Wall warning cleanup, part I.jkh1996-07-121-1/+1
| | | | Submitted-By: Kent Vander Velden <graphix@iastate.edu>
* Added index() which will be used shortly in some fixes to the ibcs2nate1996-06-071-0/+53
| | | | emulation code.
* removed:phk1996-05-021-2/+2
| | | | | | | | | CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei() ptei() kvtopte() ptetov() ispt() ptetoav() &c &c new: NPDEPG Major macro cleanup.
* Don't include <sys/types.h> when it isn't used.bde1996-04-191-2/+1
| | | | | This commit covers most of the ANSI library functions. Many others only need <sys/types.h> because they use u_xxx.
* Don't depend on <sys/types.h> including <sys/cdefs.h>.bde1996-04-191-1/+2
|
* Extend to handle all radix < 37phk1996-01-241-1/+2
|
* Moved BCD declarations to the correct header (libkern.h).bde1996-01-161-25/+25
| | | | | | | | Fixed BCD declarations. They didn't match their definitions... libkern.h, bcd.c: KNFised. `indent' worked 99% perfectly on bcd.c. It worked 99% _imperfectly_ on subr_prf.c.
* My wife is busy making me a new conical hat, so you don't need tophk1996-01-151-2/+2
| | | | | send any to me this time. Commited an old copy of this files where the tables were swapped. Duh!.
* Add the bcd <-> bin and hex -> ascii tables.phk1996-01-151-0/+34
|
* recording cvs-1.6 file deathpeter1995-12-302-193/+0
|
* Copied mcount.c from the library again. #include'ing it via a relativebde1995-12-301-3/+325
| | | | path to a possibly-nonexistent place didn't work well enough. Sigh.
* Implemented non-statistical kernel profiling. This is based onbde1995-12-291-179/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Removed almost all traces of libkern.a. The objects that were inbde1995-12-261-37/+0
| | | | | | | libkern.a are now specified by listing their source files in files.${MACHINE}. The list is machine-dependent to save space. All the necessary object for each machine must be linked into the kernel in case an lkm wants one.
OpenPOWER on IntegriCloud