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
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
1aea07a325
Add prop_array_t support to prop_kern.
2006-10-26 18:51:21 +00:00
thorpej
26d4f90430
- Add prop_dictionary_all_keys(). Takes a snapshot of a dictionary's
...
keys and returns them in an array. This effectively allows a caller
to mutate a dictionary while iterating over it (really, you iterate
over the array of keys instead of the dictionary itself).
- Add a slew of utility functions that make it more convenient (in some
circumstances, anyway) to get/set values in a dictionary.
2006-10-26 05:02:12 +00:00
he
4df50368d1
sysconf() returns long, which isn't neccessarily assignment-compatible
...
with size_t, as evidenced by sh5, so add an explicit cast.
2006-10-19 10:10:35 +00:00
martin
ab82117070
Backout size_t casts - lint has been fixed.
2006-10-18 19:15:46 +00:00
martin
ec465210f2
Sprinkle a few size_t casts to avoid conversion warnings.
2006-10-18 14:49:21 +00:00
martin
b6f68b3740
Add casts to apease lint.
2006-10-18 14:41:08 +00:00
thorpej
d9fd2cbcd7
Add a _PROP_ARG_UNUSED that expands to __unused on NetBSD and to nothing
...
everywhere else. Use it where Christos decided to use __unused in this
code.
2006-10-16 03:21:07 +00:00
christos
227b8ed7f9
delete junk I accidentally committed.
2006-10-15 19:11:58 +00:00
christos
dc579d1dcf
de-lint.
2006-10-15 19:08:48 +00:00
martin
637106d04b
Make it compile with -Wextra on big endian machines (at lest the #if in the
...
definition of struct rb_ndoe on the endianess is the only explanation I have
why nobody complained about this on i386 - I don't understand why it makes a
difference for gcc though)
2006-10-15 19:04:28 +00:00
wiz
35ca329954
Put macro argument right after macro, not in next line.
2006-10-14 07:30:16 +00:00
thorpej
3b2ca36caa
Appease our stupid lint.
2006-10-12 18:52:55 +00:00
thorpej
873293facc
Make prop_number_t handle both signed and unsigned numbers. The *integer*
...
routines now take int64_t arguments, and new *unsigned_integer* routines
take uint64_t arguments. See prop_number(3) for complete details.
2006-10-12 04:46:56 +00:00
thorpej
b5c9ebab95
Make this compile with -Wunused and handle the case where __predict_false()
...
is not defined (non-NetBSD environments).
2006-10-12 04:43:20 +00:00
thorpej
4c9ab4b0a8
_prop_object_fini(): Consume all of the arguments.
2006-10-12 04:41:51 +00:00
thorpej
1c717ab574
_prop_bool_free(): Consume all of the arguments.
2006-10-12 04:41:13 +00:00