wiz
3421828c26
Typos, wording.
2011-01-20 10:48:37 +00:00
wiz
7663d370d2
Add commas in enumerations.
2011-01-20 10:47:33 +00:00
wiz
bf94acf9f2
Sort sections.
2011-01-20 10:45:10 +00:00
wiz
22207ca7ad
New sentence, new line. Use Dq.
2011-01-20 10:44:42 +00:00
wiz
75b38350f7
Remove trailing whitespace.
2011-01-20 10:42:19 +00:00
bouyer
07247bb748
- Implement prop_{array,dictionary}_copyout(), based on
...
prop_{array,dictionary}_copyout_ioctl().
- Implement prop_{array,dictionary}_recv_syscall(), which
takes as parameter the pref we got from kernel and internalize it,
and unmaps the buffer prop_{array,dictionary}_copyout() mapped for us.
- add a prop_{array,dictionary}_send_syscall() for symetry, which is
an alias to prop_{array,dictionary}_externalize_to_pref()
Discussed on tech-kern@ and tech-userlevel@
2011-01-19 20:34:23 +00:00
joerg
13d8b2b89c
Move SPARC and SPARC64 to modern CPP. Update UPDATING note for this and
...
Alpha.
2011-01-17 18:11:09 +00:00
skrll
a673bf604d
Add an membar_ops.S - not used currently.
2011-01-17 07:40:21 +00:00
skrll
b095c54869
Tweak layout - no functional change.
2011-01-17 07:29:17 +00:00
skrll
0dec4d9c8e
Fix RCSId.
2011-01-16 12:07:26 +00:00
matt
cf88c3890b
Use END(foo) everywhere.
...
Make __cerror hidden.
Use non-PLT calls to __cerror.
Use assym.h when appropriate.
Use addi to adjust stack instead of loading it.
Add __RCSIDs
Force -D_NOREGNAMES for all .S files.
[this is all in preperation for secure plt support]
2011-01-15 07:31:11 +00:00
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
dsl
082a39150a
Delete files that are no longer needed.
2009-07-17 19:42:04 +00:00
dsl
53a0f227e6
Change all archs so that strchr.[cS] and strrchr.[cS] exist and generate
...
duplicate symbols for index() and rindex().
2009-07-17 19:37:57 +00:00
dsl
487c31f545
Add asm files for str(r)chr by copying the files for (r)index from
...
src/libc/arch/mips/string.
Add XLEAF() for index entry points.
2009-07-16 21:25:36 +00:00
dsl
5f3551c2f8
Add netbsd copyright.
...
Reorder a few instructions to interleave a dependency chain.
(I'm really not sure of the best order for those instructions!)
2009-07-12 21:24:21 +00:00
dsl
f9b60c2be5
Correct some comments
2009-07-12 21:00:54 +00:00
dsl
66df44074f
After alg 2 triggers, mask with ~x (alg 3) to ignore bytes with top bit set.
...
Then use bit scan to work out which byte is zero.
If the source is misaligned read the aligned word and make the unwanted
(low order) bytes non-zero.
Passes regression test - which probably tests just enough cases.
2009-07-11 11:57:47 +00:00
dsl
5acd65fcb7
Change comments about algorithms, 99.6% for random data isn't 'rare' in my book!
...
(The 'rare' case is any byte values 0x80-0xff.)
2009-07-11 08:48:51 +00:00
joerg
faf14618b6
Fix initialisation of SHA224.
2009-06-25 14:05:18 +00:00
tsutsui
ab35397894
- move #include <sys/param.h> inside #if defined(_KERNEL) section
...
where it's actually required
- add XXX comments that notes <sys/param.h> is required for vax memset(9)
2009-06-19 05:09:09 +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
martin
cd4c43c910
Fix copy&paste errors
2009-06-14 14:04:07 +00:00
joerg
94cd590d07
Provide fallback definitions of be[32|64]toh and htobe[32|64] for
...
systems without sys/endian.h.
2009-06-11 22:40:42 +00:00
christos
13573b1916
use memcpy for bitcount writes to the buffer to avoid type punning issues.
2009-06-11 20:43:00 +00:00
christos
46f23cedb2
- fix sha224 functions that used sha256 ctx, and add casts.
...
- fix sha224 function lengths.
- wrap long lines
- use NULL
- fix whitespace
- put all 224 functions together in the same spirit as 384
2009-06-11 20:35:29 +00:00
joerg
02c4298092
KNF
2009-06-11 19:05:17 +00:00
joerg
8c33577af1
De-uglify:
...
- drop useless asserts
- use uintXX_t directly
- use NULL
2009-06-11 19:02:04 +00:00
joerg
c8f28eff97
Simplify by using sys/endian.h functions. Fixes Big Endian case for SHA2.
2009-06-11 18:46:37 +00:00
yamt
303f5b9ebd
fix comment typos.
2009-06-07 03:12:40 +00:00
yamt
502e0d2fd8
fix a comment
2009-05-26 22:39:15 +00:00
yamt
d8e7c6e522
rpst_iterate_next: remove an unnecessary assignment.
2009-05-26 22:38:51 +00:00
yamt
0681720282
rpst_iterate_first: fix a bug which causes unnecessary scan.
2009-05-26 22:38:18 +00:00
yamt
87a9663c51
sprinkle some inline
2009-05-26 22:37:50 +00:00
joerg
09d5d44150
Add SHA224 implementation to libc.
...
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.
2009-05-26 08:04:11 +00:00
yamt
5e092cbdd7
maintain parent node pointers to speed up search and node removal.
2009-05-25 14:54:06 +00:00
yamt
03578bbe5a
add comments.
2009-05-25 14:16:54 +00:00
yamt
89c1ff5632
rpst_insert_node1: fix an inverted condition.
2009-05-22 11:38:05 +00:00
christos
f1dbbfab6d
Set endptr if the base is not supported. The opengroup spec does not special
...
case this condition. Note: glibc has the same problem.
2009-05-20 22:03:29 +00:00
yamt
89ff3f9c4f
- fix various bugs in the iteration code.
...
- add assertions.
- unittest: more tests. verify query results by comparing with linear search.
2009-05-20 10:56:29 +00:00
yamt
0a13e5f80a
don't include sys/cdefs.h twice.
2009-05-19 22:48:19 +00:00
yamt
1a764d8c67
radix priority search tree.
2009-05-19 12:39:56 +00:00
wiz
e923b399de
New sentence, new line.
2009-05-13 22:31:59 +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
rmind
79a49ca39e
- Add kcpuset_iszero().
...
- Fix kcpuset_match().
2009-04-25 19:38:25 +00:00
skrll
0e68e44118
Only include <assert.h> and <string.h> if !_KERNEL && !_STANDALONE
2009-04-25 12:20:48 +00:00
haad
8a85d2e387
Check if pd is not NULL before we try to lock rw lock associated with it.
...
This fixes proplib crash when NULL is passed to prop_dictionary_get as a
dictionary.
2009-04-14 02:53:41 +00:00
joerg
1491f958e9
Improve markup.
2009-04-09 01:18:17 +00:00
enami
09fcc8b316
So that profile kernel runs again,
...
- Adjust the size of functions used to patch.
- Fix the jump offset of mcount call when patching functions.
Approved by Andrew Doran.
2009-04-02 00:19:02 +00:00
haad
0c9b734826
Fix crash where user was able to crash proplib with trying to internalize
...
bad xml file with non-existing data type e.g. <number>.
Problem is that poi is not NULL even in case that we haven't find any match
in data type name. We need to check if poi->poi_tag is not NULL before
calling poi->poi_intern function which is non existing case NULL and will
cause crash.
2009-03-30 07:42:51 +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
he
d8d70d1b63
Actually... We need libkern.h also under _STANDALONE, so that
...
_DIAGASSERT gets defined. Fixes the mvmeppc libsa build.
2009-03-19 08:39:54 +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
he
245ee9af71
Add local declarations of bcmp() and bzero() because libkern.h no longer
...
provides those declarations.
It's possible that these can be removed later when we find out whether
these functions are actually needed in the kernel, but meanwhile, this
allows alpha, hp700 and the powerpc ports (who all build these as part
of libkern) to complete their builds.
2009-03-17 23:42:45 +00:00
cegger
962766853c
ansify function definitions
2009-03-16 05:59:21 +00:00
cegger
103c3602a2
ansify function definitions
2009-03-15 22:31:12 +00:00
cegger
ebceae53e5
ansify function definitions
2009-03-15 22:20:09 +00:00
rmind
9c30a053ea
- Add kcpuset_fill(), kcpuset_set() and kcpuset_match().
...
- KNF while here.
2009-03-15 20:08:43 +00:00
abs
b17f6f5834
Revert test from MACHINE_ARCH to MACHINE, as this can be called with
...
with MACHINE_ARCH=sparc MACHINE=sparc64 when building 32bit kernels for
ultrasparc hardware. Picked up by nakayama@ - thanks.
Add a comment explaining this odd case
2009-03-13 19:16:46 +00:00
nakayama
fd33b05ec2
Fix typo. (s/_HARKDERNEL/_HARDKERNEL/)
2009-03-13 16:40:22 +00:00
abs
f681b265bc
Prefer MACHINE_ARCH to MACHINE in some tests
2009-03-12 17:16:58 +00:00
he
91cab67b08
Follow up the powerpc side by using %rN instead of rN for registers.
2009-03-08 12:08:19 +00:00
christos
512ce49852
make this work with pcc. The previous construct is not valid c99.
2009-02-14 19:23:18 +00:00
joerg
81895b4b5d
0:0 is the adress x86emu_call pushes on the stack, so check for it here
...
explicitly to stop processing again. As this is the start of the IDT,
normal code is not likely to override it.
2009-02-03 19:26:29 +00:00
joerg
89b1aba64b
Fix three bugs in the instruction decoder:
...
(1) Mode 5 for SIB uses EBP as base, not ESP.
(2) RM register mode 5 needs a segment override for SS when not using an
immediate in 32bit mode.
(3) Same for mode 6 in 16bit mode.
From anon ymous.
2009-02-03 19:14:52 +00:00
skrll
5dbd6a69ca
Make sure _atomic_cas_fn is initialised for "weirdo environments" such
...
as ramdisks where the constructor doesn't get called.
Fixes ifconfig in hp700 sysinst.
OK'ed by ad.
2009-01-30 14:29:44 +00:00
lukem
114b3fb343
sign-compare fix
2009-01-25 14:22:52 +00:00
cyber
23dc01f7e9
Properly handle empty data nodes (such as generated by Apple's
...
plist editor). They are in the form of <data></data>, whereas the
original code path only checked for empty being <data/>.
This causes an assert to be triggered when trying to access the node's
content.
Patch reviewed by thorpej.
2009-01-25 06:59:35 +00:00
lukem
c5eb4ab601
fix -Wsign-compare issues
2009-01-18 11:56:51 +00:00
pooka
d21961207f
Include sys/param.h in the kernel to make the vax properly pick up
...
memset. Otherwise vax/macros.h doesn't get included and the usual
lossage ensues.
(I bet you saw that one coming)
2009-01-14 21:33:22 +00:00
pooka
654753c2e1
include sys/param.h for _HARDKERNEL instead of homegrown def.
2009-01-12 02:53:29 +00:00
pooka
132ffc213b
Include userland version of atomic cas routines in librump.
...
(the kernel version disables interrupts and therefore can't be used)
2009-01-10 23:36:22 +00:00
mjf
a15a784800
The .if conditional crosses a line boundary, so add a backslash.
...
This fixes the kernel build for hppa.
2009-01-06 13:23:31 +00:00
pooka
1ce853369b
Temporarily define MCOUNT as a dummy for _RUMPKERNEL to allow build
...
to proceed - the MD macros use processor instructions unavailable
to userspace and should/could be provided as interfaces.
2009-01-05 18:06:57 +00:00
pooka
69885c98a3
Do not use lockpatches with _RUMPKERNEL (non-PIC ... and pointless).
2009-01-04 18:46:16 +00:00
pooka
58302d6770
Opt for libc versions in case of _KERNEL && !_RUMPKERNEL.
...
(kernel version uses sti/cli and is not PIC)
2009-01-04 18:21:38 +00:00
pooka
e77a29de65
allow inclusion of atomic ops in librump
2009-01-04 17:54:29 +00:00
pooka
b6e6025d0d
Get rid of locks with static initializers using once and atomic ops.
...
This makes proplib simplelock-free.
2009-01-03 18:31:33 +00:00
ad
30fd42e845
PR kern/40213 my i386 machine can't boot because of tsc
...
- Patch in atomic_cas_64() twice. The first patch is early and makes it
the MP-atomic version available if we have cmpxchg8b. The second patch
strips the lock prefix if ncpu==1.
- Fix the i486 atomic_cas_64() to not unconditionally enable interrupts.
2008-12-19 11:21:24 +00:00
christos
2d2593ab23
We don't need this for _STANDALONE, and it needs snprintf to work.
2008-12-17 16:02:27 +00:00
christos
cec60a5890
share with kernel; replaces bitmask_snprintf which was very broken:
...
- subtracted one from len without checking if len was 0
- checked for a minimum buffer size
- arguments order was inconsistent with other printf like functions
- no way to tell if it overflowed
2008-12-16 22:33:11 +00:00
ad
58a45c6ffe
Avoid conflicts with ZFS.
2008-12-05 13:11:41 +00:00
haad
e51aea320a
Fix two race conditions in proplib library. In prop_dictionary and prop_number
...
there was small window in which was entry left in rb tree with reference
count 0 which lead to rb tree coruption when another thread picked this up
before it was released.
Add 2 new members to the prop_object_t which are used for locking/unlocking
rb tree guard mutex.
Ok by joerg@, core@, thorpej@
2008-11-30 00:17:07 +00:00
jnemeth
e971cab0ab
fix build in _STANDALONE case
2008-11-21 03:23:43 +00:00
matt
4de7478cea
Make lint happy (stupid lint).
2008-11-21 01:58:41 +00:00
matt
0ad7281825
Add new ptree (Patricia / RADIX tree) implementation to NetBSD.
2008-11-20 23:50:08 +00:00
matt
4a0de1478c
Add an atomic_cas_8 which uses ldrex/strex.
2008-11-18 15:22:56 +00:00
jnemeth
ef266cee6b
oops, converted some #ifndef into #if defined...
2008-11-17 10:21:30 +00:00
jnemeth
3e8ff10fa3
Convert all #ifdef _KERNEL to #if defined (_KERNEL) || defined(_STANDALONE)
...
from Bernd Ernesti on source-changes@. This fixes a build breakage
with i386/amd64 bootblocks.
2008-11-17 09:56:48 +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
joerg
fd06786f0c
Raise correct interrupt on division errors.
2008-10-27 00:20:22 +00:00
mrg
4c0ca913b1
look for COMMON_MACHINE_ARCH before MACHINE_ARCH or MACHINE_CPU.
2008-10-26 07:22:50 +00:00
jmcneill
48e69717fb
Emulate cpuid instruction.
2008-10-25 19:01:18 +00:00
ad
ab62b04dc5
Allow atomic ops to be built as part of libpthread.
2008-09-29 08:43:00 +00:00
haad
185aec71fe
Add prop_array_add_int* and prop_array_add_uint* functions. These functions
...
can be used to append specified type to the end of prop_array_t.
Ok'ed by @joerg.
2008-09-11 13:15:13 +00:00
joerg
3ae583451f
Prepare use of strtoull, strtoumax and strtoimax in tools/compat by
...
including nbtool_config.h.
2008-09-10 18:08:58 +00:00
matt
331139bd61
Properly deal with LIBC namespace issues.
2008-08-22 03:00:02 +00:00
dogcow
e74fc2a17d
Unbork cross-builds in tools/compat/
2008-08-22 01:48:03 +00:00
oster
5577c7fceb
Fix build breakage by adding appropriate #includes.
...
Patch from joerg@
2008-08-20 19:58:33 +00:00
joerg
245e086321
Unify the implementation of strto{l,ul,ll,ull,imax,umax,q,uq} into one
...
version for signed and one version for unsigned data types.
Add a check for supported bases and set errno (userland) or panic
(kernel, libsa) otherwise.
Make strto{ll,ull,imax,umax} normal symbols and just keep the underscore
versions as strong alias.
Obtained from DragonFly, based on the wide char version from Citrus.
Reviewed by christos@
2008-08-20 12:42:26 +00:00
matt
c7572a70dd
Add assembly versions of atomic ops with ldrex/strex
2008-08-16 07:12:39 +00:00
skrll
d8054af5f4
Provide assembly _atomic_cas_up() as the compiler cannot be trusted to
...
generate fully restartable code sequences.
2008-08-11 21:54:51 +00:00
christos
ecd6bc7086
typo in comment and white-space fixes mostly from Stathis Kamperis
2008-08-11 05:54:21 +00:00
thorpej
4ce0dc3a15
Fix an issue introduced with the prop_stack change: It's not a good idea to
...
return a 3-value enum from a function declared to return bool. This broke
the recurse case for prop_object_equals(). Instead, declare the object type
equals routine to return a _prop_object_equals_rv_t.
Give the same treatment to the object type free routines: declare them to
return a _prop_object_free_rv_t, and consistently check those return values
againt the enum type.
Tidy up some whitespace while we're here.
2008-08-03 04:00:12 +00:00
thorpej
1d49730690
Fix a typo.
2008-08-03 03:11:28 +00:00
dholland
154fe9b1d9
Don't convert cpuid_t through int while testing it for being in range.
...
(Might truncate it, for one thing. Also, if the shift result is < 0 the
demons have already flown out of our nose.)
Fixes some -Wsign-compare warnings.
2008-07-27 05:47:56 +00:00
rmind
9dfcfe5db5
Add few KASSERTs.
2008-07-14 01:07:39 +00:00
matt
94bc3febe6
Changes to make lint STFU.
2008-06-30 20:54:19 +00:00
matt
5a4f0c6b2b
Change tree op members/typedefs to rbto_compare_* from rb_compare_*
2008-06-30 20:14:09 +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
ad
d6c32b235a
+atomic_cas_*_ni
2008-06-23 10:33:52 +00:00
ad
7a21650601
Install manual pages for the atomic ops.
2008-06-23 10:22:40 +00:00
he
d6e5879de3
Be consistent in how cpuset_nentries is computed in the kernel and
...
in user-land. This fixes the user-land part. Now "cpuctl identify 0"
gives a result instead of getting EINVAL from the set-affinity syscall.
2008-06-22 21:49:31 +00:00
rmind
54ccd4a6fa
kcpuset_isset: remove if-check. It is not reasonable for kernel,
...
saves few cycles, and it is better for CPU cache.
2008-06-22 03:24:31 +00:00
christos
dfeefcdcb8
Separate cpuset and kcpuset, and only use the bits in userland. Requested
...
by yamt
2008-06-22 00:05:09 +00:00
thorpej
e0e4b153c9
_prop_rb_tree_insert_node() now returns true/false to indicate if the
...
insertion succeeded. Update existing usage that arranges for insertions
to always succeed to assert that they do.
2008-06-17 21:29:47 +00:00
christos
ddbb9c58dd
We don't need any of this in standalone mode.
2008-06-16 13:02:08 +00:00
christos
04608dd0bf
little more lint
2008-06-16 02:53:32 +00:00
christos
834ef62012
make lint happy
2008-06-16 02:30:03 +00:00
rmind
481ae1556f
- Add general cpuset macros.
...
- Use kcpuset name for kernel-only functions.
- Use cpuid_t to specify CPU ID.
- Unify all cpuset users.
API is expected to be stable now.
2008-06-16 01:41:20 +00:00
rmind
7d902495c2
cpuset_create: check the return value of calloc().
2008-06-15 23:45:51 +00:00
rmind
8f8073542b
- cpuset_create: pass correct argument to sysctl(3).
...
- Constify few variables.
2008-06-15 23:41:39 +00:00
christos
b46ed27e5c
Hook into sys
2008-06-15 20:35:11 +00:00
christos
849fbad5b6
cpuset related functions, shared between the kernel and userland.
2008-06-15 20:33:50 +00:00
wiz
46c5658a32
Sort SEE ALSO.
2008-06-04 07:46:48 +00:00
haad
9b09c481c8
Add prop_array_util functions to proplib. This code is copied/changed
...
prop_dictionary_util.
From manual page
The prop_array_util family of functions are provided to make getting and
setting values in arrays more convenient in some applications.
OK by mjf@ and freza@.
2008-06-03 20:18:24 +00:00
haad
b95cd5a6fe
Fix typo.
...
OK by martin@.
2008-06-02 09:27:04 +00:00
chs
6740bb5440
enable profiling of assembly functions.
2008-05-25 15:56:11 +00:00
yamt
75b1a2ec18
fix recursive read-lock bugs found by lockdebug and reported
...
by Geoff C. Wing and others. ok'ed by Jason Thorpe.
an earlier version was tested by Sverre Froyen.
PR/38732 from oster@.
2008-05-24 14:32:48 +00:00
yamt
6787eedebd
revert the recent "use trylock to hide locking errors" changes
...
and their associated changes, in particular, the following versions.
prop_array.c 1.13-1.16
prop_dictionary.c 1.25-1.28
prop_object_impl.h 1.21-1.25
ok'ed by core@.
2008-05-24 14:24:04 +00:00
dyoung
848e7ffe8c
In prop_data_create_data(blob, len), if len == 0, allocate no memory
...
for blob, and leave pd_mutable set to NULL. In this way, avoid
tripping over the assertion in prop_data_data_nocopy().
2008-05-15 21:23:33 +00:00
tron
e70ab693a2
Change the argument of _PROP_RWLOCK_TRYRDLOCK() to the lock member and not
...
its address to be consistent with all the other macros.
2008-05-07 10:16:41 +00:00
tron
2916b940f8
Replace _prop_rwlock_tryrdlock() by a macro _PROP_RWLOCK_TRYRDLOCK().
...
This avoids build failures in stand alone binaries (e.g. bootloaders)
where there is no "pa_rwlock" member in the "_prop_array" structure.
2008-05-07 10:01:50 +00:00
simonb
4ec02db9e9
Fix a "#define<tab><tab>" that crept in to previous.
2008-05-07 05:40:01 +00:00
xtraeme
35fe7cdcf1
prop_object_iterator_next() and prop_object_iterator_reset() were
...
acquiring the rwlock recursively in some paths.
Introduce _prop_rwlock_tryrdlock() and use it in these functions, so
that the rwlock is *always* acquired once, while here add some
_PROP_RWLOCK_OWNED asserts to verify.
This definitely fixes the "locking against myself" panics.
2008-05-06 22:57:26 +00:00
xtraeme
d69a8a8939
Xref prop_dictionary_util(3).
2008-05-06 17:23:38 +00:00
xtraeme
771a05b730
Do not acquire the rwlock recursively in prop_{array,dictionary}_iterator_reset()
...
when prop_{array,dictionary}_copyout_ioctl() is called.
Introduce _PROP_RWLOCK_OWNED() which is a KASSERT(rw_lock_held(lock))
and use it in those two functions, also acquire the rwlock in other
places where it is required now.
This fixes a LOCKDEBUG panic "locking against myself", as reported by
Geoff C. Wing in current-users@.
2008-05-06 13:52:51 +00:00
yamt
78eb84d14c
whitespace.
2008-05-03 05:43:05 +00:00
yamt
9093441576
rename END to ENDLABEL. i'll use END for other purpose. ok by Andrew Doran.
2008-05-03 05:40:21 +00:00
martin
11a6dbe728
Convert TNF licenses to new 2 clause variant
2008-04-30 13:10:46 +00:00
tsutsui
2be642537b
Make this compile (missing register prefix).
2008-04-30 09:59:42 +00:00
ad
9ba64b51be
Assembly _atomic_cas_up() for mips. PR lib/38482.
2008-04-30 00:17:34 +00:00
scw
4e2c4c42b4
Implement _atomic_cas_up() in assembly code as the compiler cannot be
...
trusted to generate fully restartable code sequences.
Addresses lib/38482 for ARM and m68000.
2008-04-29 20:57:50 +00:00
martin
3028e483e4
Convert to new 2 clause license
2008-04-29 06:53:00 +00:00
martin
ce099b4099
Remove clause 3 and 4 from TNF licenses
2008-04-28 20:22:51 +00:00
nakayama
99adca9efa
Use %xcc for 64-bit comparisons.
2008-04-09 12:49:05 +00:00
tsutsui
c3b0f346ec
Fix pasto.
2008-04-06 04:01:56 +00:00
tsutsui
7dfcdee2a2
Use .c version atomic ops for m68010.
2008-04-05 22:28:36 +00:00
he
73e50f111b
Do like the non-__OPTIMIZE_SIZE__ variant, and compile memset() unless
...
BZERO is defined, instead of requiring MEMSET to be defined.
Avoids violating the principle of least astonishment, and also fixes
the build of stand/ and kernels for (at least) alpha.
2008-03-29 14:03:22 +00:00
he
a58a2cddc0
Make the size-optimized memset() actually conform to the man page
...
by returning the first arg.
2008-03-29 12:25:32 +00:00
apb
f5c2801052
Add /* __OPTIMIZE_SIZE__ */ comments on relevant #else and #endif lines.
...
Also change some #ifdef to #if defined() for consistency.
2008-03-26 06:19:36 +00:00
christos
9f2bc34fb9
bcopy does not return ptr.
2008-03-25 23:23:34 +00:00
christos
93f951ce0d
fix #ifdefs for BCOPY
2008-03-25 23:16:29 +00:00
christos
985a3d11e8
add bcopy and bzero for the benefit of loadfile.
2008-03-25 23:13:15 +00:00
christos
9e32ad04aa
add __OPTIMIZE_SIZE__ versions.
2008-03-25 21:22:37 +00:00
kochi
2ead1ed5c4
Add atomic_cas_foo_ni alias.
2008-03-24 14:59:30 +00:00
kochi
473f1b48ee
Add ia64 MI atomic ops.
...
(Not tested at all, just for reference)
2008-03-20 07:10:31 +00:00
ad
b0f548e27b
oops
2008-03-07 02:18:34 +00:00
ad
bb9b5eb92c
In libc, use the MI atomic_cas(). The assembly version is faster, but I
...
think there are PIC issues with it and I don't have a way to fix and test.
2008-03-07 01:18:54 +00:00
phx
e6d6e05cb1
Including assym.h is not needed and will break the build, because it does not
...
exist that early. Deleted it.
Approved by garbled.
2008-03-06 21:17:17 +00:00
cube
5b25d80ca0
Actually implement prop_dictionary_make_immutable. OK'd by thorpej@.
2008-03-05 07:47:09 +00:00
lukem
8346a6360d
Use mkstemp() + fchmod() instead of mktemp(), since the latter
...
results in linker warnings.
2008-02-23 01:26:01 +00:00
garbled
2ba84f0f9e
Add tuned powerpc assembler written by IBM and released under a 3-clause
...
BSD Lisc as part of the perflib project.
http://sourceforge.net/projects/ppcperflib/
Tested the new functions with microbenchmarks on a number of different
CPU types, and found that most cpus either benefited greatly, or were
unaffected. Primarily G4 CPU's were unaffected, and all others showed
speedups. My 7044 (POWER3) went from a 70.6 to a 73.2 (thats good) in
bytebench with a complete release built with these. Also passed
regression tests.
2008-02-21 17:35:47 +00:00
apb
267197ec1e
For all files under src/common, as well as related man pages under
...
src/lib/libc, or related headers under src/sys/sys: change u_intNN_t to
uintNN_t.
2008-02-16 17:37:13 +00:00
apb
cf01a0f8c8
C99 is no longer "very recent". Adjust a comment accordingly, and
...
start using uintNN_t instead of u_intNN_t in the definitions of
sha2_{byte,word32,word64}.
2008-02-16 17:15:32 +00:00
dogcow
26a84bff72
add missing %. (hi matt!)
2008-02-13 03:55:54 +00:00
ad
2d0314d313
Always enable memory barriers in userspace, otherwise libpthread won't
...
work correctly on MP systems.
2008-02-12 18:40:28 +00:00
ad
b86eac67c4
Correct a dodgy alias.
2008-02-12 18:35:38 +00:00
matt
360e0475e3
Use %rN as all new code is supposed to.
2008-02-12 07:58:01 +00:00
matt
131790b421
Fix pthread problem. (export membar* to userland)
2008-02-12 07:35:04 +00:00
ad
eff625dc0e
Put back a __predict_false removed during testing and fix atomic_cas_mp().
2008-02-11 23:48:23 +00:00
ad
a3fb849dfc
Clarify what membar_enter/membar_exit provide.
2008-02-11 15:12:07 +00:00
ad
1b2aff1f03
Note many of the restrictions, and clarify the section on global
...
visibility.
2008-02-11 15:01:24 +00:00
ad
b3193dc791
Only build atomic ops for libkern/libc.
2008-02-11 14:21:11 +00:00
ad
b5b3e9fb51
Enable the atomic ops in userspace.
2008-02-10 18:45:40 +00:00
ad
12190eee54
Fix name of the init function.
2008-02-10 13:41:02 +00:00
ad
646fc3baa9
Add atomic_cas_foo_ni().
2008-02-10 13:40:31 +00:00
ad
cc655ebd16
Add atomic_cas_foo_ni().
2008-02-10 13:25:46 +00:00
ad
a180c2a1f7
membar_enter was doing the wrong thing. For x86 we can alias:
...
membar_enter -> membar_consumer
membar_exit -> membar_producer
2008-02-09 13:42:21 +00:00
ad
d418b9fe8b
Some glue for atomic ops in userspace.
2008-02-09 13:30:54 +00:00
matt
350555cd1f
Add the .C versions for the atomic ops.
2008-02-03 07:46:38 +00:00
nakayama
da1555e6a7
Search files in arch/sparc64/atomic before arch/sparc/atomic in case of
...
sparc64 32-bit kernel.
Make sparc64 32-bit kernel works again.
2008-01-22 12:34:58 +00:00
nakayama
b4ed00a22d
Use __arch64__ instead of __sparc64__, since -D__sparc64__ is appended
...
to build option of sparc64 32-bit kernel.
2008-01-22 12:32:07 +00:00
christos
428727f47f
PR/37838: Stathis Kamperis: proplib documentation enhancements
2008-01-21 22:15:03 +00:00
ad
607fd8ae21
atomic_and/atomic_or don't operate on pointers, so don't copy the return
...
to a0. From thorpej@.
2008-01-12 17:29:03 +00:00
ad
f6c08490ef
Don't put membar in the delay slot. thorpej@ says it may be problematic.
2008-01-12 17:27:28 +00:00
simonb
d8de5b102b
Remove support for NetBSD/pc532.
2008-01-09 11:25:58 +00:00
martin
ececdb7913
When passing char (or unsigned char) arguments as int, assign them to a
...
temporary char (resp. unsigned char) before comparing, to force truncation
to the proper domain. This makes the coresponding regression tests succeed.
2008-01-08 21:57:06 +00:00
ad
9324487752
Include sys/simplelock.h in prop_object_impl.h.
2008-01-05 01:15:02 +00:00
mjf
83535b7f11
Nuke prop_dictionary_capacity, there was no implementation for it.
...
No objections on tech-kern.
2008-01-05 00:23:46 +00:00
xtraeme
0f546319ca
sys/simplelock.h is required now.
2008-01-04 21:33:17 +00:00
mrg
97e461c633
- provide 32 bit versions of the sparc v9 atomic ops.
...
- use them on sparc64 32 bit kernels.
fixes issues on 32 bit sparc64 kernels that were using sparc v8 ops.
tested by rjs@.
2007-12-22 23:19:40 +00:00
tsutsui
3e9910f3b8
Disable a sanity check output buffer != NULL in _STANDALONE case.
...
Some kernels are loaded at address 0x0 by bootloaders and
output buffer address could be zero in such case.
Fixes "read text" errors on loading install floppy of NetBSD/news68k 4.0,
reported by KIYOHARA Takashi on port-news68k.
2007-12-22 00:52:03 +00:00
joerg
45f2572a92
Add virtual i8254 for x86emu.
2007-12-21 17:45:50 +00:00
ad
e16a661bf3
- Make __cpu_simple_lock and similar real functions and patch at runtime.
...
- Remove old x86 atomic ops.
- Drop text alignment back to 16 on i386 (really, this time).
- Minor cleanup.
2007-12-20 23:46:10 +00:00
ad
163e94a67e
64-bit atomic ops for i386.
2007-12-20 01:27:24 +00:00
joerg
823959a6b2
Refactor interrupt dispatching.
2007-12-13 16:41:59 +00:00
ad
9e9c09c30a
Fix _atomic_cas_64. Noted by bouyer@.
2007-12-10 14:13:12 +00:00
ad
164992f1a5
Add missing strong aliases.
2007-12-09 17:38:51 +00:00
ad
6260baac6e
Add missing strong aliases; sure I did this before?
2007-12-09 17:33:56 +00:00