Commit Graph

192 Commits

Author SHA1 Message Date
ad
96f5ce86b9 objdump -d to the rescue. I think this should work now. 2007-12-08 22:42:46 +00:00
he
1e962f25f7 Correct what must obviously be a cut+paste-induced set of typos. 2007-12-04 01:13:38 +00:00
wiz
7b371a343f Typo fixes. 2007-12-02 18:57:56 +00:00
ad
234aa6237e Memory barriers for MIPS. 2007-11-30 22:50:44 +00:00
ad
4d460dc055 This is atomic_dec, not atomic_inc! 2007-11-30 17:11:48 +00:00
ad
f377e7f907 Fix ia32 -> amd64 thinko. 2007-11-29 21:59:47 +00:00
ad
7243d328e1 Atomic ops for sh3. 2007-11-29 17:33:38 +00:00
ad
6f3a041727 atomic_add_* takes signed integers, the others take unsigned. 2007-11-29 17:29:40 +00:00
ad
29d1edb61b Apparently pointers are also returned in %a0. 2007-11-29 17:12:21 +00:00
ad
935eacf351 Pull in m68k atomic ops from the thorpej-atomic branch. 2007-11-29 17:09:31 +00:00
ad
6b0ff77038 Atomic ops for hppa. 2007-11-29 16:14:56 +00:00
ad
881b1b699e Use the CAS-based inc/dec variants, since these CPUs don't have atomic
add in hardware (does arm?).
2007-11-29 15:29:46 +00:00
ad
fe803ab0ed Add inc/dec variants that use atomic_cas in preference to atomic_add. 2007-11-29 15:27:57 +00:00
ad
5c5043b187 membar_read/write are gone. 2007-11-29 15:20:43 +00:00
ad
11f83d35dd Atomic ops for arm. 2007-11-29 15:19:54 +00:00
ad
2da5f5559a Fix the aliases. 2007-11-29 02:16:00 +00:00
ad
ebe806aa11 sparc atomic ops 2007-11-29 02:01:22 +00:00
ad
c69c0e0f91 Make the 64-bit operations available when possible. 2007-11-29 01:04:57 +00:00
ad
695c2bc225 Only build the 64-bit versions if __HAVE_ATOMIC64_OPS. 2007-11-29 01:02:40 +00:00
ad
7b3b1e0427 Atomic ops for MIPS. Use the CAS functions already provided by the kernel,
and use the generic C code to provide the rest. Unfortunatley the C code
assembles up pretty badly on MIPS but at least it will work.
2007-11-29 00:16:23 +00:00
ad
2f827ecd6a ppc64 atomic ops. 2007-11-28 21:47:00 +00:00
ad
bc7bf35c36 Atomic ops for powerpc. Please review. 2007-11-28 21:39:48 +00:00
ad
44fc0a18e5 A lock prefix on xchg is meaningless. 2007-11-28 18:02:29 +00:00
ad
fb900ec918 Pull in alpha atomic ops from the thorpej-atomic branch. 2007-11-28 17:39:06 +00:00
ad
f1d10eab90 Pull in sparc64 atomic ops from the thorpej-atomic branch. 2007-11-28 17:29:31 +00:00
ad
77ca26a240 Memory barriers for sparc64. XXX Can the 'membar' go in retl delay slot? 2007-11-28 17:29:13 +00:00
ad
0df165c04d Use xchgb, bswapl and not rotate/shift. 2007-11-28 17:03:35 +00:00
ad
13c86772e9 Memory barrier in respect of the CAS isn't necessary. 2007-11-28 16:59:09 +00:00
ad
79085586b9 Support files from the thorpej-atomic branch. 2007-11-28 16:54:57 +00:00
ad
db42e14f44 Hook the atomic ops in. Right now they are only built into libkern, and
only if available.
2007-11-28 15:25:44 +00:00
ad
b47fc5f5e0 Fix up a few minor problems. 2007-11-28 15:24:38 +00:00
ad
65728ed419 x86 atomic ops. 2007-11-28 01:33:47 +00:00
ad
51a2159851 Don't unconditionally clear the direction flag. The ABI says it must always
be clear when making a function call, and 'cld' takes about 50 clock cyles
on the P4.
2007-11-12 18:41:59 +00:00
christos
2f1af36850 use the ffs32 from bitops.h which is faster 2007-11-02 21:05:06 +00:00
he
2a0ce8a57f Improve consistency between <sys/bswap.h> and what's actually
defined by the C library for the various m68k ports by borrowing
some #ifs from the i386 port.

Also, align sun2 with the other m68k ports as to whether they
define __bswap{16,32} or bswap{16,32} in their C library (all
now define the __ variants).

This should make the m68k ports build sys/rump again, except
for sun2 which hits another problem later on.
2007-09-19 20:31:34 +00:00
drochner
de07feb28f cast to void* to avoid a fatal warning 2007-07-18 16:58:14 +00:00
joerg
17c77a58f0 Fix SIGBUS issues on strict alignment issues. Use le32dec in RMD160
as the data pointer to RMD160_Update doesn't have to be aligned.
In SHA256_Update and SHA512_Update, only operate directly on the passed
in data if no left-over in the context exists and the data is correctly
aligned. The problem was exposed by the audit-packages rewrite in C
and reported for the libnbcompat version in PR pkg/36662.
2007-07-18 13:57:54 +00:00
scw
dba01be393 Apply the patch, with some minor tweaks, supplied in PR/36513.
This prevents a possible prefetch past the end of the source buffer.

Note that the semantics of the pld instruction mean that it is unlikely
that this would have caused any problems except in very specific
circumstances in some types of device drivers.
2007-06-21 21:37:04 +00:00
scw
5092a6592f Apply the patch supplied in PR/36512 to fix the buffer overlap check. 2007-06-20 22:31:21 +00:00
christos
a8565cf99b handle fortify, ansify. 2007-06-04 18:19:26 +00:00
christos
1418345039 Make these work with _FORTIFY_SOURCE, by overriding the fortified definitions 2007-06-03 17:39:26 +00:00
scw
5764a76889 Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:35:21 +00:00
matt
1c1dcb3369 Add these so kernels built -O0 will link. 2007-03-31 06:13:52 +00:00
chs
d210472073 don't do the weak symbol thing in kernel context. 2007-02-19 18:33:09 +00:00
christos
ace49726e7 Make SHA512_Last static since it is not part of the API. Suggested by
Matthias Scheler
2007-02-18 18:13:38 +00:00
christos
5feb51ff2c make SHA512_Last weak. 2007-02-17 17:15:43 +00:00
christos
4361f207b8 remove bogus (void)&var; from Anon Ymous 2006-12-18 00:41:54 +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
he
80b96f1aa4 Add include of <sys/param.h>, to allow vax kernels to build again.
For vax, this causes <machine/macros.h> to be included and the
redefine of memset() to take effect.
2006-11-01 11:29:08 +00:00
uwe
5dd5d540a6 Simplify the __attribute__ ifdef mess now that __used does the right
thing for older gccs.
2006-10-27 22:14:13 +00:00
christos
d029b25938 restruct the include files to look like the other hash functions. 2006-10-27 21:25:21 +00:00
christos
77c9e41904 this is shared with the kernel now. 2006-10-27 21:23:15 +00:00
uwe
088af57adf Do the used/unused dance under #ifdef KERNEL too. Prevents mcount
from being optimized away when compiling sh3 kernels with profiling
enabled (gcc doesn't see that __mcount, which is written in asm,
refers to it).
2006-10-26 23:10:16 +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
ross
282f07d643 Fix bug involving addresses >= 4G on ppc64. 2006-08-15 02:23:54 +00:00
ross
12f8dfa169 add reachover ffs and strlen for ppc64 2006-07-07 07:37:44 +00:00
ross
9eb6edc931 revert 2006-07-07 07:31:03 +00:00
ross
a76fa390b6 And yet more .S files... 2006-07-07 07:15:04 +00:00
uwe
13ab2e2a10 Now that bcopy.S doesn't contain the actual implemenation, move it
back to libc.
2006-04-23 00:08:18 +00:00
uwe
c71562d660 Move the code into memcpy.S. Adjust the other files accordingly.
Same binaries are generated.
2006-04-22 23:53:47 +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
yamt
88cde7b8a8 prefix local labels with ".L". 2006-04-07 12:07:55 +00:00
christos
7c73c7d9b9 remove bogus _LIBC defines. broke lint. 2006-03-30 20:37:51 +00:00
martin
d5e6ed8907 Enforce argument domain by assigning to a char variable and searching
for that. This way we pass the lib/libc/string/strrchr regression tests.
2006-03-13 15:41:46 +00:00
simonb
1ee1a1e6e2 Don't rename bswap{16,32} if either _KERNEL or _STANDALONE are defined,
instead of just if _KERNEL was defined.
Fixes sbmips bootblocks build problems.
Thanks to Valeriy Ushakov for showing me where the problem was.
2006-02-08 21:52:36 +00:00
ross
b8bbfca272 Don't do DIAGASSERT against NULL if _KERNEL This puts us back to
kernel behavior before src/common where 0 was a valid dest addr.

This should fix the macppc (and other OEA ppc) silent-death-on-DIAGNOSTIC
issue, and possibly other DIAGNOSTIC failures.

XXX it might be worth thinking about an API where 0 is allowed in
documented cases and not allowed otherwise.
2006-02-05 06:47:48 +00:00
uwe
d78e2d9ed2 Define htonl &co as alternative names to bswap only if little endian.
I'm not sure if idempotent versions need to be defined for big endian,
as the man page says in that case they are defined idempotent macros.

PR port-arm/32734
2006-02-04 23:14:48 +00:00
uwe
c61d2c641d libc wants __bswapNN, kernel wants bswapNN. That was not accounted
for during the merge of kernel and libc versions.  Fix to match
e.g. i386 code.
2006-02-04 21:53:31 +00:00
christos
e2786343af fix the mc68010 case. 2006-01-13 16:07:59 +00:00
christos
8ca2029daf always compile in the userland portion. XXX: We might want to change this
to __no_instrument_function__ like the kernel does.
2006-01-08 07:46:39 +00:00
he
2f2fd2a0ad Add the m68010 versions of the integer multiply divide, modulo,
and multiply functions from the old libkern.  The m68010 versions
are only compiled when __mc68010__ is defined, presently that's
only done when building for sun2.

Reviewed by christos.
2006-01-05 22:33:34 +00:00
tsutsui
d5f01723d6 Don't redefine _LOCORE if it's already defined.
Some Makefiles for standalone programs already have it.

XXX Old src/sys/lib/libkern/arch/mips/memcpy.S had some #ifdef MIPS3_5900
XXX which added some extra nops, but this new common bcopy.S doesn't.
2005-12-27 11:23:53 +00:00
yamt
a30f264f2a don't rename bswap{16,32} if defined(_KERNEL) || defined(_STANDALONE).
(they are hidden by gcc-optimized versions, though.)
2005-12-27 09:38:11 +00:00
yamt
987ddf0a22 make alpha kernel buildable again.
don't add __ prefix to bswap{16,32}
if defined(_KERNEL) || defined(_STANDALONE).
2005-12-27 09:22:08 +00:00
yamt
1722e429b8 lack of COMMON_ARCHDIR is not fatal. 2005-12-27 08:43:05 +00:00
yamt
bdaa56955a print a meaningful error rather than "Need an operator". 2005-12-27 07:31:45 +00:00
matt
9abe0ed18f Include <sys/param.h> first to make VAX port happy. 2005-12-24 08:34:10 +00:00
matt
460818ad02 Don't include "DEFS.h" when <machine/asm.h> is enough. 2005-12-24 08:33:32 +00:00
skrll
ab4f10bcc2 Fix PR 32363 by defining _NOREGNAMES.
Someone should complete the transition.
2005-12-23 10:04:51 +00:00
christos
9ce35109d3 move from libc. 2005-12-22 01:25:12 +00:00
christos
0f3640d687 x86_64 uses i386 assembly files in standalone mode. 2005-12-21 21:47:30 +00:00
christos
54bb4a449f conditionally build this on GPROF again. 2005-12-21 18:11:32 +00:00
christos
bab1897aa8 Only build this if GPROF && !_STANDALONE 2005-12-21 18:11:11 +00:00
christos
91165a001e make this compile again. 2005-12-21 16:58:04 +00:00
christos
4659ba77df Build also when GPROF is not defined. 2005-12-21 15:14:09 +00:00
christos
70b3b52aaa Add the old small random from the libkern and use it for now. 2005-12-21 14:23:58 +00:00
christos
93412868df Make this compile for the kernel again. 2005-12-21 14:19:45 +00:00
christos
734fc1f9ff move from libc. 2005-12-21 00:25:56 +00:00
christos
242aadbe63 Include string in the cpp flags. 2005-12-20 22:51:18 +00:00
christos
275e8bb92d add files I forgot to commit. 2005-12-20 20:29:40 +00:00
christos
37c9f0a654 Merge libkern + libc common files. As requested by core. 2005-12-20 19:28:49 +00:00