summaryrefslogtreecommitdiffstats
path: root/sys/libkern
Commit message (Collapse)AuthorAgeFilesLines
* Fix instances of macros with improperly parenthasized arguments.alfred2002-11-091-1/+1
| | | | Verified by: md5
* Slight overhaul of arc4random() and friends.phk2002-10-111-22/+27
| | | | | | | | | | | | | | | | | | | One bug fixed: Use getmicrouptime() to trigger reseeds so that we cannot be tricked by a clock being stepped backwards. Express parameters in natural units and with natural names. Don't use struct timeval more than we need to. Various stylistic and readability polishing. Introduce arc4rand(void *ptr, u_int len, int reseed) function which returns a stream of pseudo-random bytes, observing the automatic reseed criteria as well as allowing forced reseeds. Rewrite arc4random() in terms of arc4rand(). Sponsored by: DARPA & NAI Labs.
* Hook up strsep(3) to libkern following a repo-copy by Peter. This willrwatson2002-10-101-2/+2
| | | | | | allow us to avoid nasty by-hand string parsing stuff in a number of places in the kernel, reducing the risk of unexpected consequences for kernel correctness.
* Allow for multiple #includes of this file.phk2002-10-081-0/+4
|
* Import the libc fnmatch() into the kernel. This will be used by,dd2002-10-081-20/+9
| | | | | | | | | | | among other things, the DEVFS rule subsystem to match nodes against a path pattern supplied by the user. fnmatch.c was repo-copied from src/lib/libc/gen/fnmatch.c, and the only changes to it are those necessary to make it compile in the kernel. The relevant parts of fnmatch.h were imported into libkern.h. Approved by: -arch
* Fix a bunch of s/int */size_t */.mux2002-10-061-2/+4
|
* Use sys/libkern.h not /usr/include/string.hpeter2002-09-062-2/+2
|
* Include sys/libkern.h for the kernel prototypes of these libkern functionsjhb2002-08-228-8/+8
| | | | | | | instead of including the userland string.h header. Prompted by: breakage with old string.h from recent machine/types.h fix Approved by: peter (in principle)
* Convert GNU variadic macros to the ISO 9X variety.markm2002-07-151-1/+3
|
* For some reason this didn't get added in my previous commit.phk2002-05-291-0/+107
|
* Remove bogus include of <machine/ansi.h>.mike2002-04-111-1/+0
|
* Remove 'register' keyword.obrien2002-03-213-11/+11
|
* Remove __P.alfred2002-03-204-14/+14
|
* DBA update: used the wrong of several NAI DBAs.rwatson2002-03-071-1/+1
|
* Add the following functions/macros to support byte order conversions andtmm2002-02-2712-169/+33
| | | | | | | | | | | | | | | | | | | | | | | | device drivers for bus system with other endinesses than the CPU (using interfaces compatible to NetBSD): - bwap16() and bswap32(). These have optimized implementations on some architectures; for those that don't, there exist generic implementations. - macros to convert from a certain byte order to host byte order and vice versa, using a naming scheme like le16toh(), htole16(). These are implemented using the bswap functions. - stream bus space access functions, which do not perform a byte order conversion (while the normal access functions would if the bus endianess differs from the CPU endianess). htons(), htonl(), ntohs() and ntohl() are implemented using the new functions above for kernel usage. None of the above interfaces is currently exported to user land. Make use of the new functions in a few places where local implementations of the same functionality existed. Reviewed by: mike, bde Tested on alpha by: mike
* o Move NTOHL() and associated macros into <sys/param.h>. These aremike2002-02-1812-16/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | deprecated in favor of the POSIX-defined lowercase variants. o Change all occurrences of NTOHL() and associated marcros in the source tree to use the lowercase function variants. o Add missing license bits to sparc64's <machine/endian.h>. Approved by: jake o Clean up <machine/endian.h> files. o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>. o Remove prototypes for non-existent bswapXX() functions. o Include <machine/endian.h> in <arpa/inet.h> to define the POSIX-required ntohl() family of functions. o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>, and <sys/param.h>. o Prepend underscores to the ntohl() family to help deal with complexities associated with having MD (asm and inline) versions, and having to prevent exposure of these functions in other headers that happen to make use of endian-specific defines. o Create weak aliases to the canonical function name to help deal with third-party software forgetting to include an appropriate header. o Remove some now unneeded pollution from <sys/types.h>. o Add missing <arpa/inet.h> includes in userland. Tested on: alpha, i386 Reviewed by: bde, jake, tmm
* Add a 'strvalid()' call to libkern. Given a character pointer, andrwatson2002-02-181-0/+55
| | | | | | | | | buffer length, determine if the pointer is to a valid string. Currently, the only check is whether a '\0' appears in the buffer. This is useful when pulling in a structure from userland that may contain one or more strings, and validity testing must be performed on elements of the structure. When copying normal string arguments, copyinstr() is expected to be used.
* * Remove __P and convert to ANSI prototypes.obrien2002-02-011-1/+3
| | | | | * Remove 'register'. (some functions had 7+ register functions...) * Fix SCM ID's.
* rcsid[]->__FBSDIDobrien2001-11-073-20/+11
|
* Garbage call!phk2001-11-0511-810/+0
| | | | | These files have been obsoleted by compiler technology (such as it is for gcc) for quite some time.
* Implement these using mux1 and extr.u. I'll update the userland versionsdfr2001-10-062-14/+7
| | | | similarly. Actually, they should be inline on gcc.
* Fix a warning in bsearch(). Like index() etc, it de-qualifies itspeter2001-09-101-1/+1
| | | | | arguments. Caveat Emptor. However, the only two consumer of it (cam) deals with it correctly and preserves the constness.
* Fixed some typos, verboseness and misformatting in comments.bde2001-08-301-10/+8
|
* Minor improvements to arc4random():silby2001-08-301-4/+29
| | | | | | | | | | | - Decrease reseeding interval from every 64 to every 16384 runs to reduce entropy usage. - Add time based reseeding. (Every 5 minutes.) - Throw away the first 256 words of output as suggested in "Weaknesses in the Key Scheduling Algorithm of RC4." Reviewed by: Mark Murray MFC After: jkh says ok
* We do not have UPAGES following the tail end of the user VM space anymore.peter2001-08-081-1/+1
|
* Sync to OpenBSD (update comment and minor style change).kris2001-07-241-3/+4
| | | | | Obtained from: OpenBSD MFC after: 1 week
* A set of changes to reduce the number of include files the kerneljulian2001-07-082-3/+5
| | | | | | takes from /usr/include. I cannot check them on alpha.. (will try beast) Briefly looked at by: Warner Losh <imp@harmony.village.org>
* Make the rcsid and FreeBSD IDs more sane in the wcs* and wmem* files.obrien2001-05-243-2/+14
| | | | Do the same for the non-wcs*/wmem* files while I'm here.
* Add function prototypes and base module for kernel side iconv library.bp2001-04-093-0/+671
| | | | | | | | | Add simple "xlat" converter which performs 8to8 table based conversion. Unicode converter will be added in the near future. Reviewed by: silence on arch@ Files placement reviewed by: bde Obtained from: smbfs
* Rewrite of the CAM error recovery code.ken2001-03-271-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the major changes include: - The SCSI error handling portion of cam_periph_error() has been broken out into a number of subfunctions to better modularize the code that handles the hierarchy of SCSI errors. As a result, the code is now much easier to read. - String handling and error printing has been significantly revamped. We now use sbufs to do string formatting instead of using printfs (for the kernel) and snprintf/strncat (for userland) as before. There is a new catchall error printing routine, cam_error_print() and its string-based counterpart, cam_error_string() that allow the kernel and userland applications to pass in a CCB and have errors printed out properly, whether or not they're SCSI errors. Among other things, this helped eliminate a fair amount of duplicate code in camcontrol. We now print out more information than before, including the CAM status and SCSI status and the error recovery action taken to remedy the problem. - sbufs are now available in userland, via libsbuf. This change was necessary since most of the error printing code is shared between libcam and the kernel. - A new transfer settings interface is included in this checkin. This code is #ifdef'ed out, and is primarily intended to aid discussion with HBA driver authors on the final form the interface should take. There is example code in the ahc(4) driver that implements the HBA driver side of the new interface. The new transfer settings code won't be enabled until we're ready to switch all HBA drivers over to the new interface. src/Makefile.inc1, lib/Makefile: Add libsbuf. It must be built before libcam, since libcam uses sbuf routines. libcam/Makefile: libcam now depends on libsbuf. libsbuf/Makefile: Add a makefile for libsbuf. This pulls in the sbuf sources from sys/kern. bsd.libnames.mk: Add LIBSBUF. camcontrol/Makefile: Add -lsbuf. Since camcontrol is statically linked, we can't depend on the dynamic linker to pull in libsbuf. camcontrol.c: Use cam_error_print() instead of checking for CAM_SCSI_STATUS_ERROR on every failed CCB. sbuf.9: Change the prototypes for sbuf_cat() and sbuf_cpy() so that the source string is now a const char *. This is more in line wth the standard system string functions, and helps eliminate warnings when dealing with a const source buffer. Fix a typo. cam.c: Add description strings for the various CAM error status values, as well as routines to look up those strings. Add new cam_error_string() and cam_error_print() routines for userland and the kernel. cam.h: Add a new CAM flag, CAM_RETRY_SELTO. Add enumerated types for the various options available with cam_error_print() and cam_error_string(). cam_ccb.h: Add new transfer negotiation structures/types. Change inq_len in the ccb_getdev structure to be "reserved". This field has never been filled in, and will be removed when we next bump the CAM version. cam_debug.h: Fix typo. cam_periph.c: Modularize cam_periph_error(). The SCSI error handling part of cam_periph_error() is now in camperiphscsistatuserror() and camperiphscsisenseerror(). In cam_periph_lock(), increase the reference count on the periph while we wait for our lock attempt to succeed so that the periph won't go away while we're sleeping. cam_xpt.c: Add new transfer negotiation code. (ifdefed out) Add a new function, xpt_path_string(). This is a string/sbuf analog to xpt_print_path(). scsi_all.c: Revamp string handing and error printing code. We now use sbufs for much of the string formatting code. More of that code is shared between userland the kernel. scsi_all.h: Get rid of SS_TURSTART, it wasn't terribly useful in the first place. Add a new error action, SS_REQSENSE. (Send a request sense and then retry the command.) This is useful when the controller hasn't performed autosense for some reason. Change the default actions around a bit. scsi_cd.c, scsi_da.c, scsi_pt.c, scsi_ses.c: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Selection timeouts shouldn't be covered by a sense flag. scsi_pass.[ch]: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Get rid of the last vestiges of a read/write interface. libkern/bsearch.c, sys/libkern.h, conf/files: Add bsearch.c, which is needed for some of the new table lookup routines. aic7xxx_freebsd.c: Define AHC_NEW_TRAN_SETTINGS if CAM_NEW_TRAN_CODE is defined. sbuf.h, subr_sbuf.c: Add the appropriate #ifdefs so sbufs can compile and run in userland. Change sbuf_printf() to use vsnprintf() instead of kvprintf(), which is only available in the kernel. Change the source string for sbuf_cpy() and sbuf_cat() to be a const char *. Add __BEGIN_DECLS and __END_DECLS around function prototypes since they're now exported to userland. kdump/mkioctls: Include stdio.h before cam.h since cam.h now includes a function with a FILE * argument. Submitted by: gibbs (mostly) Reviewed by: jdp, marcel (libsbuf makefile changes) Reviewed by: des (sbuf changes) Reviewed by: ken
* RIP <machine/lock.h>.markm2001-02-111-1/+0
| | | | | | | Some things needed bits of <i386/include/lock.h> - cy.c now has its own (only) copy of the COM_(UN)LOCK() macros, and IMASK_(UN)LOCK() has been moved to <i386/include/apic.h> (AKA <machine/apic.h>). Reviewed by: jhb
* - Reverse the order of two loop invariant to ensure strlcat() does notjedgar2001-01-171-3/+6
| | | | | | | | | | attempt to read memory when siz is 0 - Clarify comments referring to strlcat() usage PR: 24278, 24295 Submitted by: Tony Finch <dot@dotat.at> Richard Kettlewell <rjk@greenend.org.uk> Reviewed by: -audit
* Convert all instances of:benno2001-01-1212-12/+12
| | | | | | | | | | | | | | | #include "quad.h" to: #include <libkern/quad.h> as the former breaks under a kernel build. This change had already been performed on the files that were used in other kernel builds, however the PowerPC kernel build seems to require some that weren't being used. Reviewed by: obrien, peter
* Add __ucmpdi2 prototype to quelch a warning.phk2000-12-071-0/+1
|
* Recouple arc4random(9) to the entropy device. This works whether themarkm2000-12-021-2/+4
| | | | | | | entropy device is loaded or not. If the entropy device is NOT loaded, the the quality of perturbations supplied by this will suffer.
* add threadsafe version of inet_ntoa (inet_ntoa_r takes a buffer to fill)alfred2000-11-251-0/+14
| | | | this is used by some debugging functions
* Fix compilation of profiled kernels by including <machine/lock.h>phk2000-10-141-0/+1
|
* Next round of fixes to the ia64 code. This includes simulated clock anddfr2000-10-0414-0/+1334
| | | | | | | disk drivers along with a load of fixes to context switching, fork handling and a load of other stuff I can't remember now. This takes us as far as start_init() before it dies. I guess now I will have to finish off the VM system and syscall handling :-).
* Back out previous revision now that sys/random.h is properly fixed.jhb2000-09-111-2/+0
|
* Add #include's of sys/proc.h and sys/param.h to silence a warning.jhb2000-09-111-0/+2
|
* Comment out unavailable call. This needs to be revisited when the entropymarkm2000-06-251-3/+4
| | | | | device is complete. Reviewed by: dfr
* Add $FreeBSD$peter2000-05-018-1/+9
|
* 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).
OpenPOWER on IntegriCloud