Commit Graph

419 Commits

Author SHA1 Message Date
joerg d3a052c472 Allow use of traditional CPP to be set on a per platform base in sys.mk.
Honour this for dependency processing in bsd.dep.mk.  Switch i386 and
amd64 assembly to use ISO C90 preprocessor concat and drop the
-traditional-cpp on this platform.
2011-01-12 23:12:10 +00:00
matt 1b9f1d30ee Make these 64-bit clean. 2011-01-02 02:58:52 +00:00
pooka 57ec646236 Use a consistent approach for rump kernel calls made by libs.
Should investigate a dynamic approach in the future.
2010-12-14 08:04:14 +00:00
tron aacd5349be Provide proper namespace protection for rbtree(3) because it is now
used by "libc" internally.
2010-11-17 13:19:32 +00:00
matt 19e6c76b2d Rename rb.h to rbtree.h, as it is more appropriate (c.f. ptree.h). Also
helps find code that hasn't been updated to use the new rbtree API.
2010-09-25 01:42:38 +00:00
rmind 879d5dfb5e Fixes/improvements to RB-tree implementation:
1. Fix inverted node order, so that negative value from comparison operator
   would represent lower (left) node, and positive - higher (right) node.
2. Add an argument (i.e. "context"), passed to comparison operators.
3. Change rb_tree_insert_node() to return a node - either inserted one or
   already existing one.
4. Amend the interface to manipulate the actual object, instead of the
   rb_node (in a similar way as Patricia-tree interface does).
5. Update all RB-tree users accordingly.

XXX: Perhaps rename rb.h to rbtree.h, since cleaning-up..

1-3 address the PR/43488 by Jeremy Huddleston.

Passes RB-tree regression tests.
Reviewed by: matt@, christos@
2010-09-24 22:51:50 +00:00
rmind 380cb143e5 _cpuset_create: initialize size argument for sysctl call.
From PR/43837 by Sandy Snaman.
2010-09-21 02:03:29 +00:00
joerg cf54378eb8 Fix rb_tree_iterate to get the min/max element of the tree for the
RBSMALL case.
2010-04-30 13:58:09 +00:00
joerg 1ccd7466c9 Fix warnings for -DRBSMALL 2010-04-28 17:23:33 +00:00
mrg 26c2cb31ec define _NOREGNAMES before including <machine/asm.h>, like powerpc does.
from dennis.c.ferguson@gmail.com in PR#43022.
2010-03-22 02:22:32 +00:00
uwe 6fc217346b 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-12 09:12:34 +00:00
wiz 8f657e21de Fix typo (specifed -> specified). 2010-02-18 14:00:39 +00:00
joerg 85b087f151 Fix unaligned access in *_Final for SHA224/SHA256/SHA384.
Remaining part of PR 42273. Tested by snj.
2010-01-24 21:11:18 +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
pooka 817cd31541 Don't export __ffstab, it's used only in this routine. This gets
rid of one of those evil common symbols in the __ namespace.

reviewed by martin
2009-12-19 19:09:48 +00:00
dholland 5934d74fc2 Add two missing functions to the SYNOPSIS. From Silas Silva in PR 42415. 2009-12-14 06:06:22 +00:00
dholland d3b64ea665 Fix some ordering inconsistencies, noted by Silas Silva in PR 42415. 2009-12-14 06:03:23 +00:00
dholland f57683f0c7 Minor wording fix/clarification (sending -> copying) from Silas Silva
in PR 42414.
2009-12-14 05:47:30 +00:00
matt 8daf714e68 Merge from matt-nb5-mips64 2009-12-14 00:38:59 +00:00
wiz a7624277d5 Fix prop_dictionary_ensure_capacity signature, bump date.
From Silas Silva in PR 42413.
2009-12-05 10:17:17 +00:00
pooka 043ef3bc71 Use strong alias within the kernel namespace regardless of if we're
dealing with a hard or soft kernel (kernel linker doesn't support
weak symbols).
2009-11-26 07:40:34 +00:00
mbalmer 124961627e s/the the/the/ 2009-11-22 18:40:26 +00:00
dsl 8fee27ec00 Align to the destination buffer.
This probably costs 1 clock (on modern cpus) in the normal case.
But gives a big benefit when the destination is misaligned.
In particular when the source has the same misalignment - although
that may not be a gain on Nehalem!
Fixes PR/35535
2009-11-22 17:25:47 +00:00
dsl a6f75e27d4 Avoid doing two 'rep movs' operations. 2009-11-21 19:52:54 +00:00
skrll 88855871f7 New binutils seems to want end of functions marked. 2009-11-09 14:22:02 +00:00
joerg e51ee4c474 Fix unaligned access as reported in PR port-sparc/42273 2009-11-06 20:31:17 +00:00
joerg 0c6bb30e0c Improve portability and clarity by using uint8_t for the byte data
and expanding u_int to not depend on the !POSIX types.
2009-11-06 20:31:17 +00:00
bad 83bbd9b65d Back out previous. Builds for me and on autobuild cluster. 2009-10-11 12:13:45 +00:00
wiz 8b77bca163 Sort sections. New sentence, new line. 2009-10-11 01:55:28 +00:00
christos 44443bc42e make this compile again. 2009-10-10 21:27:46 +00:00
bad 133d41423c Commit changes to header files missed in my previous commit.
Implement prop_array_externalize_to_pref(), prop_array_copyin(),
prop_dictionary_externalize_to_pref() and prop_dictionary_copyin()
as discussed in the thread:
http://mail-index.netbsd.org/tech-kern/2009/07/29/msg005594.html

Add prototypes for prop_array_externalize_to_pref() and
prop_dictionary_externalize_to_pref().
2009-10-10 21:26:16 +00:00
bad 6947118ad3 Implement prop_array_externalize_to_pref(), prop_array_copyin(),
prop_dictionary_externalize_to_pref() and prop_dictionary_copyin()
as discussed in the thread:
http://mail-index.netbsd.org/tech-kern/2009/07/29/msg005594.html

Bump libprop shlib minor.
2009-10-10 18:06:53 +00:00
pooka fbd53556dc Wipe out the last vestiges of POOL_INIT with one swift stroke. In
most cases, use a proper constructor.  For proplib, give a local
equivalent of POOL_INIT for the kernel object implementation.  This
way the code structure can be preserved, and a local link set is
not hazardous anyway (unless proplib is split to several modules,
but that'll be the day).

tested by booting a kernel in qemu and compile-testing i386/ALL
2009-09-13 18:45:10 +00:00
skrll 2ebfea6c79 __strong_alias(foo,foo) is... pointless. 2009-08-21 14:31:02 +00:00
skrll b1aca4e8f5 Don't define weak aliases if _STANDALONE. 2009-08-21 09:40:51 +00:00
joerg 0c2684fa82 Fix a comment to not be self-referencing. 2009-08-05 15:04:15 +00:00
dsl d582bd909a In the misaligned case, xor the read word with the target pattern
before making the unwanted bytes non-zero.
Means that memchr(buf, 0xff) is no longer a special case.
2009-08-01 20:47:02 +00:00
dsl 170e962b6c Remove some long dependant instruction sequences (ie allow parallel code).
Since 'rep stos' will have a long setup time, avoid doing it more than once.
For misaligned (start address or length) write an unaligned word at both
ends of the buffer then aligned 'rep stosd' the middle.
Use the same code for bzero().
bzero.S is left being compiled for a while (empty) - to avoid issues with
duplicate symbols in libc.a after update builds.
2009-08-01 20:35:45 +00:00
drochner 8e73e87c59 remove stray semicolons, makes lint happy and lets the libc build proceed 2009-07-21 19:56:55 +00:00
joerg 11e383c9e8 Include limits.h. 2009-07-21 17:37:51 +00:00
joerg cb19415914 Make the constant u_longlong too, lint is just too stupid... 2009-07-21 17:14:12 +00:00
joerg 9a4b5deb76 Add explicit casts to make lint happy. 2009-07-21 16:10:48 +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
christos 28a175e482 Put back dsl's string changes, but fix memchr.S to use cmp (rather
than test) so that the condition code is set correctly (and fix the
comments: 0x10->0x01 and ^->&).   From Anon Ymous

XXX: There are similar comment errors in some of the other string code.

XXX: We really need a regression test that includes misaligned memory
with searches designed to catch corner cases such as searching for 0,
-1, etc, and search length limit violations.  Searching for 0 on
misaligned memory would have caught this problem.
2009-07-20 15:21:00 +00:00
christos 13763a400f Put back dsl's string changes, but fix memchr.S to use cmp so that the
condition code is set (and fix the comments 0x10->0x01). From Anon Ymous
We need a test for memchr(x, -1)...
2009-07-20 15:20:59 +00:00
christos 1621a90cd8 revert changes that made new kernels hang in ACPI detection 2009-07-19 23:45:29 +00:00
dsl 97943df1a9 A better memchr().
Always read aligned words, invalidating unwanted bytes in first word,
and checking that any match in the last word is before the buffer end.
No loops apart from the one through the data.
2009-07-18 18:06:56 +00:00
dsl 6bdd82f5c7 Shorten a dependency chain by using 'sbb, xor' (at a time when carry is set)
instead of 'mov, neg, dec'.
('mov, not' can't be used because it doesn't set the flags.)
2009-07-18 16:40:31 +00:00
dsl 957285f031 Remove a pointless _ALIGN_TEXT.
XXX ffs() ought to be a gcc inline asm.
2009-07-18 12:03:31 +00:00
dsl 6054206dee Replace with a version that:
1) doesn't do byte compares to find which byte matched
2) doesn't do byte compares if any top bits are set
3) doesn't use a loop when the input is misaligned
4) has less mispredicted branches
Passes regression tests and 'build.sh' doesn't explode (and more than usual).
2009-07-18 11:41:23 +00:00