Commit Graph

412 Commits

Author SHA1 Message Date
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
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
thorpej
82fd1ebbaa - Move strtoll.c and strtoull.c from libc/stdlib to common/libc/stdlib.
- Add strtoll.c and strtoull.c to libkern.
2006-10-08 03:14:55 +00:00
dbj
a8e91bcbd6 fix build issue for !_KERNEL
fixes pr lib/34708, credit Henning Petersen via t-online.de
2006-10-04 09:43:45 +00:00
thorpej
eb2acb850f - Add a reader-writer lock to array and dictionary objects that ensures that
the data structure is internally consistent in the face of multiple threads
  accessing it concurrently.  This is not designed to provide application-
  level semantic consistency; applications are responsible for that locking
  protocol should it be necessary.
- Rename _PROP_MUTEX_DECL() to _PROP_MUTEX_DECL_STATIC().
2006-10-03 15:45:04 +00:00
xtraeme
c54463e668 typos: prop_stringy_* -> prop_string_* 2006-09-27 19:24:28 +00:00
dogcow
9c80a2830c unbreak kernel builds from the last fix 2006-09-22 23:58:36 +00:00
dbj
727299862c protect include of sys/mman.h when building _KERNEL or _STANDALONE 2006-09-22 19:46:21 +00:00
thorpej
6cf1ffe998 Alter the protocol impemented by prop_kern to allow for bi-directional
plist-based messages and to eliminate looping previously required to
receive a plist from the kernel:

- prop_dictionary_copyin_ioctl() and prop_dictionary_copyout_ioctl()
  now take the cmd argument rather than the file open flag.  The
  read-ness or write-ness of an ioctl command is checked by these
  routines to ensure that information is being passed to/from the
  userland component properly.

- prop_dictionary_copyout_ioctl() now allocates the memory for the
  XML plist on behalf of the userland component by way of uvm_mmap().
  The XML plist is copied out to the newly-mapped anonymous region,
  and the pointer returned via the plistref.

- prop_dictionary_recv_ioctl() is responsible for munmap()'ing the
  region after parsing the XML plist into internal represenatation.

- A new prop_dictionary_sendrecv_ioctl() is added, allowing user space
  code to send a dictionary to the kernel and receive one back as a
  reply.


Update users of prop_kern for the API changes (Bluetooth).

This constitutes an ABI / protocol change -- but this will also be put
into NetBSD 4.0 so that the first proplib release will implement the new
scheme.
2006-09-22 04:20:23 +00:00
thorpej
452b3d1a33 Take the node indices out of the same namespace that <sys/tree.h> uses. 2006-09-09 15:19:18 +00:00
thorpej
fd7e02e68f Revert previous. 2006-09-09 15:01:37 +00:00
xtraeme
82b358e3b5 Don't re-define RB_{LEFT,RIGHT,PARENT} before undef'ing them first. 2006-09-09 09:35:16 +00:00
thorpej
25b4258767 Adapt Matt Thomas's red-black tree implementation for use in proplib. This
has a significant code size savings over <sys/tree.h>.

Also change prop_number_t to store all number objects in an r-b tree,
only ever allocating one object for any given number (we can do this
because numbers are immutable).  This results in significant run-time
memory savings.
2006-09-09 06:59:28 +00:00
christos
0616c072ff complete initialization. 2006-08-27 22:31:55 +00:00
wiz
f46bc596c0 Remove duplicate word. Markup fixes. 2006-08-23 20:50:37 +00:00
wiz
18a66ca024 Bump date for previous. 2006-08-23 20:46:22 +00:00
thorpej
beabdd9bdd Also guard object accessors against NULL (like we do foreign object types)
so that apps can use this construct safely:

	obj = prop_dictionary_get(dict, "value");
	if (! prop_number_equals_integer(obj, 5)) {
		...
	}

Suggested by Iain Hibbert.
2006-08-22 21:21:23 +00:00
he
325cec31d4 Add a workaround for GCC -Wuninitialized, similar to the prop_array.c
workaround, and properly marked with XXXGCC -Wuninitialized.
2006-08-21 17:35:15 +00:00
he
1a119b51b3 Add a workaround for a GCC -Wuninitialized mis-warning (seen for mips). 2006-08-21 15:39:02 +00:00
thorpej
d21620b264 Several changes to proplib:
- Arrays can now be externalized and internalized in the same way
  dictionaries can.
- Add new "externalize to file" and "internalize from file" functions
  to make reading a property list from a file and writing a property
  list to a file more convenient.
- Many assertions in the object implementations are gone.  Instead,
  calling an accessor for one object type with a different object type
  as an argument will return a suitable "invalid" value.
- prop_object_type() now returns a new PROP_TYPE_UNKNOWN value if called
  with a NULL object.
- Externalized property lists now contain a reference to the Apple XML
  plist DTD.
- Add a new prop_ingest(3) facility, which provides a convenient way to
  translate a dictionary into an arbitrary binary representation.
2006-08-21 04:13:28 +00:00
ross
282f07d643 Fix bug involving addresses >= 4G on ppc64. 2006-08-15 02:23:54 +00:00
yamt
9858dc825d don't include stdint.h for _STANDALONE. 2006-07-12 13:54:55 +00:00
wiz
2115abd72d Make HTML-safe. 2006-07-09 19:08:31 +00:00
wiz
cafa4de049 Sort SEE ALSO, make HTML-safe. 2006-07-09 19:08:23 +00:00
wiz
f988fad75e Drop trailing whitespace. 2006-07-09 19:04:02 +00:00
thorpej
723e715a3b Change prop_number_t to store a uint64_t, rather than a uintmax_t. No
ABI change, and we ought to explicitly state that this is a fixed-width
type, since that what it needs to be for binary plist support.
2006-07-07 22:29:55 +00:00
thorpej
296508b606 Use a red-black tree to unique'ify the dictionary key symbols, rather than
a sorted array.  Using a tree puts the linkage into the key symbol itself,
allowing us to avoid having to allocate memory with a mutex held.
2006-07-07 17:09:36 +00:00
ross
12f8dfa169 add reachover ffs and strlen for ppc64 2006-07-07 07:37:44 +00:00
ross
9eb6edc931 revert 2006-07-07 07:31:03 +00:00
ross
a76fa390b6 And yet more .S files... 2006-07-07 07:15:04 +00:00
thorpej
434b7a76fc Add kernel and user space parts of a protocol for sending property lists
to / from the kernel using ioctls.
2006-07-05 21:46:10 +00:00
thorpej
2f3beab89e Reduce the memory footprint for prop_bool_t objects significantly, taking
adavantage of the immutability of these objects:

Statically allocate a TRUE object and a FALSE object, and simply return
references to those objects for create and copy operations.
2006-07-05 20:29:28 +00:00
jnemeth
03f6e8b0e6 remove unused variable that broke build 2006-05-28 10:15:25 +00:00
thorpej
e79f2cf0d1 Keep a table of unique dictionary keysyms. This way, if we have 200 devices
with the "fw-path" property, we only have one copy of the "fw-path" string
as a dictionary key.
2006-05-28 03:56:29 +00:00
thorpej
42e8dee346 Fix the way that prop_array_ensure_capacity() and _prop_array_expand()
interact.
2006-05-28 03:53:51 +00:00
thorpej
9e4cb79390 More cleanup. 2006-05-18 16:35:33 +00:00
thorpej
eff718846c Move all of the locking compatibility definitions into prop_object_impl.h. 2006-05-18 16:23:55 +00:00
thorpej
1eaa09f21d Minor cleanup. 2006-05-18 16:11:33 +00:00
thorpej
3e69f1b2a5 - Add prop_array_equals(), prop_dictionary_equals(), and
prop_dictionary_keysym_equals(), and prop_object_equals() functions.
- Use realloc() where it makes sense.  There will be more changes in this
  area.
- Add a _prop_object_type structure that is used internally to keep
  information about the object types.  Decreases the footprint of the
  objects slightly by replacing several pointers with just one.
2006-05-18 03:05:19 +00:00
christos
b7c6768d3d Coverity CID 3206: Add assertion for NULL deref. 2006-05-13 22:05:04 +00:00
he
6bbc42816c Make the conditional for defining boolean_t complement the conditional
in sys/sys/types.h -- also need to test _STANDALONE.
Fixes a build problem for vax.
2006-05-07 12:46:01 +00:00
simonb
fda54e7c6f In _prop_dictionary_alloc(), explicitly set pd->pd_flags to zero
instead of leaving random garbage in there.
Should we just use "memset(pd, 0, sizeof(*pd));" instead?

Fixes boot problems on evbppc/WALNUT with new proplib.
2006-05-07 06:25:49 +00:00
thorpej
774eb1a395 Initial commit of proplib, a library for manipulating property lists and
converting to/from an XML external representation (based on Apple XML
property lists).  Works in the kernel and user space.
2006-04-27 20:11:27 +00:00
uwe
13ab2e2a10 Now that bcopy.S doesn't contain the actual implemenation, move it
back to libc.
2006-04-23 00:08:18 +00:00
uwe
c71562d660 Move the code into memcpy.S. Adjust the other files accordingly.
Same binaries are generated.
2006-04-22 23:53:47 +00:00
uwe
e983955bb3 libc gets gcc millicode from libgcc, so we don't need to keep it
in src/common.  Move it to sys/lib/libkern/arch/sh3.
2006-04-22 22:48:53 +00:00
thorpej
7d3d66c90e Move strtoumax.c from libc/stdlib to common/libc/stdlib and include it
in libkern.  Required for new code coming soon.
2006-04-22 15:33:33 +00:00
yamt
88cde7b8a8 prefix local labels with ".L". 2006-04-07 12:07:55 +00:00
christos
7c73c7d9b9 remove bogus _LIBC defines. broke lint. 2006-03-30 20:37:51 +00:00
martin
d5e6ed8907 Enforce argument domain by assigning to a char variable and searching
for that. This way we pass the lib/libc/string/strrchr regression tests.
2006-03-13 15:41:46 +00:00
dsl
2fd2e12bd8 Don't bloat the standalone images with preset CRC tables and large routines.
Ideally some of the loops need de-unrolling as well (and in adler32.c).
Makes the i386 install floppies fit.
2006-02-18 18:39:58 +00:00
simonb
1ee1a1e6e2 Don't rename bswap{16,32} if either _KERNEL or _STANDALONE are defined,
instead of just if _KERNEL was defined.
Fixes sbmips bootblocks build problems.
Thanks to Valeriy Ushakov for showing me where the problem was.
2006-02-08 21:52:36 +00:00
ross
b8bbfca272 Don't do DIAGASSERT against NULL if _KERNEL This puts us back to
kernel behavior before src/common where 0 was a valid dest addr.

This should fix the macppc (and other OEA ppc) silent-death-on-DIAGNOSTIC
issue, and possibly other DIAGNOSTIC failures.

XXX it might be worth thinking about an API where 0 is allowed in
documented cases and not allowed otherwise.
2006-02-05 06:47:48 +00:00
uwe
d78e2d9ed2 Define htonl &co as alternative names to bswap only if little endian.
I'm not sure if idempotent versions need to be defined for big endian,
as the man page says in that case they are defined idempotent macros.

PR port-arm/32734
2006-02-04 23:14:48 +00:00
uwe
c61d2c641d libc wants __bswapNN, kernel wants bswapNN. That was not accounted
for during the merge of kernel and libc versions.  Fix to match
e.g. i386 code.
2006-02-04 21:53:31 +00:00
christos
b85ba082e0 Sprinkle __UNCONST and fix some casts to make this pass WARNS=4
Note, that we cannot fix this properly because it will break the zlib.h API.
2006-01-27 00:45:27 +00:00
uwe
d6cc4d7850 If __NetBSD__ && (_KERNEL || _STANDALONE) - don't try to pull in
limits.h to guess what a four byte type is, just use uint32_t.
2006-01-25 23:15:55 +00:00
christos
a1f9f4c090 change DEBUG to ZLIB_DEBUG. 2006-01-16 17:02:29 +00:00
christos
5a1ae2ecf2 Avoid possible name shadowing with min and max (from libkern). 2006-01-16 03:23:10 +00:00
christos
c08686ce36 add NetBSD ifdefs 2006-01-14 20:28:58 +00:00
christos
49473ec58b - include <sys/types.h>
- add z_ptrdiff_t
- add NetBSD ifdefs.
2006-01-14 20:27:34 +00:00
christos
86a96dbd0e use z_ptrdiff_t instead of ptrdiff_t directly. 2006-01-14 20:26:26 +00:00
christos
8f50ba1350 rename write to wwrite to avoid variable shadowing. 2006-01-14 20:26:05 +00:00
christos
aaf4ece63a from www.zlib.net 2006-01-14 20:10:22 +00:00
christos
e2786343af fix the mc68010 case. 2006-01-13 16:07:59 +00:00
christos
8ca2029daf always compile in the userland portion. XXX: We might want to change this
to __no_instrument_function__ like the kernel does.
2006-01-08 07:46:39 +00:00
he
2f2fd2a0ad Add the m68010 versions of the integer multiply divide, modulo,
and multiply functions from the old libkern.  The m68010 versions
are only compiled when __mc68010__ is defined, presently that's
only done when building for sun2.

Reviewed by christos.
2006-01-05 22:33:34 +00:00
tsutsui
d5f01723d6 Don't redefine _LOCORE if it's already defined.
Some Makefiles for standalone programs already have it.

XXX Old src/sys/lib/libkern/arch/mips/memcpy.S had some #ifdef MIPS3_5900
XXX which added some extra nops, but this new common bcopy.S doesn't.
2005-12-27 11:23:53 +00:00
yamt
a30f264f2a don't rename bswap{16,32} if defined(_KERNEL) || defined(_STANDALONE).
(they are hidden by gcc-optimized versions, though.)
2005-12-27 09:38:11 +00:00
yamt
987ddf0a22 make alpha kernel buildable again.
don't add __ prefix to bswap{16,32}
if defined(_KERNEL) || defined(_STANDALONE).
2005-12-27 09:22:08 +00:00
yamt
1722e429b8 lack of COMMON_ARCHDIR is not fatal. 2005-12-27 08:43:05 +00:00
yamt
bdaa56955a print a meaningful error rather than "Need an operator". 2005-12-27 07:31:45 +00:00
matt
9abe0ed18f Include <sys/param.h> first to make VAX port happy. 2005-12-24 08:34:10 +00:00
matt
460818ad02 Don't include "DEFS.h" when <machine/asm.h> is enough. 2005-12-24 08:33:32 +00:00
skrll
ab4f10bcc2 Fix PR 32363 by defining _NOREGNAMES.
Someone should complete the transition.
2005-12-23 10:04:51 +00:00
christos
9ce35109d3 move from libc. 2005-12-22 01:25:12 +00:00
christos
0f3640d687 x86_64 uses i386 assembly files in standalone mode. 2005-12-21 21:47:30 +00:00
christos
54bb4a449f conditionally build this on GPROF again. 2005-12-21 18:11:32 +00:00
christos
bab1897aa8 Only build this if GPROF && !_STANDALONE 2005-12-21 18:11:11 +00:00
christos
91165a001e make this compile again. 2005-12-21 16:58:04 +00:00
christos
4659ba77df Build also when GPROF is not defined. 2005-12-21 15:14:09 +00:00
christos
70b3b52aaa Add the old small random from the libkern and use it for now. 2005-12-21 14:23:58 +00:00
christos
93412868df Make this compile for the kernel again. 2005-12-21 14:19:45 +00:00
christos
734fc1f9ff move from libc. 2005-12-21 00:25:56 +00:00
christos
242aadbe63 Include string in the cpp flags. 2005-12-20 22:51:18 +00:00
christos
275e8bb92d add files I forgot to commit. 2005-12-20 20:29:40 +00:00
christos
37c9f0a654 Merge libkern + libc common files. As requested by core. 2005-12-20 19:28:49 +00:00