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
ad
1206a8cb5c
Add some goo to make this work in userspace.
2007-12-08 22:53:33 +00:00
ad
96f5ce86b9
objdump -d to the rescue. I think this should work now.
2007-12-08 22:42:46 +00:00
joerg
e982f87297
Expect that src/common/include is in include path and use x86emu/* for
...
the includes.
2007-12-04 17:32:22 +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
joerg
00487473b9
Move x86emu's include files to src/common/include/x86emu.
2007-12-01 20:14:09 +00:00
ad
234aa6237e
Memory barriers for MIPS.
2007-11-30 22:50:44 +00:00
joerg
22ac6fc0fb
Add x86emu for in-kernel use. This is a 386 real mode emulator that can
...
be used to run ROM code inside the kernel without having to setup vm86
and without having a x86 CPU at hand.
This code was originally written by SciTech and released under MIT/X11
license for XFree86. It has been refactored be less than half of the
original size, the compiled code being around a third of the former
size. The interface was changed to be a real library, e.g. no global
variables are used.
2007-11-30 20:02:49 +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
mjf
c05cd035e3
Fix typo
2007-11-06 11:41:35 +00:00
christos
2f1af36850
use the ffs32 from bitops.h which is faster
2007-11-02 21:05:06 +00:00
xtraeme
d7ef1da684
Fix a typo that has been there forever. prop_dictionary_set:
...
the object will be retained by the dictionary not array.
2007-10-11 03:10:28 +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
xtraeme
ed504658f5
tyop: guaranty -> guarantee.
2007-08-30 19:12:32 +00:00
joerg
4deb593145
Avoid using unbound amount of stack frames in prop_object_equal
...
by using a dynamic stack as well. Reorder arguments for the internalizer
as the iteration is always present and should go before possibly
NULL arguments.
Reviewed by mjf@ and adrianp@
2007-08-30 12:23:53 +00:00
pavel
c0f560c80e
struct plistref does not reference other proplib data types, so split it
...
in its own header file to be included by dkio.h. Fixes breakage due to
pollution from proplib.h in programs which include ioctl.h. Tested and OK
by dogcow@.
2007-08-17 11:05:03 +00:00
joerg
e835604c26
libprop is currently using a recursive parser. While this is fine for
...
userland, deeply nested arrays and dictionaries can easily overflow
the kernel stack and thereby force a panic.
Fix the internalizer and prop_object_release to use a separate call
stack and alter the dictionary and array handling to not recurse on
the C stack. The default stack has an inline depth of 16 elements,
which should keep the overhead reasonable.
This issue was found by Pavel Cahyna and Jachym Holecek.
Additionally add a limit for prop_object_copyin_ioctl to prevent user
programs from temporary allocating unbound amount of kernel memory.
Allow malloc to fail so that tight loops of userland processes can't
force panics by exhausting the kernel map.
Tested with the sample exploit of Jachym, his test suite and reviewed
by himself (initial patch), Christos Zoulas and Jason Thorpe.
2007-08-16 21:44:06 +00:00
thorpej
04377267cc
boolean_t -> bool
...
TRUE -> true
FALSE -> false
2007-08-16 16:28:17 +00:00
ad
79ba10e06a
lockmgr > rwlock
2007-07-29 11:25:01 +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
joerg
22549e91c8
Consider '\r' to be white space. Discussed with and also kept as local
...
change by freza. With this change, DOS style line endings work.
2007-07-17 20:36:38 +00:00
joerg
39dccbf2f1
prop_array_internalize and prop_dictionary_internalize are basically the
...
same code. Refactor it into _prop_generic_internalize, which gets passed
the second-level tag.
2007-07-16 19:20:17 +00:00
degroote
be58d0f67a
Fix the prototyp of prop_dictionary_set_keysym in the DESCRIPTION part
2007-07-07 19:03:52 +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
xtraeme
5386acb4ac
Xref prop_dictionary_util(3) and prop_send_ioctl(3).
2007-06-21 12:02:31 +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
xtraeme
d4be10ac51
Typo: prop_dictionary_receive_ioctl -> prop_dictionary_recv_ioctl.
...
Bump date.
2007-05-10 22:15:47 +00:00
xtraeme
6af752323b
It's "Copy a dictionary" not "Copy an dictionary". preempt wiz and
...
bump date.
2007-04-28 06:01:13 +00:00
yamt
1e244571b1
correct a section number.
2007-04-22 11:27:25 +00:00
yamt
8ad48713da
correct function names.
2007-04-22 11:23:29 +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
ad
59d979c5f1
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
...
the pool's lock.
2007-03-12 18:18:22 +00:00
dillo
3827e4b3e7
Fix white space skipping before closing tag when padding characters
...
are present.
Okayed by thorpej.
2007-03-04 22:31:43 +00:00
freza
d7d800dc0c
Add prop_data_size() to SYNOPSIS.
2007-02-22 22:49:29 +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
mjf
118bbc15f5
Fix typo.
2007-02-02 19:35:59 +00:00
christos
4361f207b8
remove bogus (void)&var; from Anon Ymous
2006-12-18 00:41:54 +00:00
cube
bb54157110
Add a comment to explain how the value for uaddr is chosen. Maybe uvm_mmap
...
should do that instead of sys_mmap...
2006-11-28 18:36:26 +00:00
cube
00fbe2b725
In _prop_object_copyout_ioctl, uaddr was not initialised, although it is
...
used by uvm_mmap() as a hint for the virtual address to map memory to. As
a consequence, it tended to fail a lot on some architectures.
We cannot use 0, so instead use the value that would have been used if we
were calling mmap(2) with 0 as the first argument.
Fixes PR#34639 by xtraeme@.
2006-11-28 18:30:47 +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