Commit Graph

200 Commits

Author SHA1 Message Date
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
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