summaryrefslogtreecommitdiffstats
path: root/sys/libkern
Commit message (Collapse)AuthorAgeFilesLines
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-291-9/+9
| | | | | | 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.
* Zap c_index() and c_rindex(). Bruce prefers these to implicitly convertpeter1999-12-102-39/+20
| | | | | a const into a non-const as they do in libc. I feel that defeating the type checking like that quite evil, but that's the way it is.
* Eliminate compiler warning.archie1999-12-014-4/+4
|
* In the extremely miniscule chance that read_random returns <= 0, don't trydan1999-11-291-2/+6
| | | | and use that return code as a modulus (panics are bad, mmmkay?)
* Address the concerns of the ``randomness'' of the initial PRNG. Now, wedan1999-11-281-14/+32
| | | | | | | use bits from /dev/random to stir the S-box. Also add an internal counter to keep the S-box stirred on a regular basis. Reviewed by: msmith
* Introduce OpenBSD-like Random PIDs. Controlled by a sysctl knobdan1999-11-281-0/+89
| | | | | | | | (kern.randompid), which is currently defaulted off. Use ARC4 (RC4) for our random number generation, which will not get me executed for violating crypto laws; a Good Thing(tm). Reviewed and Approved by: bde, imp
* Change the prototype of the strto* routines to make the secondarchie1999-11-244-8/+8
| | | | | | | | | | | parameter a char ** instead of a const char **. This make these kernel routines consistent with the corresponding libc userland routines. Which is actually 'correct' is debatable, but consistency and following the spec was deemed more important in this case. Reviewed by (in concept): phk, bde
* Tempt fate and stop index from converting a const char * into a char *.peter1999-11-212-18/+42
| | | | | | | I've made a seperate version (c_index() etc) that use const/const, but I'm not sure it's worth it considering there is one file in the tree that uses index on const strings (kern_linker.c) and it's easily adjusted to scan the strings directly (and is perhaps more efficient that way).
* Move strto{u}[ql]() into their own libkern files.phk1999-11-034-0/+487
| | | | Urged by: bde
* $Id$ -> $FreeBSD$peter1999-08-2836-36/+36
|
* 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.
OpenPOWER on IntegriCloud