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
scw
42ca361622
Preserve and restore the caller's FP status register, and ensure
...
it contains a sane value while we're doing FP ops.
2002-09-28 10:33:59 +00:00
provos
0f09ed48a5
remove trailing \n in panic(). approved perry.
2002-09-27 15:35:29 +00:00
chs
2841e1341c
add strtoul.c, it's now used in MI code.
2002-09-21 17:45:16 +00:00
ragge
77d3833330
Need strtoul() also.
2002-09-19 17:37:32 +00:00
thorpej
2699791533
Do not #include "/usr/include/arpa/tftp.h" directly. Doing so is
...
VERY BAD for cross-compiling.
2002-09-16 16:53:45 +00:00
msaitoh
a991dcef11
Add __movstr_i4_{odd,even} for -m4.
...
Written by SHIMIZU Ryo.
2002-09-05 08:35:15 +00:00
itohy
f89823c1f8
Save 1-4 instructions on all cases except for the ret=0 case.
...
This is probably the last version from me. :)
You are welcome to speed it up, of course. :)
Here's a benchmark on SH-4 200MHz.
9.2% faster if all the cases occur evenly.
return value C version previous vers this version speed ratio
of ffs() (ns/call) *1 (ns/call) (ns/call) *2 (*1/*2)
------------ ------------ ------------- ------------ -----------
0 86 81 81 1.06
1 110 106 91 1.21
2 132 106 92 1.43
3 165 117 96 1.72
4 201 116 95 2.12
5 237 107 99 2.39
6 271 106 101 2.68
7 307 116 107 2.87
8 342 116 105 3.26
9 376 126 111 3.39
10 410 127 110 3.73
11 446 136 115 3.88
12 483 134 116 4.16
13 518 125 119 4.35
14 551 126 120 4.59
15 587 135 127 4.62
16 624 136 126 4.95
17 658 139 126 5.22
18 694 140 126 5.51
19 727 148 131 5.55
20 764 150 131 5.83
21 799 141 135 5.92
22 834 142 135 6.18
23 868 152 140 6.20
24 903 153 142 6.36
25 939 140 127 7.39
26 974 141 126 7.73
27 1009 152 131 7.70
28 1044 148 130 8.03
29 1080 141 136 7.94
30 1115 141 136 8.20
31 1151 151 141 8.16
32 1185 151 140 8.46
2002-09-01 13:14:53 +00:00
itohy
fa5465079f
Slightly improved version of ffs(3).
...
Partially from SHIMIZU Ryo <ryo@iij.ad.jp>. Thanks.
Some cases are slower, but other most cases are faster.
Here's a benchmark on SH-4 200MHz.
return value C version previous vers this version speed ratio
of ffs() (ns/call) *1 (ns/call) (ns/call) *2 (*1/*2)
------------ ------------ ------------- ------------ -----------
0 86 86 81 1.06
1 110 86 106 *(slower) 1.04
2 132 86 106 * 1.25
3 165 105 117 * 1.41
4 201 104 116 * 1.73
5 237 111 107 2.21
6 271 111 106 2.56
7 307 126 116 2.65
8 342 125 116 2.95
9 376 122 126 * 2.98
10 410 121 127 * 3.23
11 446 139 136 3.28
12 483 140 134 3.60
13 518 146 125 4.14
14 551 146 126 4.37
15 587 161 135 4.35
16 624 162 136 4.59
17 658 141 139 4.73
18 694 142 140 4.96
19 727 160 148 4.91
20 764 161 150 5.09
21 799 167 141 5.67
22 834 167 142 5.87
23 868 181 152 5.71
24 903 181 153 5.90
25 939 146 140 6.71
26 974 146 141 6.91
27 1009 166 152 6.64
28 1044 165 148 7.05
29 1080 171 141 7.66
30 1115 171 141 7.91
31 1151 185 151 7.62
32 1185 186 151 7.85
2002-08-28 15:34:35 +00:00
thorpej
181f0a9b54
Tweak the previous change so that a prototype is always provided.
2002-08-25 21:09:45 +00:00
itohy
6736303e13
Use assembly version of ffs(3).
2002-08-24 06:39:48 +00:00
itohy
85ce1de27f
Oops, SYSLIBC_SCCS -> LIBC_SCCS
2002-08-24 06:37:24 +00:00
itohy
70b5675025
Assembly version of ffs(3).
...
Confirmed to return the same value as that of the C version.
The results of a simple benchmark on SH-4 200MHz, is shown below.
I think this shows acceptable performance.
return value C version this version speed
of ffs() (ns/call) (ns/call) ratio
------------ --------- ------------ -----
0 86 86 1.00
1 110 86 1.27
2 132 86 1.53
3 165 105 1.57
4 201 104 1.93
5 237 111 2.13
6 271 111 2.44
7 307 126 2.43
8 342 125 2.73
9 376 122 3.08
10 410 121 3.38
11 446 139 3.20
12 483 140 3.45
13 518 146 3.54
14 551 146 3.77
15 587 161 3.64
16 624 162 3.85
17 658 141 4.66
18 694 142 4.88
19 727 160 4.54
20 764 161 4.74
21 799 167 4.78
22 834 167 4.99
23 868 181 4.79
24 903 181 4.98
25 939 146 6.43
26 974 146 6.67
27 1009 166 6.07
28 1044 165 6.32
29 1080 171 6.31
30 1115 171 6.52
31 1151 185 6.22
32 1185 186 6.37
2002-08-24 06:30:34 +00:00
ragge
3f5fba68de
Do not try to use "__builtin_ffs" on vax, ffs is an instruction already.
...
Maybe possible to teach gcc to use it?
2002-08-23 08:45:27 +00:00
thorpej
c0d823519c
GCC 2.95 supports __builtin_ffs(); use it.
2002-08-21 01:27:58 +00:00
thorpej
dafc960ed6
Local label fixup.
2002-08-17 19:00:26 +00:00
chris
d8ac0fb3aa
pull in ffs.S from libc for arm.
...
The main benefit is that ffs always runs in constant time.
2002-08-17 01:22:33 +00:00
briggs
b98931f62e
Use .L prefix for all local labels.
2002-08-15 18:30:36 +00:00
matt
7c4618a9ce
cpu_info is not in spr0, but spr_g_0.
2002-07-30 06:10:46 +00:00
kent
6789db7962
Avoid redundant memory access.
2002-07-10 06:02:09 +00:00
scw
59474a8c82
NetBSD, meet the SH-5 cpu.
...
SH-5, meet NetBSD.
Let's hope this is the start of a long and fruitful relationship. :-)
This code, funded by Wasabi Systems, adds initial support for the
Hitachi SuperH(tm) SH-5 cpu architecture to NetBSD.
At the present time, NetBSD/evbsh5 only runs on a SH-5 core simulator
which has no simulated devices other than a simple console. However, it
is good enough to get to the "root device: " prompt.
Device driver support for Real SH-5 Hardware is in place, particularly for
supporting the up-coming Cayman evaluation board, and should be quite
easy to get running when the hardware is available.
There is no in-tree toolchain for this port at this time. Gcc-current has
rudimentary SH-5 support but it is known to be buggy. A working toolchain
was obtained from SuperH to facilitate this port. Gcc-current will be
fixed in due course.
The SH-5 architecture is fully 64-bit capable, although NetBSD/evbsh5 has
currently only been tested in 32-bit mode. It is bi-endian, via a boot-
time option and it also has an "SHcompact" mode in which it will execute
SH-[34] user-land instructions.
For more information on the SH-5, see www.superh.com. Suffice to say it
is *not* just another respin of the SH-[34].
2002-07-05 13:31:28 +00:00
bjh21
3763adaefd
Avoid leaving junk in the top half of R0 on return.
...
This fixes port-arm/17440.
2002-07-01 19:07:18 +00:00
wrstuden
10d47b4dd3
Updated version of cscope/mkid support. Check libkern and compat lib
...
for source files. Also include header files in mkid run.
2002-06-18 23:46:52 +00:00
matt
940fedda07
Fix make breakage. $ZDST != ${ZDST} in make. make clean/cleandir now works.
2002-06-15 19:30:56 +00:00
itojun
c3e57df04c
discard 256 bytes of output every time we stir (not just when initializing)
2002-06-14 03:05:46 +00:00
fredette
e978777b86
Added hppa support to libkern.
2002-06-06 20:03:37 +00:00
itojun
937b671271
use exit(int), not exit(void), consistently - even if the arg has no meaning.
2002-06-01 11:40:31 +00:00
itojun
c0e2bb0509
need libkern.h for bootloaders
2002-05-29 06:27:15 +00:00
bjh21
a20462dc6e
Implement LIBSA_NO_FS_CLOSE, LIBSA_NO_FS_WRITE and LIBSA_NO_FS_SEEK.
...
LIBSA_NO_FS_SYMLINK and LIBSA_FS_SINGLECOMPONENT are irrelevant here.
2002-05-28 14:30:53 +00:00
bjh21
43079a573b
KNF.
2002-05-28 14:26:01 +00:00
itojun
2e926ba699
no need for libkern.h
2002-05-28 12:21:22 +00:00
itojun
0ac289dea9
have arc4random(9).
2002-05-28 10:09:24 +00:00
lukem
e34d4e21de
fix comment
2002-05-10 11:07:01 +00:00
simonb
5457f78a34
Don't bother testing if a uint8_t is > 256 -- that test is always false.
2002-05-09 02:44:39 +00:00
simonb
67c33ffcda
Remove two shadowed variables, one of which was set to what it was
...
shadowing(!) and the other a temporary variable (as was it's shadow).
Code generated with "gcc -O2" is the same before and after.
2002-05-07 02:02:41 +00:00
martin
9f680534b0
Add strtoul.
2002-05-05 11:23:24 +00:00
ross
f98b9b43e8
Add strtoul.c
2002-04-24 16:56:36 +00:00
ragge
b0fa7eb2c1
Someone had a braino here; IP_TTL != IPDEFTTL. This caused the standalone
...
udp traffic to only have a ttl of 4.
Found by Jens Nilsson, jens@rockstorm.se .
2002-04-23 09:16:09 +00:00
martin
22143f5a44
Add strtoul.c, otherwise kernels using "wi* at pcmcia?" do not work
...
anymore.
Why only four archs provide this is beyound me.
2002-04-16 06:36:02 +00:00
matt
fd1c084a68
Add a 1byte pad to make the ustar_t word aligned so the uas_1cyl after it
...
will also be word aligned. This makes the VAX VMB bootrom happy since it
doesn't support odd-aligned buffers.
2002-03-30 01:29:48 +00:00
matt
cb520da5b3
Refresh from libc.
2002-03-28 00:46:08 +00:00
fredette
58830d68c5
Added brand-new integer multiply and divide support, used only
...
on the m68000.
2002-03-26 22:49:32 +00:00
matt
12810ed37d
Use size_t in prototype (so this will be LP64 clean for PPC64 someday).
...
Calculate len separately for icache & dcache in case each has different
cacheline widths. Make the code for both loops the same except for the
dcbst/icbi. Deal with sizes >=2GB properly (like that'll happen but ...)
2002-03-26 21:20:24 +00:00
fredette
d617871b0c
On the m68000, if and only if gcc doesn't seem to know
...
where libgcc.a is, fall back to one under DESTDIR.
2002-03-22 00:17:12 +00:00
thorpej
6440db6488
* Add a NetBSD Vendor Class Identifier option as proposed on tech-net
...
in message <20020216172527.C23901@dr-evil.shagadelic.org>.
* Print the bootp/dhcp response, as is done for rarp/bootparam
responses.
* Nuke bootp_flags and BOOTP_PXE; they're not used, nor should they be.
2002-03-20 23:10:39 +00:00
dbj
f0658bdada
make compile with _STANDALONE
2002-03-18 05:10:58 +00:00
gmcgarry
d16aceedcc
Protect remaining references to 'debug' with NETIF_DEBUG.
2002-03-17 05:46:37 +00:00
simonb
f28e18332c
Move files[] from globals.c to its own file. Including all of globals.o
...
breaks the size limit for at least the pmax bootblocks.
Fixes PR port-pmax/15924 from Gregory McGarry.
2002-03-15 13:23:34 +00:00
eeh
4c434f6210
Updated from libc.
2002-03-13 00:59:29 +00:00
fvdl
104148a990
Sync with userland (1.1.4)
2002-03-12 00:42:23 +00:00
matt
e2d6f22138
Add register prefixes to these.
2002-02-24 00:12:41 +00:00
matt
6cad4b795d
Upon further reflection, move udiv/urem to libkern and out of vax/vax.
2002-02-24 00:08:19 +00:00
thorpej
0b91bc440f
Move files[] from open.c to globals.c, so that it's possible to
...
use libsa in an application where there are no file systems or
devices.
2002-02-23 05:44:24 +00:00
lukem
da694bd77b
fix spelos
2002-02-22 12:46:53 +00:00
ragge
f2d946a56e
blkset() used a register for set value that get clobbered by movc5,
...
causing the set area to get unpredictable contents.
2002-02-19 21:46:17 +00:00
thorpej
15bffcdeed
Add a comment describing what SA_USE_LOADFILE is for.
2002-02-17 23:22:22 +00:00
thorpej
0d210931e3
Add a missing "static".
2002-02-17 23:19:00 +00:00
thorpej
bf9a052aa4
Add EOFFSET.
2002-02-17 23:18:32 +00:00
reinoud
e858ed8fa4
Not all ports use the `offset' in their calulations and on those platforms
...
compile errors are generated due to it. By explicitly using `offset=offset'
the variable is used in the compilers view and is optimised away anyway.
2002-02-11 20:25:56 +00:00
thorpej
2362fef9a8
Add __blkcpy() and __blkset() (renamed/modified from __blkclr()) to
...
libkern.
2002-02-10 22:04:51 +00:00
ross
e31435237d
sync
2002-01-24 00:45:22 +00:00
uch
e71de3f668
R5900 short-loop bug.
2002-01-02 12:34:27 +00:00
thorpej
23ed6be403
Always provide alloca() as __builtin_alloca().
2001-12-28 07:37:06 +00:00
shin
1bac15cba5
we need ffs().
2001-12-27 00:10:39 +00:00
shin
6870c1d462
don't use .abicalls in kernel.
2001-12-27 00:09:59 +00:00
shin
e509d7712d
copy from libc/arch/mips/string
2001-12-27 00:08:19 +00:00
thorpej
5ed948ecea
The kernel is now built with -ffreestanding, so GCC built-ins are
...
disabled. Explicitly re-enable some that we want to use, namely:
* memcpy() -> __builtin_memcpy()
* memcmp() -> __builtin_memcmp()
* memset() -> __builtin_memset()
* strcpy() -> __builtin_strcpy()
* strcmp() -> __builtin_strcmp()
* strlen() -> __builtin_strlen()
We might also consider some others for GCC 3.x.
2001-12-23 22:48:29 +00:00
tv
8e6f7afb5b
MKfoo=no -> NOfoo
2001-12-12 01:48:43 +00:00
wiz
b4371d47f5
Replace some misuses of "then" with "than".
2001-12-04 17:56:30 +00:00
mjl
f14e78b4c3
Disable bzero/memset assembler implementation until the dependency
...
problem on assym.h is sorted out and TRW to get at CACHELINESIZE in
the kernel is determined.
2001-12-02 11:03:39 +00:00
mjl
8231ab74c5
Add assembler version of strlen.
2001-11-30 02:27:20 +00:00
mjl
625c08cf7e
Outifdef some stuff not needed in the _KERNEL case.
2001-11-30 02:25:50 +00:00
mjl
4ee3b0f097
Add assembler versions of ffs, bzero and memset.
2001-11-29 00:27:07 +00:00
jmc
2229499bfb
Don't make clean and cleandir depend on the lib subdir. Just check for it's
...
existance before running the submake. This makes it possible to run a
make build (which runs cleandir before make obj) in a r/o source tree
2001-11-21 22:10:54 +00:00
chris
9cc0f33345
Tidy up some memory copying cruft:
...
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
2001-11-20 00:29:19 +00:00
lukem
2565646230
don't need <sys/types.h> when including <sys/param.h>
2001-11-15 09:47:59 +00:00
tv
4446c00002
Undefine DESTDIR; we don't want the special DESTDIR <bsd.lib.mk>
...
handling for kernel libraries.
XXX this build method should be replaced by something more sane
2001-11-14 21:59:31 +00:00
chris
4d1b8d545e
Sync to libc version of divsi3.S. This is to fix up the stack for 8 byte alignment.
2001-11-13 20:06:40 +00:00
christos
c89e803d30
Remove USB copyrights. The coff and elf loading code did not come with BSD4.4.
2001-11-09 19:27:25 +00:00
scw
f1defc3543
To avoid backwards seeks on sequential devices (eq. QIC tapes), read all
...
the program headers in one operation into an internal buffer.
2001-11-09 18:31:08 +00:00
thorpej
0971f93345
Make the ELF loadfile routines byte-order independent when used in
...
a non-_STANDALONE environment (e.g. installboot(8)): internalize and
externalize the exec, program, and section headers as necessary.
Reviewed and OK'd by Christos.
2001-10-31 21:24:09 +00:00
thorpej
a43b4351a8
Oops, committed wrong copy of file in previous revision.
2001-10-31 20:22:22 +00:00
thorpej
90aee7593a
Add standalone 64-bit to/from {big,little}-endian routines.
2001-10-31 20:19:52 +00:00
thorpej
e727e3f180
Split elf32 vs. elf64 handling in loadfile(), including support for
...
each separately and explicitly. BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
2001-10-31 17:20:45 +00:00
thorpej
4810d73020
Build the loadfile() a.out, ECOFF, and ELF back-ends as separate
...
objects.
2001-10-31 01:51:42 +00:00
thorpej
91626c3515
Split the exec formats included by loadfile() into separate files.
...
Primary goal: explcitly select which ELF format (elf32 or elf64) to
support for a cross tool which uses loadfile().
2001-10-30 23:51:03 +00:00
thorpej
74eebee33c
Add standalone byte-swapping routines that don't require testing
...
the system's byte-order:
- host to {big,little}-endian {16,32}
- {big,little}-endian {16,32} to host
These are not intended to be used in libsa directly, but are rather
intended to be used by host tools which may use libsa routines (such
as loadfile()) which need to use explicit byte-ordering.
2001-10-30 23:35:33 +00:00
matt
920cfb5205
Add "Red Black +" balanced binary tree routines to libkern. These provide
...
O(log(N)) insertation, deletion, and lookup times. However, unlike most
red-black implemenations, this one does no additional memory allocations.
2001-10-24 22:40:56 +00:00
jdolecek
a8fcba2901
Fix compilation on Alpha with ARP_DEBUG.
...
Fixes kern/6440 by R. C. Dowdeswell
2001-10-18 19:00:38 +00:00
uch
07f8f33bb9
R5900 miss-prediction of branch targets for short-loop.
2001-10-16 15:40:53 +00:00
minoura
12ea5d8238
Add changedisk_hook().
...
Machine-dependent code can eject the floppy to prompt the next volume in it.
(Or add another method in devsw?)
2001-09-28 15:15:24 +00:00
wiz
4c99916337
va_{start,end} audit:
...
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).
Improved by comments from enami and christos -- thanks!
Heimdal/krb4/KAME changes already fed back, rest to follow.
Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +00:00
fvdl
f22b808267
Make new gas happy. Use movzbl instead of xorl + movb.
2001-09-21 14:14:30 +00:00
fredette
7aaa6a4bc4
On the 68010, don't bother with the by-8-longwords loop, instead
...
only 16-bit align the region and use loop mode with longwords
to do the bulk of the work.
On the 68020+, fixed an optimization bug where all regions that start
on odd addresses would not be properly longword aligned.
2001-09-06 21:30:15 +00:00
tsutsui
cf574991b8
Add a small version of memmove() for libsa.
...
Mostly identical with libsa/bcopy.c.
2001-09-02 07:04:16 +00:00
matt
28c81ffc15
7450 requires a sync before the the isync (MPC7450UM - 3.4.4.8)
2001-08-22 21:19:58 +00:00
itojun
9fe945f2fe
sync argument/return type of [hn]to[nh][ls] to XNET 5.2 (uint{16,32}_t).
...
as discussed on tech-net.
2001-08-22 07:42:07 +00:00
jdolecek
c495131fe3
Move _insque()/_remque() to libkern. Once remaining uses would
...
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
lukem
9bbc26f3dc
convert to ansi knf, and fix a bug where the last arg was incorrectly
...
'u_char' instead of 'int' (per the prototype and usage and other scanc
implementations)
2001-08-09 08:03:34 +00:00
bjh21
acf574f63e
When loading ELF, zero out:
...
The e_shstrndx field in the ELF header, since we don't load .shstrtab.
The sh_name field in each section header, for the same reason.
The sh_offset field for any section we don't load.
This means the kernel has some chance of knowing what it's being given. It
also means that the behaviour of old kernels with new loaders should be
deterministic (if not terribly useful: they still can't find the symbol
table).
2001-07-31 22:11:57 +00:00
bjh21
30f144749a
G/C "off", since it was just tracking the difference between maxp and elfp.
2001-07-31 21:09:52 +00:00
bjh21
67a82e1d4e
Fix a small memory leak when counting the size of the symbol table (shp was
...
ALLOC'ed if (LOAD_SYM|COUNT_SYM), but FREEd if (LOAD_SYM)).
2001-07-31 20:03:03 +00:00
bjh21
1a35da3617
When loading an ELF kernel, don't load all the STRTAB sections. Instead, just
...
load those STRTAB sections that are referenced by a SYMTAB that we're loading.
The main advantage of this is that (at least with the binaries output by my
ARM ELF linker) this removes the need to seek backwards through the file, which
is a big win when loading a gzipped kernel.
While we're here, don't allocate space for string tables we don't load.
2001-07-31 19:20:29 +00:00
fvdl
3350f68f80
Avoid warnings about uninitialised usage.
2001-07-19 18:55:38 +00:00
wiz
1bc6d2cee9
Fix typo (`information' has an 'r').
2001-07-19 16:13:00 +00:00
christos
366971a414
Back out previous. The booter will need to find the symbol table itself,
...
as explained in the code.
2001-07-13 17:43:23 +00:00
christos
6711e49228
From Nigel Pearson: Make SYMS and NSYMS work on ELF.
...
The MacOS booter needs them.
2001-07-13 17:17:12 +00:00
thorpej
ac8a2539c1
Provide bcopy() here.
2001-07-13 00:04:00 +00:00
perry
5624bbb1d4
restore bzero and bcmp prototypes for now -- this has to be hashed out.
2001-07-07 17:22:25 +00:00
simonb
5439e1a9ff
Put the prototypes for bcmp() and bzero() back (ifdef _STANDALONE) so that
...
libsa builds again.
2001-07-07 12:23:43 +00:00
perry
7ab9c62227
Remove bcmp and bzero prototypes. And yes, I actually checked and
...
tested this time. (Slap self repeatedly.)
2001-07-07 05:42:16 +00:00
toshii
70e10fb682
Remove bcmp, bcopy and bzero. We don't need them as they aren't
...
called from asm code, and we shouldn't have them if we don't need them.
2001-07-06 17:35:44 +00:00
kleink
e69c885f3e
Sync with libc: use bzero-based assembly version of memset().
2001-07-01 11:55:36 +00:00
fvdl
9b4c0e34d2
Initial commit of the port to AMD's upcoming 64 bit architecture, the
...
x86-64. Since there's no hardware available yet, this port is only
known to run on the Simics simulator for at the moment, and as such
uses the PC devices that it simulates for now. It will be developed
more (and cleaned up) as the hardware becomes available.
2001-06-19 00:19:12 +00:00
fredette
49fda862f9
When MACHINE_ARCH is m68000, compile ffs.c and random.c
...
instead of ffs.s and random.s, and sneak the libgcc
integer support routines into the list of library objects.
2001-05-16 03:30:39 +00:00
fredette
332aa50acb
Use the EXTBL macro where we want the extbl instruction.
...
On the 68010 this expands to an extw/extl combination.
2001-05-16 03:14:12 +00:00
fredette
8ba384c841
On the 68010, we are forced to do bytewise compares
...
and copies if the two addresses aren't of the same
evenness.
2001-05-16 03:06:41 +00:00
kleink
95fa77ab80
Make this work for PIC (as opposed to pic) without taking chances of fitting
...
__ffstab into a GOT13 relocation; from Eduardo Horvath.
2001-05-13 20:03:45 +00:00
lukem
85772a1cef
remove some lint
2001-04-30 02:34:58 +00:00
ross
2df695b1e4
o IEEE 754 floating-point completion code.
...
o Implement the architected FP_C "Floating Point Control Quadword"
2001-04-26 03:10:44 +00:00
thorpej
4747025b48
ctype-like functions are now in libkern.
2001-04-18 15:40:58 +00:00
thorpej
23a3a54650
libkern.h now has the ctype routines.
2001-04-05 04:39:02 +00:00
thorpej
db5854a62c
Build strtoul.c
2001-04-05 04:38:33 +00:00
thorpej
554aa34ee7
Add ctype routines.
2001-04-05 04:38:06 +00:00
hubertf
267271c1b2
Explain some SA_* options - reading compressed kernels, netboot
...
Useful for stripping down bootcode.
2001-03-31 09:45:11 +00:00
cgd
b7ad250ab1
copy from lib/libc/arch/mips/gen
2001-02-27 19:45:26 +00:00
enami
3d31264640
Don't set ARCHSUBDIR to empty string.
2001-02-18 22:38:50 +00:00
bjh21
d308c5c5ed
Use MACHINE_CPU to find the architecture subdir, or MACHINE_ARCH if that
...
exists. Same algorithm as libc uses.
2001-02-16 16:58:27 +00:00
simonb
0292c3474f
Use arm arch directory for arm32 as well as arm26.
2001-02-15 23:17:44 +00:00
bjh21
da9d806354
Move arm32 over to using the shared ARM libkern.
2001-02-15 22:44:09 +00:00
msaitoh
3c31811206
don't profile (use NENTRY() and ALTENTRY())
2001-02-14 21:04:17 +00:00
msaitoh
9af8d0bdad
ENTRY()
2001-02-14 18:14:37 +00:00
msaitoh
2633a5dcb5
_C_LABEL()
2001-02-14 17:57:31 +00:00
bjh21
e68a8d59fa
Sync with libc for licence update.
2001-01-23 19:12:29 +00:00
itojun
f039f89ec5
prepare for sh3e[bl] split
2001-01-04 06:53:45 +00:00
bjh21
af14995e51
Create a shared set of ARM sources for libkern and move arm26 over to using
...
them.
These are identical to the current arm32 sources with the following exceptions:
- References to C labels are wrapped in _C_LABEL().
- Function returns have an alternate version inside #ifdef __APCS_26__.
2000-12-29 20:51:56 +00:00
bjh21
d839461405
Pull across arm32 rev 1.4:
...
ALTENTRY() must die.
2000-12-16 14:38:50 +00:00
bjh21
0b45f78538
Pull across arm32 rev 1.5:
...
ALTENTRY() must die.
2000-12-16 14:38:06 +00:00
mycroft
6d9be19e76
ALTENTRY() must die.
2000-12-14 22:00:20 +00:00
bjh21
1e720616fb
Copy from libc
2000-12-14 19:51:51 +00:00
bjh21
af87db0411
Use _C_LABEL
2000-12-14 19:50:38 +00:00
bjh21
fe80ce82c0
Copy from libc
2000-12-14 19:44:58 +00:00
bjh21
c044c88beb
Sync with arm32.
2000-12-14 19:33:00 +00:00
mycroft
a5a04ddba2
These versions have different names than libc...
2000-12-12 17:53:20 +00:00
mycroft
0e5af5b3d1
GC.
2000-12-12 17:51:03 +00:00
mycroft
6c96a6759b
Update from libc.
2000-12-12 17:44:04 +00:00
deberg
cdb062bbb7
add md4c.c
2000-12-08 06:30:21 +00:00
deberg
c2253656c9
in-kernel MD4 implementation, from libc
2000-12-08 06:29:23 +00:00
sommerfeld
5348dfb6ac
Have recursive make invocations depend on the .MAKE pseudo-target so
...
make knows to handle them specially.
2000-12-05 17:01:19 +00:00
tsutsui
99d2177add
Don't try to load a.out header if there is no space for it before text.
2000-12-03 02:53:04 +00:00
is
94f7c9c6f9
Sync with libc: make function exit one instruction faster, and function one
...
instruction shorter (Horimoto).
2000-11-28 15:26:34 +00:00
is
c8071d4fac
Sync with libc strncpy.S 1.11: optimized code by Hiroshi Horimoto.
2000-11-27 22:38:33 +00:00
simonb
cdfbd303f9
Fix tyop in comment.
2000-11-26 03:31:20 +00:00
tsutsui
071bf9bca9
Don't print "]" if loading kernel does not have symbol table.
2000-11-11 09:25:12 +00:00
matt
c4e14613b2
dos_unmount is only is dos_close is present but so conditionalize it like
...
dos_close.
2000-11-09 01:55:31 +00:00
matt
6c15ee2986
avoid pointer addition on void pointers
2000-11-08 19:38:12 +00:00
thorpej
29b685b9f0
Introduce a way for boot programs to modify the behavior of
...
bootp(). Add a BOOTP_PXE flag which causes bootp() to send
"PXEClient" in the DHCP class field.
Derived from similar code in FreeBSD.
2000-11-02 03:22:23 +00:00
thorpej
abf350ddcf
Sprinkle some const -- gets things out of the .data segment, which
...
is important in the i386 boot blocks (grmumble).
2000-11-02 00:34:51 +00:00
thorpej
904d7ceb3c
Add a standalone MS-DOS file system reader package, lifted
...
from FreeBSD, and modified use NetBSD's already-existing
MS-DOS file system data structure definitions, rather than
defining our own.
2000-11-02 00:25:05 +00:00
thorpej
1cfe0850f5
Add a strcasecmp(), modified from chopps's strncasecmp().
2000-11-01 19:37:18 +00:00
ragge
aeb756f1b5
Add define NO_MID_CHECK that avoids checking of the a.out mid field.
2000-11-01 14:23:04 +00:00
thorpej
9516ee90da
Split the UDP routines out of net.c.
2000-10-25 01:49:55 +00:00
takemura
c6304c954b
Add LIBSA_RENAME_PRINTF to solve conflict with prototype definition of
...
printf() and etc in header files of Windows CE native compiler.
2000-10-21 13:48:06 +00:00
msaitoh
0a5e7f9f3f
enclose offsetof macro definition with #ifndef offsetof ... #endif
2000-10-12 03:42:33 +00:00
jeffs
db1bb008f9
Set return value correctly for memcpy/memmove.
2000-10-10 20:29:03 +00:00
lukem
2a5013bcd3
show "press return" instead of "type return", since it's a key name and
...
not the actual word...
2000-10-02 23:35:54 +00:00
eeh
264b1139cd
Prevent the compiler from blowing up on sparc64. From mrg.
2000-09-17 19:55:28 +00:00
msaitoh
3a0bdcde18
check _STANDALONE macro, too.
2000-09-09 00:16:21 +00:00
thorpej
9c5afcb2f0
Move the Alpha _mcount() into a .S file so that it can be
...
pre-processed, like other Alpha assembly files.
2000-09-05 16:28:30 +00:00
msaitoh
17c5382dc6
compile byte_swap_2.S and byte_swap_4.S
2000-07-21 11:19:46 +00:00
msaitoh
116abff968
support "big endian", too.
2000-07-21 11:19:10 +00:00
bjh21
bf14d56ba8
Add strtoul.c -- if_ea.c needs it.
2000-07-20 20:27:53 +00:00
matt
69a9192fb8
We need strncasecmp.c now.
2000-07-19 03:56:38 +00:00
matt
237e784779
ELFify
2000-07-19 03:48:24 +00:00
enami
84606936fb
Fix an obvious typo in comment introduced by previous commit; the instruction
...
now compares a0 against a1 + a2, not a0 + a2.
2000-07-18 01:20:24 +00:00
jeffs
efabca31b5
Make memcpy() the favored interface an swizzle the args for ovbcopy. Also
...
move bcopy XLEAF here from locore.S. For 64b clean compilation add a
ld/sd section to the block copy.
2000-07-17 07:37:50 +00:00
mrg
de53718be7
<vm/vm.h> -> <uvm/uvm_extern.h>
2000-06-27 18:01:06 +00:00
msaitoh
e94e5fd681
new bcopy.S
2000-06-09 04:42:46 +00:00
msaitoh
431cb8da1c
movstrSI*() for gcc -Os
2000-06-09 04:42:24 +00:00
sommerfeld
01d37fc7c9
Add missing trailing newlines.
2000-05-26 23:09:28 +00:00
msaitoh
127c1a76e9
fix the null pointer access bug when arg2 (char **endptr) == NULL
2000-05-25 01:22:41 +00:00
bjh21
6c97e2bd78
Initial commit of arm26 port
2000-05-09 21:55:44 +00:00
thorpej
707b3d59b1
__predict_true() the expressions passed to the assert family, so
...
as to move the calls to __assert() out-of-line.
Suggested by Bill Sommerfeld.
2000-05-08 23:33:15 +00:00