Commit Graph

904 Commits

Author SHA1 Message Date
skrll f80f065ff5 This file needs opt_multiprocessor.h early so we pick up the right
definition from cpu.h, etc.

XXX should revisit the _STANDALONE vs _KERNEL split
2011-01-31 12:10:58 +00:00
matt ecfd85d839 Fix KDASSERTMSG defintions for !DEBUG 2011-01-26 01:02:46 +00:00
matt 084c578c30 Add KDASSERTMSG (KDASSERT already exists). 2011-01-24 22:53:07 +00:00
skrll ed569699ed Fix build. 2011-01-24 15:01:30 +00:00
skrll 024e5c66df Fix MULTIPROCESSOR curlwp/curcpu handling... missed in previous commit. 2011-01-22 10:58:44 +00:00
matt 51db1c5cf3 Kill _NOREGNAMES. Everything should be using %rX now. If it doesn't it
soon will.
2011-01-17 08:23:53 +00:00
matt 19cb1fa295 Don't define _NOREGNAMES since all of libkern is now compiled with it. 2011-01-17 07:07:36 +00:00
matt 156ba6dbc5 Add -D_NOREGNAMES 2011-01-16 03:22:19 +00:00
pooka f3c7386990 Rename jump label to something a little more negative. No, I'm
not doing it for cosmetic value or out of angst.  See, PIC_PROLOGUE
on i386 uses the "1" label internally.  Now, everything would be
fine and dandy for the first 551245 calls to random.  After that
p+q is negative and the jump is taken.  However, it is taken into
the middle of PIC_PROLOGUE instead of where upon superficial
examination we assumed we are jumping.  This causes wrong(tm) things
to happen and "ret" triggers a jump into hyperspace.

(no, I did not see that coming)
2010-09-07 20:35:50 +00:00
pooka 2b801a94d6 fix typo 2010-05-11 21:50:35 +00:00
rmind 84b7918250 Fix KASSERTMSG() to be consistent with KASSERT() logic, not inverted.
Hi matt@!
2010-04-25 15:39:41 +00:00
chs 04aa4da3b0 fix copy{in,out}{,str}() to return the error returned by uvm_fault().
fixes PR 41813.
2010-03-20 23:31:27 +00:00
uwe 73fb9af349 Add memset to libkern on vax, moving existing memset.S to src/common.
While kernel source code is supposed to use <machine/macros.h> via
<sys/param.h> and pick an inline asm version from there, gcc itself
can generate direct calls to memset() for structure initialization, so
the symbol must be provided.

Fixes INSTALL kernel, for which -Os caused gcc to use memset() call to
initialize a struct in uvm_fault_internal().
2010-03-15 11:46:49 +00:00
pgoyette d03b2461a3 Remove kern_assert.c - it's not needed here cuz it's already pulled in
by sys/lib/libkern/Makefile.libkern

OK pooka@
2010-01-20 18:13:40 +00:00
pooka 793cda8e13 __assert.c -> kern_assert.c
(I don't fully understand why __assert.c is needed here.  maybe it
can be removed, but I don't have time to do a full set of mips builds
tonight)
2010-01-20 03:36:26 +00:00
pooka 654415b2b7 Get rid of last "easy" kernel symbols starting with __:
__assert -> kern_assert
__sigtimedwait1 -> sigtimedwait1
__wdstart -> wdstart1

The rest are MD and/or shared with userspace, so they will require
a little more involvement than what is available for this quick
"ride the 5.99.24 bump" action.
2010-01-19 22:28:30 +00:00
joerg 5591cac167 Keep arc4_i and arc4_j synchronised after a rekeying. This prevents
accidentally ending up in a short ARC4 cycle.
2010-01-18 20:54:54 +00:00
joerg 56da4fa7b5 Move AMD64's bswap64 implementation from libc to src/common and share it
with the kernel.
2010-01-14 02:09:46 +00:00
uebayasi e3ac1d9304 Build fix for the mips64 merge:
- If memset2.c is in ${SRCS}, exclude conflicting memset.c.
- If MD byte_swap_8.* is in ${SRCS}, exclude conflicting bswap64.c.
2009-12-14 12:18:14 +00:00
matt e110dba586 Merge from matt-nb5-mips64 2009-12-14 00:47:10 +00:00
skrll af4728306c Rename L_ADDR to L_PCB 2009-12-10 07:57:02 +00:00
skrll b7b0345e3d Remove U_PCB as requested by rmind.
Same code before and after.
2009-12-01 09:06:16 +00:00
uebayasi 619d7bed3d Redo the previous inverted logic. Sort alphabetically. 2009-11-21 13:37:18 +00:00
uebayasi dd7316895f Don't build quad support code on 64-bit platforms. 2009-11-21 13:30:23 +00:00
pooka 5e1c61c660 Don't build spcopy for rumpkern. Fixes hp700 build failure pointed
out by nick.

XXX: spcopy should be in the main kernel instead of libkern in any case
2009-09-22 09:57:16 +00:00
dsl eaf64f1b6c Move that majority of the 'SRCS+= foo.c' into the main Makefile.libkern.
Any .S files added by the arch/*/Makefile.inc cause the .c file to
be excluded.
Specific exclusions added using NO_SRCS to match previous files.
At least sparc, sparc64, i386, amd64 and vax GENERIC still build.
(There is a fubar with the naming of the byte-swap files ...)
2009-08-14 19:23:53 +00:00
skrll 89ec5e3d9c Put back random.S. Hi dsl! 2009-08-12 22:49:37 +00:00
dsl e46010532d Remove some .c files accidentally left on the .S lines 2009-08-12 21:24:57 +00:00
dsl cfac8834d7 Split the lines that add .c to SRCS from those that add .S
No changes (apart from the order) intended.
2009-08-12 21:20:40 +00:00
dsl 6f5236b423 Use stuff from libc/Makefile to auto-remove .c files if a .S has been added.
Use it to dispose of tne .c files that were already only conditionally
added.
2009-08-12 21:18:42 +00:00
joerg 0578c2ad0f Move popcount et al to src/common and add popcount32/popcount64.
Requested by rmind@. MD should now override popcount32/popcount64 and
provide the aliases as fitting.
2009-07-21 14:55:32 +00:00
kiyohara b922a542ab Fix little bit, and add a few files.
current status is to see following thread.
    http://mail-index.netbsd.org/port-ia64/2009/06/18/msg000102.html
2009-07-20 11:23:04 +00:00
he b1946a6b32 Back out the addition of memset.c to the vax libkern, and instead do
as tsutsui@ suggested, and include <sys/param.h> in sha2.c instead.
On the vax, this causes <machine/macros.h> to be included, and it contains
that machine's memset() macro+inline.
2009-06-18 15:22:24 +00:00
he 78443215c7 Add memset.c, so that the references from sha2.c can be satisfied, and
so that the kernel and puffs applications can link again.
2009-06-18 07:56:04 +00:00
pgoyette 28469fc250 Implement snprintb_m(3) to provide multi-line bit/bit-field decode.
Discussed on tech-kern.
2009-05-13 02:50:31 +00:00
skrll 8516d55745 Merge nick-hppapmap.
This is a port of the OpenBSD pmap and trap handling code to get us

        - Performance boost on some/all machines.
        - Well on the way to PA2.0 (in 32bit mode) support. Several
          machines probe hardware, but fail sometime after interrupts
          are enabled.

Other things changed / fixed on the branch are

        - update autoconf to use the OpenBSD code.
        - com @ dino is very close to being supported.
        - HPPA_REDZONE has been replaced with a working redzone which
          is enabled with DIAGNOSTIC.
        - UPAGES has been halved in size.
        - power(4) from OpenBSD to fix a few bugs.
        - updated list of modules from OpenBSD.
	- initial ports of uturn(4), astro(4) and elroy(4).
	- update some copyrights (remove advertising clause, etc.)

Thanks to mjf for some of the above, testing and listening.
2009-04-30 07:01:26 +00:00
he c05f1c0f90 Make the function declaration the same for the big-endian case as
for the little-endian case, and consistent with the libkern.h
declaration.  Fixes build problem for at least hp700 and evbbarm-eb.
2009-03-26 22:18:14 +00:00
tls 3559a90485 Fix compilation error on 64-bit platforms. 2009-03-25 19:21:39 +00:00
tls a34cd18b76 Fix build problems caused by crc32 addition to libkern. Also, this makes
the i386 bootblocks about 2K smaller than they were before we monkeyed
with crc32 at all.
2009-03-25 18:41:06 +00:00
darran 36ea3668b9 Fixes PR kern/41069 and PR kern/41070.
Extends the Opencrypto API to allow the destination buffer size to be
specified when its not the same size as the input buffer (i.e. for
operations like compress and decompress).
The crypto_op and crypt_n_op structures gain a u_int dst_len field.
The session_op structure gains a comp_alg field to specify a compression
algorithm.
Moved four ioctls to new ids; CIOCGSESSION, CIOCNGSESSION,  CIOCCRYPT,
and CIOCNCRYPTM.
Added four backward compatible ioctls; OCIOCGSESSION, OCIOCNGSESSION,
OCIOCCRYPT, and OCIOCNCRYPTM.

Backward compatibility is maintained in ocryptodev.h and ocryptodev.c which
implement the original ioctls and set dst_len and comp_alg to 0.

Adds user-space access to compression features.

Adds software gzip support (CRYPTO_GZIP_COMP).

Adds the fast version of crc32 from zlib to libkern. This should be generally
useful and provide a place to start normalizing the various crc32 routines
in the kernel.  The crc32 routine is used in this patch to support GZIP.

With input and support from tls@NetBSD.org.
2009-03-25 01:26:12 +00:00
tsutsui 9c6c3c68dd Don't use gcc's __builtin_*() functions #if defined(_STANDALONE)
because they could be larger than __OPTIMIZE_SIZE__'ed libsa ones and
__builtin_memcpy() on vax rejects NULL (i.e. copying from/to address 0x0).

No particular comments on tech-toolchain.

Tested on alpha, arc, cobalt, hp300, i386, landisk, macppc, news68k, sgimips,
sparc, sparc64, sun3, and vax (on simh).
2009-03-23 13:41:00 +00:00
tsutsui d0b9e6c924 - remove bcmp(9), bcopy(9), and bzero(9) from libkern since <sys/systm.h> has
macro which replace them with mem*() functions in #ifdef _KERNEL as noted
  in man pages
- move declarations of bcopy(3) and bzero(3) into <lib/libsa/stand.h>
  since they are still in libsa for some MD standalone sources
  (I guess all bcmp(3) in standalone sources have been replaced with memcmp(3)
   but they should be replaced with memcmp() anyway)
2009-03-18 12:25:06 +00:00
cegger 248cdce283 ansify function definitions 2009-03-15 21:33:51 +00:00
dsl 82357f6d42 ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
2009-03-14 21:04:01 +00:00
dsl 454af1c0e8 Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
2009-03-14 15:35:58 +00:00
dsl 02cdf4d2c8 Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
2009-03-14 14:45:51 +00:00
he fddc3457b2 Change the use of formally undocumented features, which have now been
made to fail.  Specifically, change
.ifdef(SYMBOL) -> .ifdef SYMBOL or .if defined(SYMBOL),
and corresponding for .ifndef.

Also correct one error in lib/libm/Makefile (.ifdef (${MKCOMPLEX} != "no")?!?).
2009-01-18 20:42:11 +00:00
uwe 533bbdff7e These copy of gcc millicode routines is now included in librump (that
sucks in all libkern sources), so mark them ".hidden".  I'm not sure
if this is the best course of action (dropping millicode from librump
might be a better idea), but it's the quickest fix to get sh3 builds
going again for now.
2009-01-07 22:15:18 +00:00
pooka fed3c1df66 Fix PIC version, it was missing one dereference. Thanks to spz
for access to m68k hardware for testing.
2009-01-06 01:24:56 +00:00
pooka cbd549e79b Fix previous. I have no idea what crack I was on when I "tested" them. 2009-01-05 01:16:09 +00:00
pooka 59f8fc8f6e Split variables out of Makefile into Makefile.libkern so that we
can easily just .include it for the proper SRCS etc. definitions
in case we're interested in the files but not in building an actual
libkern.{a,o}.  for librump
2009-01-04 18:00:55 +00:00
pooka c5889d575e Support PIC for inclusion in librump. (m68k untested) 2009-01-04 17:10:46 +00:00
christos 9a5d3f2817 replace bitmask_snprintf(9) with snprintb(3) 2008-12-16 22:35:21 +00:00
matt 0ad7281825 Add new ptree (Patricia / RADIX tree) implementation to NetBSD. 2008-11-20 23:50:08 +00:00
ad c6555ead19 Our qsort() is inappropriate for kernel use because it makes recursive
calls. Replace it with a kheapsort() function in kernel. Pointed out
by tron@.
2008-11-16 16:15:58 +00:00
ad e5c4df967a Make qsort() available in libkern. 2008-11-16 15:01:26 +00:00
matt 74b13f5d12 Use RET/RETc as appropriate 2008-10-15 18:07:46 +00:00
matt 02ed53f8f6 Need to be __clz[sd]i2 2008-10-14 17:23:33 +00:00
matt 01a00ce83a Add a _clzsi2 for armv4 platforms. 2008-10-14 03:16:20 +00:00
gmcgarry 0de5da9678 Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h
preprocessor macros.
2008-09-08 23:36:53 +00:00
matt 41f74018fd Add KASSERTMSG(e, msg) for umass.c. XXX directly calls panic. 2008-07-02 15:25:08 +00:00
matt 67b10687dc Add CTASSERT (compile time assert) from FreeBSD.
Causes sources to fail to compile:
<file>:<line>: error: size of array '__ctassert<line>' is negative
2008-07-02 14:39:20 +00:00
matt 48717a981d Move rb.c from sys/lib/libkern to common so it can be in both libc and libkern. 2008-06-30 19:03:59 +00:00
matt da597625e8 Add some significant improvements to the red-black tree implementation.
Shrink size of rb_node by 25% (merge parent/father pointer and flags).
2008-06-30 16:36:18 +00:00
matt d982b23b25 Nuke MOVED support. Move rb_parent out of rb_nodes and make it it's own
member.
2008-06-25 04:56:08 +00:00
christos e4992af055 Make rb use masks instead of bitfields, because it is more portable (bitfields
to unsigned long are not portable), and produces tighter code. Tested on
amd64. approved by gimpy.
2008-06-25 03:06:25 +00:00
christos e9ad0762c7 Include cpuset. 2008-06-15 20:34:18 +00:00
tron a36c431c01 Use proper C99 syntax to statically initialize a "rb_node" structure to
fix the build.
2008-06-06 12:29:59 +00:00
ad 13c7f6ff40 Move lib/libkern/rb.h to sys/rb.h, so it can be used by kernel header
files.
2008-06-04 14:31:15 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
garbled 1ad3697abd Back out the ppc assembler changes for memcpy/memmove/memcmp on evbppc.
It breaks the explora because the cpu (403) cannot deal with unaligned
accesses.  Reported by Juergen Hannken-Illjes.
2008-04-18 05:34:04 +00:00
christos efe07f9c02 fix again 2008-03-25 23:24:38 +00:00
christos 55feb339a9 fix bcopy again 2008-03-25 23:23:13 +00:00
christos 8ac6bd68d8 fix bcopy prototype 2008-03-25 23:21:04 +00:00
christos 3d8daf0799 add a prototype for bcopy. 2008-03-25 23:19:51 +00:00
he 0db6a6b023 When compiling for _STANDALONE, omit a bunch of headers which aren't really
needed and which trigger build problems.

(These two files should probably be unified and put under common/...)
2008-03-18 20:11:43 +00:00
matt c2b9622034 Don't need to that particular in mtprng_random(). Use 2 values instead of 8. 2008-02-17 22:49:11 +00:00
matt ab1d549cb1 Improve my version of mtprng_random. Reshuffle things. Add an compatible
version of init_by_array.
2008-02-02 01:13:04 +00:00
simonb e99e83279b Check _STANDALONE as well as _KERNEL when choosing headers to include.
Also pull in <lib/libkern/libkern.h> so we get prototypes and a struct
mtprng_state declaration.
2008-01-31 08:23:13 +00:00
simonb 4cbecce6c5 Have mtprng_random() call mtprng_rawrandom() to get more
random data instead of calling itself.  Much nicer to the
stack...
2008-01-31 03:37:13 +00:00
simonb ba30aadce1 Check against correct constant in a KASSERT(). 2008-01-31 03:34:04 +00:00
matt 3056c4f69a Add Mersenne Twister prototypes and state struct to libkern.h
Cleanup a comment.  s/RLEN/MTPRNG_RLEN/g    s/POS1/MTPRNG_POS1/g
Remove unneeded test code.
2008-01-31 02:36:09 +00:00
matt cd27642585 Add Mersenne Twister PRNG implementation. This is a new implementation. 2008-01-31 02:09:54 +00:00
simonb d8de5b102b Remove support for NetBSD/pc532. 2008-01-09 11:25:58 +00:00
jmcneill e38d794d0c libkern bits for usermode port. 2007-12-29 14:39:33 +00:00
perry b6a2ef7569 Convert many of the uses of __attribute__ to equivalent
__packed, __unused and __dead macros from cdefs.h
2007-12-25 18:33:32 +00:00
plunky b83f9a6a6d remove insque/remque from libkern, they are no longer used 2007-11-22 22:56:16 +00:00
matt 1d4dffbc51 Make rb_tree_insert_node return true/false whether the node was inserted
or not.
2007-11-21 16:42:51 +00:00
yamt c77d808475 build rb.c. 2007-11-20 13:49:01 +00:00
yamt 3acf687ede rename
RB_LEFT
	RB_RIGHT
	RB_OTHER
to
	RB_DIR_LEFT
	RB_DIR_RIGHT
	RB_DIR_OTHER
so that it can coexist with sys/tree.h.
2007-11-20 12:32:55 +00:00
yamt 636f153f4d fix compilation in the case of _KERNEL && DIAGNOSTIC && !RBDEBUG. 2007-11-20 08:30:05 +00:00
pooka 018bb97124 Rename __assert() to __kernassert() so that it doesn't collide
with the libc version.  They take different arguments.
2007-09-24 14:19:03 +00:00
ad 7dcf597b04 Do the panicstr check only if _KERNEL. 2007-08-03 13:06:00 +00:00
ad 480f8d26c5 Disable kernel assertions if panicstr != NULL. 2007-07-29 11:46:02 +00:00
dsl cb40f24fa8 include sys/cdefs.h 2007-07-19 22:00:04 +00:00
ad 3f8edbdfd7 G/C dead code. 2007-06-10 00:52:29 +00:00
matt 75f8d3f9a5 Include byte_swap_[24].c for kernels compiled with -O0 2007-04-13 22:12:04 +00:00
matt e3a731cab5 Enable builtin_ffs for vax 2007-04-09 17:39:37 +00:00
scw 5764a76889 Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:35:21 +00:00
uwe eaa25d5966 Provide __movmemSI12_i4 (gcc4) a.k.a. __movstrSI12_i4 (gcc3) that gcc
emits for sh4 to copy 12 bytes at certain optimization levels.
Discovered by compiling landisk kernel with -Os.

Use gcc3 naming ("movstr") to match the rest of the "movstr" files.
2007-03-14 22:22:53 +00:00
christos 53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
thorpej 712239e366 Replace the Mach-derived boolean_t type with the C99 bool type. A
future commit will replace use of TRUE and FALSE with true and false.
2007-02-21 22:59:35 +00:00
ragge ad9091c30f Repair copyright that has been broken since -94.
Gently requested by Otto Moerbeek.
2007-01-14 13:26:18 +00:00
dyoung e3361bb265 Add strsep(3) to libkern.
To avoid code duplication, move strsep.c to the kernel/userland
common files.

Soon I will commit source-address selection (options IPSELSRC).
It will use strsep(3).
2006-11-13 03:26:43 +00:00
christos 9573aa20e8 - call the initialization routine for arc4randbytes.
- knf (add continues)
2006-11-05 14:13:56 +00:00
christos 31a62606ea Merge kernel and userland rmd160 and sha2 implementation.
XXX: We still install rmd160.h and sha2.h in /usr/include/crypto, unlike
the other hash functions which get installed in /usr/include for compatibility.
2006-10-27 21:20:48 +00:00
thorpej 82fd1ebbaa - Move strtoll.c and strtoull.c from libc/stdlib to common/libc/stdlib.
- Add strtoll.c and strtoull.c to libkern.
2006-10-08 03:14:55 +00:00
simonb a4c94c5ab7 Remove stale copy. Pointed out by uwe@ ages ago. 2006-09-28 13:12:59 +00:00
matt efc67dee86 Add a way for a user to know what nodes have changed when a node has been
inserted or removed.  Refactor node insertion to not require rebalancing
all the time or a loop if it does.  In rb_tree_swap_prune_and_rebalance,
don't call rb_tree_reparent_nodes, instead do the work ourselves (since
we will eventually undo half of the work of rb_tree_reparent_nodes).
2006-09-10 23:57:31 +00:00
matt 9bed3293b9 If __STDC__ and GNU C >= 3.0, define C99's bool, true, false 2006-09-10 23:49:21 +00:00
matt d9bb545dc5 Shrink rb_tree to 4 pointers (2 if RBSMALL is defined). Move compare
functions to a separate rb_tree_ops structure.  Make every int explicit
in being signed or unsigned.  Use RBDEBUG to enable debug code.  Move
rbt_count to RBSTATS.  Use RBSMALL to not keep track of min/max.
2006-09-09 06:52:18 +00:00
matt 75de26ab17 Add rb_tree_find_node_{geq,leq}. Add stats. Make TAILQ DEBUG only.
Keep track of tree's min/max nodes for easier iteration.  Improve comments.
Move functions around to improve locality.
2006-09-09 05:55:51 +00:00
matt 958730091e Fix and simplify node removal. Add lots of assertions and comments. 2006-09-08 04:07:15 +00:00
thorpej f68bacf5a3 Use static at the function decl if the prototype also uses static. 2006-09-06 20:01:57 +00:00
scw 24f4ed9338 The list of registers which sdivsi3 can clobber has changed in gcc4.
Make the necessary changes.
2006-09-05 22:07:08 +00:00
matt 3aa5e506b7 Rewrite of red-black tree code. 2006-09-05 04:35:45 +00:00
scw 456695f0eb The kernel is built with "-mdiv=call", so add a __sdivsi3_1 alias
for __sdivsi3.
2006-09-04 20:44:48 +00:00
matt 497415f67e Make this compile in _KERNEL || _STANDALONE. Make gcc4 happy. 2006-09-02 20:46:50 +00:00
dyoung 8cd106d3d2 Per discussion on tech-kern and tech-userlevel, move the bit-twiddling
macros, __BIT, __BITS, SHIFTIN, SHIFTOUT, and __arraycount() from
lib/libkern/libkern.h to sys/cdefs.h.  Add a __-prefix to SHIFTIN
and SHIFTOUT, and add a manual page for the bit-twiddling macros,
bits(3).

Make the __BIT and __BITS macros "widthless," as best I can, by
changing their type to uintmax_t from uint32_t.  XXX The manual
page lags this change by a bit.

Define __PRIxBIT and __PRIxBITS printf(3) format strings.
2006-08-31 19:24:37 +00:00
tsutsui a3bdccd23a Add src/common/include to include header search path so that
standalone programs can be built without installed ${DESTDIR} tree.
Okayed by christos, and should close PR 33431.
2006-08-28 13:34:18 +00:00
matt 5e87012f78 Add __NULL_STMT which is do { } while (/* CONSTCOND */ 0) 2006-08-25 19:07:44 +00:00
rillig b102417f76 Fixed the gcc warning that "static" should come before "const". 2006-07-16 06:06:20 +00:00
matt 53ea8158b4 With VAX & GCC4, use builtin memset and memmove. 2006-07-08 00:24:26 +00:00
kardel de4337ab21 merge FreeBSD timecounters from branch simonb-timecounters
- struct timeval time is gone
  time.tv_sec -> time_second
- struct timeval mono_time is gone
  mono_time.tv_sec -> time_uptime
- access to time via
	{get,}{micro,nano,bin}time()
	get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
  Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
  NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
2006-06-07 22:33:33 +00:00
uwe 497c1ccc27 Provide __movmem* aliases to __movstr* functions.
Gcc4 uses movmem, older versions use movstr.
2006-05-22 21:34:08 +00:00
uwe 9001bc2fd8 G/c #ifdef PIC we inherited from the userland. 2006-05-22 20:56:44 +00:00
thorpej b69c14413b Support for building proplib in the kernel. 2006-04-27 20:43:09 +00:00
uwe e983955bb3 libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common.  Move it to sys/lib/libkern/arch/sh3.
2006-04-22 22:48:53 +00:00
thorpej 7d3d66c90e Move strtoumax.c from libc/stdlib to common/libc/stdlib and include it
in libkern.  Required for new code coming soon.
2006-04-22 15:33:33 +00:00
christos c76b868cf4 Imply DIAGNOSTIC if __COVERITY__. 2006-04-15 01:09:34 +00:00
christos 147a6ae8fb If __COVERITY__ is defined, turn on KASSERT and _DIAGASSERT. 2006-04-14 18:24:56 +00:00
nonaka 5918a2e057 Always _LOCORE is defined for standalone program. 2006-04-14 09:23:01 +00:00
cherry 39ba8074f1 Fixed CVS version headers 2006-04-07 14:27:33 +00:00
cherry ba7cbe760f Initial import of arch/ia64 sources.
These sources are ported from FreeBSD/ia64 code.
See individual source files for credits.
In addition, code from NetBSD/alpha NetBSD/sparc64,
NetBSD/i386 and NetBSD/amd64 were used as templates,
along with my own additions.
2006-04-07 13:57:43 +00:00
tsutsui b3e724899c Remove unused file. Pointed out by uwe. 2006-03-30 13:44:51 +00:00
martin 972ca1ead8 Remove an unused, obsolete copy (pointed out by Valeriy E. Ushakov). 2006-03-30 08:07:47 +00:00
uwe 4dff387338 G/c this stale copy of SYS.h. It has not been updated since 1999. It
has not been used since an unused copy of setjmp.S has been removed
from here in 2002 (i386 removed its own in 1999).
2006-03-30 02:13:10 +00:00
dyoung 321a3122bb Per discussion on source-changes@, add __arraycount(array) for
counting the number of elements in a static array, using the idiom,
sizeof(array)/sizeof(array[0]).

XXX This may move in the future, but this is a safe place to put
XXX it for use in the kernel.
2006-03-27 21:18:33 +00:00
kleink 31930d4de5 Provide BCD<->binary conversion in libkern and turn <dev/clock_subr.h>'s
FROMBCD()/TOBCD() macros into wrappers around it, resulting in both
smaller code footprint and elimination of possible issues due to
multiple evaluation of macro arguments.

Suggested by Simon Burge and Anders Gavare on tech-kern.
2006-03-11 15:40:07 +00:00
dyoung cafe884d2c Change macro names to avoid collisions:
BIT -> __BIT
BITS -> __BITS
2006-03-08 08:26:50 +00:00
dyoung f66403a698 Move my bit-twiddling macros to libkern.h from my drivers, where
I had duplicated them.  Improve the macros' names.  Simplify their
implementation.

A brief description of each macro is below.

        BIT(n): Return a bitmask with bit m set, where the least
                significant bit is bit 0.

        BITS(m, n): Return a bitmask with bits m through n, inclusive,
                    set.  It does not matter whether m>n or m<=n.
                    The least significant bit is bit 0.

        A "bitfield" is a span of consecutive bits defined by a
        bitmask, where 1s select the bits in the bitfield.  SHIFTIN,
        SHIFTOUT, and SHIFTOUT_MASK help read and write bitfields
        from device registers.

        SHIFTIN(v, mask): Left-shift bits `v' into the bitfield
                          defined by `mask', and return them.  No
                          side-effects.

        SHIFTOUT(v, mask): Extract and return the bitfield selected
                           by `mask' from `v', right-shifting the
                           bits so that the rightmost selected bit
                           is at bit 0.  No side-effects.

        SHIFTOUT_MASK(mask): Right-shift the bits in `mask' so that
                             the rightmost non-zero bit is at bit
                             0.  This is useful for finding the
                             greatest unsigned value that a bitfield
                             can hold.  No side-effects.  Note that
                             SHIFTOUT_MASK(m) = SHIFTOUT(m, m).

Examples:

/*
 * Register definitions taken from the RFMD RF3000 manual.
 */
#define RF3000_GAINCTL          0x11            /* TX variable gain control */
#define         RF3000_GAINCTL_TXVGC_MASK       BITS(7, 2)
#define         RF3000_GAINCTL_SCRAMBLER        BIT(1)

/*
 * Shift the transmit power into the transmit-power field of the
 * gain-control register and write it to the baseband processor.
 */
atw_rf3000_write(sc, RF3000_GAINCTL,
    SHIFTIN(txpower, RF3000_GAINCTL_TXVGC_MASK));


/*
 * Register definitions taken from the ADMtek ADM8211 manual.
 *
 */
#define ATW_RXSTAT_OWN          BIT(31)         /* 1: NIC may fill descriptor */
/* ... */
#define ATW_RXSTAT_DA1          BIT(17)         /* DA bit 1, admin'd address */
#define ATW_RXSTAT_DA0          BIT(16)         /* DA bit 0, group address */
#define ATW_RXSTAT_RXDR_MASK    BITS(15,12)     /* RX data rate */
#define ATW_RXSTAT_FL_MASK      BITS(11,0)      /* RX frame length, last
                                                 * descriptor only
                                                 */

/* Extract the frame length from the Rx descriptor's
 * status field.
 */
len = SHIFTOUT(rxstat, ATW_RXSTAT_FL_MASK);
2006-03-08 00:24:06 +00:00
perry fbae48b901 Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
2006-02-16 20:17:12 +00:00
uwe 0fc70b4831 Add bswap16.c and bswap32.c to SRCS. We need fallback versions for
kernels compiled without optimization (and thus without inlining of
bswap16 and bswap32)
2006-02-04 23:33:37 +00:00
uwe e7b43156c5 Truncate the argument to 16 bit with extu.w 2006-02-04 22:24:26 +00:00
yamt 43308ea339 fix build of bzero.
XXX is it better to remove it as i386?
2005-12-27 08:49:35 +00:00
perry 4a2c58419f __asm__ -> __asm 2005-12-24 23:29:06 +00:00
perry 0f0296d88a Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:45:08 +00:00
christos f852d21f71 Add the state setting functions for the new random function, but use the
small one by default, so that we can switch in the future if we want to.
2005-12-21 14:24:44 +00:00
christos 153f1146ed Use common sources with userland. 2005-12-20 19:35:26 +00:00
christos 6fcf9fd532 Provide _DIAGASSERT and NULL, so that we don't have to do it in *all* the
libkern files.
Also the new inet_addr, provides inet_aton; advertise it.
2005-12-20 19:35:12 +00:00
christos 95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
chs 8b17730eac put mcount.c in the normal object list, so that "make depend" works.
use a gcc attribute to prevent it from being instrumented.
2005-10-02 15:34:17 +00:00
uebayasi e6760038b8 Redo previous; don't add mcount.po to POBJS when MKPROFILE=no. 2005-08-25 08:55:42 +00:00
uebayasi bab482f18d Create mcount.po only when MKPROFILE != no. 2005-08-25 08:34:50 +00:00
simonb bdc552eaee KNF nit. 2005-07-27 12:41:09 +00:00
tron b1be36cfb8 Don't use a static buffer in SHA1Transform() because it might cause
various problems including sporadic IPSec authentification failures
if this code is used by multiple instances in parallel.
2005-06-30 13:08:46 +00:00
scw 9931d6382c Re-sync with libc version of memcpy_arm.S, which has deals correctly
with big-endian ARM (non-XScale) systems.
2005-06-02 08:20:53 +00:00
christos f69f7eea28 add missing const 2005-05-31 00:57:07 +00:00
reed b8643619e6 Use ${TOOL_M4} instead of "m4". (I only tested this fix
for sparc but not sparc64 or alpha yet.)

Noticed problem when building NetBSD/sparc from a Linux/i386 host
that didn't have "m4".
2005-04-22 00:22:55 +00:00
dsl 4f6d146592 KNF 2005-03-12 16:39:41 +00:00
perry 477853c351 nuke trailing whitespace 2005-02-26 22:58:54 +00:00
uwe 36ae53aba9 MBR_PTYPE_APPLE_UFS is now spelled with an underscore. 2004-11-12 19:34:43 +00:00
sekiya 77aa58c5b4 Use 64-bit-clean addition/subtraction opcodes for pointer arithmetic iff
_LP64 is defined.
2004-09-29 04:45:26 +00:00
enami 41122731c8 Redo part of rev. 1.10. 2004-09-17 21:54:28 +00:00
yamt 64308e90f3 arc4random: fix a bug introduced by rev.1.7.
actually generate four bytes random value, rather than
leaving a byte always zero.
2004-09-08 04:06:15 +00:00
christos 5d1f319c56 add __UNCONST 2004-07-01 19:04:14 +00:00
christos 3e36df0496 avoid string const cast-aways. 2004-06-30 13:45:54 +00:00
christos db25564166 remove useless typedef and casts 2004-06-30 13:45:21 +00:00
yamt f502110937 add '.L' prefixes to local labels. 2004-04-15 09:20:29 +00:00
keihan b8702f530b netbsd.org -> NetBSD.org
This was the last commit of this kind to src/sys, which is now totally
"NetBSD.org clean".  Thanks for the patiance, and sorry for all the commits.
2003-12-04 13:57:30 +00:00
keihan 8476e6755a NetBSD.ORG -> NetBSD.org
Now all "NetBSD.ORG" are gone from src/sys.
2003-12-04 12:42:54 +00:00
uwe b12f3576c6 Use assembler version of bswap64. 2003-11-14 00:39:17 +00:00
uwe be72e49c47 bswap64 written in assembler. 2003-11-14 00:38:17 +00:00
uwe 8fdd163272 Eliminate bzero. 2003-11-13 23:55:20 +00:00
uwe 19d60bc09e Compile identity ntoh*/hton* only for big endian case. 2003-11-09 22:04:00 +00:00
scw 6bf28caf3e bzero is no longer used in the kernel. 2003-11-09 16:12:57 +00:00
martin c9f72038da bzero is gone from the kernel 2003-11-09 11:25:18 +00:00
uwe 680e83de11 Get rid of bcopy relics. Minimize diffs against the libc version. 2003-11-09 01:03:56 +00:00
uwe f28afa6ac5 Nuke bcopy. Move the code to memmove.S (which it is) make memmove the
primary entry point and comment out the bcopy entry point.

Kernels before and after the change are identical.
2003-11-08 23:59:12 +00:00
lukem 7ce35daccc Add '.SUFFIXES: .m4' here, now that <sys.mk> doesn't provide it anymore.
It appears that .PATH.m4:  needs it.
Should fix problem noted in private mail by Markus W Kilbinger.
2003-11-08 14:45:02 +00:00
jdolecek 3050a50d90 don't need bcmp() and bzero() 2003-11-08 07:40:37 +00:00
jdolecek 7cc19c4f27 no need for bcmp.c 2003-11-08 07:24:46 +00:00
dsl 7dbd0e094b Make 'dependall' generate dependencies in these libraries. 2003-11-07 23:34:28 +00:00
junyoung dfb82ca484 rindex() shouldn't be used in the kernel. Use strrchr() instead. 2003-11-05 05:46:32 +00:00
jdolecek c12a055f27 g/c index.c and rindex.c (not used anywhere) 2003-11-01 13:17:01 +00:00
mycroft ab8cc2146b Don't try to build random.S on 68010. 2003-10-29 23:32:15 +00:00
mycroft 363f05d417 Refresh from libc to get 68010 version. 2003-10-29 23:19:11 +00:00
junyoung 592280de7a index() shouldn't be used in the kernel. Use strchr() instead. 2003-10-27 07:28:15 +00:00
junyoung 21110867b5 Goodbye to bcmp.S, bcopy.S, and bzero.S. They are defined as macros in
sys/systm.h.
2003-10-26 14:39:35 +00:00
junyoung 6fe2633df0 Remove bcmp.S and bzero.S from list. They were doing nothing but wasting
kernel bits for a long time (2 years?).
2003-10-26 14:37:52 +00:00
scw 2ffebceb85 Duh, fix the align-to-32-bits code. 2003-10-23 20:46:40 +00:00
tsutsui fa49899d30 Add bswap64.c, required by options FFS_EI. 2003-10-21 14:49:00 +00:00
scw 5e7e19ec12 Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).

memcmp()  - Compare 32-bits at a time if possible. Special-case 6-byte
            comparisons, for the benefit of the network stack.

memset()  - More loop unrolling, plus use of 'strd' instruction,
            results in > 100% speedup on Xscale.

memcpy()  - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
            special-cases for very common length/alignment combinations
            (at least in the kernel). Benchmarks show ~50% improvment on
            Xscale.

memmove() - Big-endian support. Use fast memcpy(), above, if the regions
            don't overlap. Otherwise unchanged.
2003-10-13 19:59:24 +00:00
chs 06332c88ef update for new gas syntax. from Jochen Kunz. 2003-10-10 15:07:43 +00:00
ichiro 266021fa1e big endian support
thanks to smi@sm.sony.co.jp
2003-10-09 08:54:54 +00:00
lukem 1ea85577bc sort entries, and add a couple 2003-10-08 04:13:13 +00:00
itojun cc76a8982b fix build for bootloaders (no /usr/include/sys/kernel.h any more). 2003-10-02 10:39:27 +00:00
martin 1f68fd5144 Same treatment as libc/hash/sha1.c: ifdef the sparc64 compiler bug
workaround for old gcc only.
2003-09-23 20:00:43 +00:00
chs 0454ead77f the asm version of strlcpy() was buggy, just use the C version. 2003-09-11 05:04:33 +00:00
chs 6e0aaa640d update for LWPs, and some lite cleanup. 2003-08-31 01:52:43 +00:00
matt 4a33fdce54 Actually the right instruction to fill a half-word.
From Juergen Hannken-Illjes hannken at eis dot cs dot tu-bs dot de
2003-08-27 17:37:43 +00:00
itojun 1403d9d920 KNF 2003-08-20 13:32:33 +00:00
ragge a9e5513c6b Kerner library files for pdp10. 2003-08-19 10:59:26 +00:00
ragge bc830a1980 Do not use the builtins for the mem* functions on vax, the compiler gets
confused with the static inline functions vax uses.
2003-08-13 11:34:24 +00:00
ragge f69577d50c Include the C versions of the string instructions.
Replace blkcpy() with a version that can handle overlapping data areas.
2003-08-13 11:32:23 +00:00
matt f70606090a Add a memset.S (does not use dcbz; to be added later). It does both bzero
and memset.
2003-08-10 21:17:08 +00:00
martin 785cae7ed0 Sync with userland version. 2003-08-10 14:20:03 +00:00
agc aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
dsl f92748a3e8 Add xlat_mbr_fstype - converts mbr type to disklabel type 2003-07-07 13:20:17 +00:00
briggs b2566d8735 Provide a strtoul() implementation based on the one in libc instead of the
totally different version that was here.  This version, of course, has an
BSD license on it while the old one did not.  This one also compiles down
to tighter code--the smaller the better for libkern & libsa.
2003-06-07 02:52:33 +00:00
itojun da3884cbf4 latest copyright notice (more loose). noted by wiz 2003-05-15 15:02:52 +00:00
itojun 99c5869d56 add strl{cpy,cat} to libkern. code from lib/libc/string (originally from openbsd). 2003-05-15 13:50:35 +00:00
christos abfff333c3 don't define TRUE and FALSE locally. 2003-04-22 15:10:04 +00:00
dsl c327a133c6 Significantly faster memcpy/memmove/bcopy and memset/bzero 2003-04-15 22:49:50 +00:00
scw bfc4be13a6 When MEMCOPY is defined, don't bother checking if a backwards-copy is
required. That's what memmove() is for.

This should fix port-powerpc/16889. The backwards copyin can confuse
uiomove/genfs_getpages, resulting in corruption of files written over NFS.
2003-04-07 21:04:19 +00:00
bjh21 f34ba16c9c NetBSD/acorn26 has used APCS-32 for years, so unifdef -U__APCS_26__. 2003-04-05 23:27:14 +00:00
matt cc005c66db Switch back to generic bzero/memset until new one is shown to work. 2003-02-25 20:15:02 +00:00
matt 97d38cdec2 Actually use bzero.S. Also fix bzero to use GET_CPUINFO 2003-02-24 07:14:17 +00:00
matt 05a4c83a70 Don't make memset.c since bzero.o has memset in addition to bzero. 2003-02-24 07:09:18 +00:00
thorpej 4245ee1663 Wrap this file in "#ifndef _STANDALONE". 2002-12-05 17:12:06 +00:00
fvdl 144469b350 Add strtoul.c 2002-11-25 00:55:22 +00:00
fvdl a186add0a8 If LIBKERN_ARCH is defined, use that as the architecture-specific
subdirectory. Needed for the x86_64 32bit compile case.
2002-11-23 23:35:50 +00:00
chris f86ab1a63e Sync arm asm libkern files with libc's asm files. 2002-11-23 14:29:29 +00:00
itohy 6e73936f81 Use assembly version of bzero() and memset(). 2002-11-20 09:52:53 +00:00
itohy 5d1c87f395 Assembly version of bzero()/memset().
Written by SHIMIZU Ryo.
2002-11-20 09:51:52 +00:00
itohy 766d863c42 memcpy() and memmove() must return the first parameter.
Problem found by itohy, fixed by SHIMIZU Ryo.
2002-11-20 09:50:37 +00:00
rearnsha 6576c49b48 Add an assembler version of strcmp, based on example code from the ARM
ARM.  As an example of the performance difference that this provides
a Dhrystone score on my Shark goes from 213k to 261k.
2002-11-16 18:27:40 +00:00
thorpej 7f74df5ef3 ABICALLS -> __ABICALLS__ 2002-11-10 18:10:25 +00:00
perry efd79c70c9 Add lint infrastructure 2002-11-02 07:48:17 +00:00
perry 6448ffbdfe set LLIBS= so we don't try to check the lint lib against llib-lc.ln 2002-11-02 07:46:42 +00:00
chs cab484e445 move includes to the top so that this builds in libc context too. 2002-10-29 04:40:55 +00:00
chs c04f87a03e remove setjmp/longjmp from libkern, they're not used. 2002-10-27 18:45:11 +00:00
chs c5a350ef59 use %g5 instead of %g7 (since we want to use %g7 for the cpu_info pointer
in the kernel).  resync libc and libkern versions of this file.
2002-10-27 18:41:27 +00:00
christos 07dca24022 make offsetof lint friendlier. 2002-10-24 20:53:50 +00:00
scw 03c573236d Replace the SuperH memcpy() with homebrewed code. The former seems to have
a subtle failure mode which can result in corruption of memory outside the
bounds of the destination buffer.
2002-10-22 12:25:18 +00:00
scw ac76a83a5c Sync with libc/quad:
As discussed (briefly) on tech-userlevel, fix our quad support to work
correctly on LP64 platforms. This is mostly just s/long/int/ in the
appropriate places.
2002-10-20 10:17:14 +00:00
scw 921743eed1 Fix a sign-extension botch for ILP32. 2002-10-19 08:54:23 +00:00
scw 0e1af8ca62 Doh. Bail out early if we're passed a zero-length buffer. 2002-10-19 08:53:45 +00:00
scw 99ad3a762b Add native optimised assembler versions of some libkern routines.
The memcpy routine is courtesy of SuperH, with some tweaks by me.

XXX: There is room for further optimisation in some of these routines.
2002-10-17 11:53:32 +00:00
jdolecek d32bd396f2 #undef ffs before the ffs() function definition, so that the name
isn't rewrote to __builtin_ffs() on gcc 2.95+; this fixes compilation
on sun2
also change the comment for function
2002-10-10 10:51:56 +00:00
jdolecek aaccb8dc2b need to include <sys/param.h> to get inline strlen() on vax; found
with help of Matt Thomas
2002-10-08 21:45:36 +00:00
simonb a30355b57a Add RCS ids. 2002-10-08 11:58:54 +00:00
dan 73390e7e36 let this compile in the non KERNEL case without NRND. 2002-10-06 13:42:36 +00:00
tls 0f95ec4fd5 ESP output was drawing down the entropy pool at a ferocious rate, a
particular problem on hosts with only wireless interfaces that are
definitely not safe to use as entropy sources.

Add arc4randbytes() which hands out bytes from the same source used
by arc4random().  This is intended to be a _temporary_ interface
until we can design and implement a better general PRNG interface
that is decoupled from the entropy-pool implementation.

Modify key_randomfill() (used only for initialization vectors on
SA creation and via key_sa_stir_iv(), which does not "stir",
despite its name) to use arc4randbytes() instead of pulling bits
directly from the entropy pool.  It is my hope that this change
will pose minimal integration problems for the KAME folks as the
random-pool interface is *already* different between each BSD
variant; this just simplifies the NetBSD case and solves a
fairly serious problem.

Note that it is generally considered acceptable cryptographic
practice to use a fast stream cipher to generate IVs for encryption
with stronger block ciphers.  For example, the use of "non-Approved"
PRNGs to generate IVs for "Approved" block ciphers is explicitly
sanctioned by FIPS 140-2.
2002-10-06 08:51:44 +00:00
tls cd114adca5 This commit includes two major changes:
1) Speed up arc4random().  We make arc4randbyte() inline, which makes this
   not much slower than, say, the other arc4 implementation in our kernel.

   We also replace four calls to arc4randbyte() with a loop, saving about
   20% on some processors where the "unrolled" arc4randbyte() calls would
   needlessly stomp the cache.

2) Address various problems with the initialization/"stirring" code,
   primarily in the area of handling of the source data from the kernel
   entropy pool.  We used to:

	a) Ask the entropy pool for 32 bytes

	b) If we got zero bytes, key with junk from the stack (ouch!)
	   which has some nasty implications, to say the least.  For
	   example, we're most likely to get zero bytes at boot time,
	   when the stack contents are even more predictable than usual.

	c) If we got less than 32 bytes but more than zero bytes, use
	   however many bytes we got as the arc4 key, copying it
	   repeatedly as per usual arc4 key setup.

	   Because of the way NetBSD's entropy pool works, this was
	   mostly harmless, because if you ask for RND_EXTRACT_ANY,
	   you always get as many bytes as you ask for.  However,
	   this is probably a security hole in the original FreeBSD
	   code, where AFAICT you might end up using an 8-bit arc4
	   key -- not good, much worse than using the output of the
	   entropy pool hash function even when it thinks it only
	   has 8 bits of entropy to give you.

	   One thing this code could do on NetBSD that was not so
	   good was to replace a key with a lot of entropy with
	   one with less entropy.  That's clearly counterproductive.

   The new code, instead:

	a) Asks for 32 good bytes.  If it gets them, use them as the
	   arc4 key in the usual way.

	b) Tracks how many entropy bytes the key it's replacing had.
	   If the new entropy request got less bytes, leave the old
	   key in place.  Note that the first time through, the "old
	   key" had zero bytes, so we'll always replace it.

	c) If we get less then 32 bytes but more than we had, request
	   EXTRACT_ANY bytes from the entropy pool, padding the key
	   out to 32 bytes which we then use as the arc4 key in the
	   usual way.

This is still really all rather backwards.  Instead of this generator
deciding to rekey itself using a basically arbitrary metric, it should
register a callback so that the entropy pool code could rekey it when
a lot of bits were available.  Details at 11.

Finally, rename the "stir" function (which did not stir) to "rekey",
which is what it actually does.
2002-10-06 06:47:40 +00:00
junyoung 2a1b344158 Unconditionally add strstr.c. Bill Studenmund. 2002-10-04 20:00:00 +00:00
junyoung 26737526db Add strstr() to libkern. For now, it's only used in i386 (for processor
identification).
2002-10-04 18:39:52 +00:00
itojun df6ef6d0d3 include rnd.h only under kernel build.
caveat: arc4random() will not get stirred in bootstrap code.
2002-10-04 07:33:26 +00:00
itojun dfea6e4344 add missing "rnd.h" include - noted by simonb 2002-10-04 02:37:23 +00:00
matt 44bc4ef4a9 Ansify's (use prototypes). 2002-10-04 00:50:15 +00:00