Commit Graph

862 Commits

Author SHA1 Message Date
matt
780493cbdc Debug. This becomes faster than the normal strlen at about 80 characters. 2012-12-28 05:15:08 +00:00
matt
817045ffb8 Don't need to include assym.h
Add a missing comma.
2012-12-18 06:14:23 +00:00
matt
e0306b2b8a Add a routine to create an up to an 128 bitmask returned
in VFP/NEON q0 starting at the rightmost bit (bit 0).
2012-12-17 00:46:14 +00:00
matt
4118c7d32d Slighly improved (can deal with all 16 bytes being non-NUL and quickly
proceed to next qword).
2012-12-15 22:23:31 +00:00
matt
91e44c6aaa Add a NEON implementation of strlen. 2012-12-15 19:26:34 +00:00
matt
b54764018c Add a NEON(only) implementation of memset.
This is a work in progress.
2012-12-13 01:41:59 +00:00
matt
be5ab324d6 Change __XSCALE__ to _ARM_ARCH_DWORD_OK so that any cpu with dword load/store
can use it.
2012-12-12 15:51:09 +00:00
matt
e1f7fc6d5e Change __XSCALE__ to _ARM_ARCH_DWORD_OK so that any cpu with strd can use it. 2012-12-12 15:46:05 +00:00
christos
c98323355a use explicit cast to pacify lint. 2012-12-07 15:41:02 +00:00
martin
3e441138b1 Provide an assembler version of _atomic_cas_up for sparc - the C code
does not compile to something usable in a RAS. See PR 38482.
2012-11-28 21:39:59 +00:00
matt
d9e09e3051 Optimize. 2012-11-28 01:35:05 +00:00
matt
a96852fc0d Use the armv6 rev/rev16 if armv6 or later 2012-11-27 23:57:07 +00:00
christos
dae8727ffb split udivsi3 and divsi3 to fix static linking. This could be done better. 2012-10-30 12:42:13 +00:00
chs
1957a22d40 _ARCH_ARM_6 -> _ARM_ARCH_6 2012-10-29 14:09:38 +00:00
christos
91f0e20769 Split out modsi3 and umodsi3 from the divsi3 file. This is so that
we don't get re-defined symbols in libc from libgcc in static linking.
Example: cc -pthread -static main-calls-pthread-create.c
2012-10-10 02:16:54 +00:00
matt
b40d79bcfb Add a ptree_mask_node_p to determine if an item is a mask node, and what
its non-mask length is.
2012-10-06 22:15:09 +00:00
matt
6e8da97cc9 Correct copyright/fix comments. 2012-09-13 00:36:12 +00:00
matt
56a54cbe85 Fix bas code, use ldr 2012-09-12 18:23:33 +00:00
matt
b9b9bd8933 Add 64bit atomic ops for ARMv6+ (using ldrexd/strexd). 2012-09-11 20:51:25 +00:00
matt
36f83f6caf Add dmb/dsb instructions as required by the armv7 arch man. 2012-08-31 23:41:52 +00:00
drochner
8588929dc5 Add "consttime_bcmp" and "explicit_bzero" functions for both kernel
abd userland, as proposed on tech-security, with explicit_bzero using
a volatile function pointer as suggested by Alan Barrett.
Both do what the name says. For userland, both are prefixed by "__"
to keep them out of the user namespace.
Change some memset/memcmp uses to the new functions where it makes
sense -- these are just some examples, more to come.
2012-08-30 12:16:48 +00:00
matt
85e052c5bf Actually use the assembly version of the atomic function if compiling
for armv6 or armv7 cpus.  Use atomic_cas_ptr instead of _lock_cas so
we pick up the assembly version when it's used.
2012-08-16 16:49:10 +00:00
matt
e2b9512b7a Add ARM EABI aliases to a few functions. 2012-08-06 02:31:54 +00:00
matt
e525b93aa7 Change include to <arm/aeabi.h> 2012-08-06 02:15:51 +00:00
matt
08b1727f06 Add long long / unsigned long long comparision routines. These differ
from cmpdi2 in they return strcmp like values (-1, 0, 1).
2012-08-06 01:50:30 +00:00
matt
222a0a07b3 Add RCSID.
Simplify.
2012-08-05 06:34:09 +00:00
matt
c5be335689 Add another ARM EABI runtime routine for
combined quotient / remainder for signed long long.
2012-08-05 06:33:51 +00:00
matt
fd8b39a588 Add a routine for __aeabi_uldivmod which is just a wrapper around __qdivrem
but returns the 64-bit dividend and remainder in r0-r3.
2012-08-05 04:24:13 +00:00
matt
59f5e05f96 For __udivsi3 and __divsi3, add their EABI aliases as alternate entry
points.
2012-08-05 04:22:01 +00:00
matt
e8a22c6586 Add a missing .set noreorder 2012-08-03 06:06:44 +00:00
pooka
c303bcbe4c Bit-un-rot the proplib portability layer. 2012-07-27 09:10:59 +00:00
rmind
4c826f2231 ptree_find_filtered_node: make key argument const. 2012-07-15 00:16:28 +00:00
matt
84b1adeab7 Add code to protect the ptree from multiple insertions of the same node. 2012-07-14 18:16:54 +00:00
matt
87ed7965fb Don't bother testing 0 length keys since they can only have one possible value. 2012-07-13 01:15:27 +00:00
rmind
61498e07d3 ptree: add context argument. OK matt@ 2012-07-11 00:19:28 +00:00
christos
d290d1674e Fix kernel compilation: no namespace.h
Fix libc RCSID protection.
Remove useless cast.
2012-07-10 17:05:38 +00:00
rmind
6461e5c133 Add weak symbol for murmurhash2. 2012-07-09 21:25:46 +00:00
rmind
5811facfd9 Shut up lint. 2012-07-08 13:42:29 +00:00
rmind
ea196989a7 Add MurmurHash2 -- a non-cryptographic hash function by Austin Appleby.
The code is taken from the upstream and is in the public domain.

OK christos@
2012-07-08 01:21:11 +00:00
christos
062204d530 fix lint comment. 2012-04-07 16:28:59 +00:00
christos
834d97b095 lint knows the code is not reachable, but gcc does not. 2012-04-07 16:18:24 +00:00
christos
de149fb70f bring the casts to the operands, not the operation results. 2012-03-22 15:57:29 +00:00
he
2fa47ecfcb Lint seems to prefer that we cast via (void*) and not directly to
(u_char*), so follow suit.
2012-03-21 20:02:56 +00:00
matt
567219e1d7 Remove __P usage.
Convert to C89 prototypes.
2012-03-20 16:21:41 +00:00
martin
4eb2215803 shut up lint 2012-03-17 21:40:21 +00:00
martin
9328833c03 Mark linted 2012-03-17 20:57:35 +00:00
njoly
d0e00679ff Use Lk macro when dealing with URLs. While here update or remove some
dead URL links. Another part of PR/29238.
2012-03-15 22:35:02 +00:00
christos
32c2c5c3f9 don't include <sys/cdefs.h> from assembly. 2012-03-14 16:50:34 +00:00
christos
a5fd370a21 Casts and type changes to fix portability issues.
- int -> size_t
- adjust width of RHS of shift
- adjust widths of types
2012-03-09 15:41:16 +00:00
apb
aaa101ee8d remove trailing white space 2012-03-02 16:22:27 +00:00
apb
2953114330 Change CTASSERT to __CTASSERT (the spelling used in <sys/cdefs.h>),
include <sys/cdefs.h> so that it will be defined,
and move it to a better place.

The previous CTASSERT would never have been used because
of the ifdef.  If it had been used, it would have had
unwanted effects from being just after the "static inline"
that appears when BZERO is defined.

Also move the __RCSID to a more conventional location.
2012-03-02 16:19:15 +00:00
joerg
76acd27422 Make sure to create the right aliases. 2012-02-28 20:41:19 +00:00
dholland
7609b9bc56 Migrate one last leftover bit (used only by the kernel now) to
sys/ufs/ufs and remove the old quota headers and no-longer-used shared
code. Ok by releng.
2012-02-05 14:19:02 +00:00
dholland
4146833dd8 Remove old (5.99.48 - 5.99.62) libquota interface. 2012-02-01 17:52:07 +00:00
dholland
59b296daa7 Change the syscall API for quotas over to the new non-proplib one.
- struct vfs_quotactl_args -> struct quotactl_args
   - add sys/stdint.h to sys/quotactl.h for clean userland build
   - install sys/quotactl.h in /usr/include
   - update set lists for same
   - add new marshalling code in libquota
   - add new unmarshalling code in vfs_syscalls.c
   - discard proplib interpreter code in vfs_quotactl.c
   - add dispatching code for the 14 quotactl ops in vfs_quotactl.c
   - mark the proplib quotactl syscall obsolete
   - add a new syscall number for the new quotactl syscall
   - change the name of the syscall to __quotactl()
   - remove the decl of the old quotactl from quota/quotaprop.h
   - add a decl of the new quotactl to sys/quotactl.h
   - update the libc build
   - update ktruss
   - remove proplib marshalling code from libquota
   - update copy of syscall table in gdb ppc sources
   - hack rumphijack to accomodate new quotactl name (as I recall,
     pooka wanted such a name change to simplify something, but I
     don't really see what/how)

This change appears to require a kernel version bump for rumpish
reasons.
2012-02-01 05:34:38 +00:00
christos
df956cc4ce also handle the separator after the F field. 2012-01-23 03:22:41 +00:00
christos
c1260ab13f In the new format F did not print a separator as required. 2012-01-23 02:34:01 +00:00
joerg
e8bec33be1 Change CMSG_SPACE and CMSG_LEN to provide Integer Constant Expressions
again. This was changed in sys/socket.h r1.51 to work around fallout
from the IPv6 aux data migration. It broke the historic ABI on some
platforms. This commit restores compatibility for netbsd32 code on such
platforms and provides a template for future changes to the CMSG_*
alignment. Revert PCC/Clang workarounds in postfix and tmux.
2012-01-20 14:08:04 +00:00
christos
488f092662 PR/45796: Evgeniy Ivanov minixfs3 support. 2012-01-16 18:46:20 +00:00
dholland
51d1d7e7c4 Rename struct ufs_quota_entry -> struct quotaval. 2011-11-25 16:55:05 +00:00
dholland
c60360c18d Reshuffle decls among the quota headers so everything is in the place
it should be:
   - stuff for the proplib interface goes in <quota/quotaprop.h>
   - stuff for userlevel only goes in <quota/quota.h>
   - stuff shared between user and kernel goes in <sys/quota.h>

Note that <quota/quota.h> and <quota/quotaprop.h> are expected to be
moved or removed later on... one thing at a time.

Update include directives in other files as needed.
2011-11-20 21:43:34 +00:00
christos
28bb169a57 compile into nothing if _STANDALONE 2011-11-14 16:21:44 +00:00
christos
cb23ae6f47 add netbsd id 2011-11-14 14:37:13 +00:00
christos
58214e6f51 - fix boot block building (-D_STANDALONE)
- explain why we cast.
2011-11-14 14:36:40 +00:00
christos
7569228a97 the kernel does not have util.h 2011-11-13 22:21:29 +00:00
christos
fb75d15e0f Add a function to convert from a disklabel p_fstype integer to a
dkw_ptype name.
2011-11-13 21:56:53 +00:00
joerg
4041630e67 libkern.h maps memcmp, memset and strcpy to the compiler builtins on
some platforms, so make sure to #undef them first.
2011-11-08 16:52:11 +00:00
yamt
d837abef06 comments 2011-11-02 13:49:43 +00:00
yamt
d1036328f3 add radix_tree_empty_tagged_tree_p, a "tagged" variant of
radix_tree_empty_tree_p.
2011-10-25 14:11:27 +00:00
christos
cdcc8530f0 Add a version of proc_compare that works both for kernel and userland
(and uses the same algorithm!)
2011-10-21 02:09:00 +00:00
wiz
276389fea6 Add missing Nd. 2011-10-17 09:24:54 +00:00
yamt
759124c59e - add functions to scan the tree in the reverse order
(i wonder if it's the longest function name in the tree)
- assertions
- comments
- fix and update unittest
2011-10-14 19:42:14 +00:00
yamt
11a7e56d00 unwarp a short line 2011-10-14 16:15:54 +00:00
yamt
ccdce53c95 constify 2011-10-14 16:10:47 +00:00
yamt
82698115b1 fix "get_tag" result of unittest 2011-10-14 16:06:05 +00:00
yamt
e4944d443e make the output of unittest a little machine-readable 2011-10-14 15:31:35 +00:00
yamt
1414ffd151 int -> unsigned int where appropriate 2011-10-14 15:18:05 +00:00
yamt
c66560279a add a function to check if a tree is empty. 2011-10-14 15:16:59 +00:00
yamt
765c84955a include string.h for memset 2011-10-14 15:15:27 +00:00
jym
afca4e3b49 Fix an implementation inconsistency with the prop_*_send_syscall() and
prop_*_recv_syscall() functions from proplib(3). They now share the
same logic as the one from prop_*_send_ioctl() functions:
- returns an int
- 0 indicates "no error", otherwise returns the error number (and
set errno)

Many consumers of the prop_*_{ioctl, syscall} expect errno to be set
on error and use err() to display the error message. As such, ensures that
errno gets set before returning from these functions.

prop_*_send_syscall() functions returned a boolean, and now return an int.
Fix all call sites to use the new paradigm (only quota2 is affected in src).

As the prop_*_{send,recv}_syscall() API appeared in -current and is only
used by the recent quota2 code, I am not bumping the lib. The API change
only affects the prop_*_send_syscall() function (recv_syscall()s were
already used correctly), so ensure you are not mixing "old" -current
quota binaries with a new proplib(3) (or the other way around). This
change will be announced via a HEADS-UP and UPDATING.

Does not affect the kernel part of proplib.

Document the correct API in prop_array(3) and prop_dictionary(3).

Thanks to Francois Tigeot for noticing the API inconsistency and
reporting it on tech-kern@.

ok bouyer@.
2011-09-30 22:08:18 +00:00
mrg
af1a60157f avoid sys/systm.h in userland ppath.h.
include types.h/stdarg.h in all systm.h configs.

my amd64 build without man pages now worked at least.
2011-09-30 10:23:03 +00:00
christos
feec5d318c Include <sys/systm.h> for panic() 2011-09-29 20:53:30 +00:00
jym
7d85b0074d Indicate type of return variable for prop_dictionary_sendrecv_ioctl. 2011-09-27 11:12:49 +00:00
dyoung
e95aa499d6 Name arguments in a couple of prototypes before the arguments are
referred to by name.  Bump date.
2011-09-13 18:07:22 +00:00
dyoung
166f28ddff Bump date for previous change. 2011-09-13 18:05:20 +00:00
dyoung
a156c8bc88 Name arguments in a couple of prototypes before the arguments are
referred to by name.
2011-09-13 18:04:54 +00:00
jym
b0471da334 Make strnlen(3) accessible in kernel. ok christos@. 2011-09-01 22:35:17 +00:00
plunky
a9b219be41 NULL does not need a cast 2011-08-31 15:48:32 +00:00
bouyer
4c44c335c5 loongson2f support:
- Add some loongson2 definitions to cpuregs.h, from OpenBSD
- Make sure that the at register is useable before every jump register
  instruction (exept when register is k0 or k1) because -mfix-loongson2f-btb
  needs the at register for its workaround
- add code to mips_fixup.c to handle the instructions added by
  -mfix-loongson2f-btb
- Add a ls2-specific tlb miss handler: it doesn't have separate handler
  for the xtlbmiss exeption.
- Fixes for some #ifdef MIPS3_LOONGSON2 assembly code (using the wrong
  register)
2011-08-27 13:23:52 +00:00
dyoung
c3c79645b1 Add ppath/ headers that I had overlooked. 2011-08-25 16:15:29 +00:00
wiz
181321739b Fix Nd argument. 2011-08-25 15:14:43 +00:00
wiz
b6947e90c0 Fix Dt argument, remove trailing whitespace, fix formatting nit. 2011-08-25 15:12:38 +00:00
dyoung
33ce21e27d Add sources, Makefiles, and manual pages for ppath(3), a
property-container path library that is usable from both userland and
the kernel.

TBD: hook this into the build, update set lists, and add automated
tests.
2011-08-25 14:55:36 +00:00
dholland
0a54ac30f5 Requires stdint.h. 2011-08-21 21:24:34 +00:00
christos
7ba3e6ca4b document non-literal format string 2011-08-16 10:33:17 +00:00
rmind
52b220e91d Add kcpuset(9) - a reworked dynamic CPU set implementation for kernel.
Suitable for use during the early boot.  MD and other implementations
should be replaced with this interface.

Discussed on: tech-kern@
2011-08-07 13:33:01 +00:00
jmcneill
2cfa4ad9b3 prop_dictionary_get_dict: last argument is prop_dictionary_t *, not bool * 2011-08-07 11:33:03 +00:00
mrg
baa3508234 add a weak alias to __ffssi2, needed for hppa gcc 4.5. 2011-08-07 01:52:47 +00:00
mrg
046047ef8e add a weak alias for __ffssi2 2011-07-09 14:57:29 +00:00
matt
1ab92ba04c Add long double prototypes. 2011-07-09 02:36:01 +00:00
joerg
b45fa494da ANSIfy 2011-07-04 21:20:27 +00:00
mrg
1866376e13 sh3 needs the __ffssi2 weak symbol, too. 2011-07-04 12:18:05 +00:00
mrg
259d2a08e1 add a weak alias from ffs to __ffssi2. newsmips kernels link now. 2011-07-04 11:35:26 +00:00
mrg
de4475a299 add support for __floatunsisf(). 2011-07-04 11:22:39 +00:00
mrg
88fcb00c03 add a weak alias from ffs to __ffssi2. sparc dynamic works with gcc 4.5 now. 2011-07-04 11:18:23 +00:00
matt
25ba5ff11d Update to C89 style.
Fix name of floatundidf (uns -> un).
2011-07-04 06:23:50 +00:00
matt
633cce5ea2 Add a weak symbol definition for __ffssi2 so that __builtin_ffs will use
this if no strong defintion of __ffssi2 is available.
2011-07-03 07:13:31 +00:00
mrg
493d341048 various build fixes for gcc 4.5. from chuq. XXX i'm not sure all of
these work properly wtf pointer aliasing, but there are no casts at
least...

the lib/libpuffs/puffs_priv.h is definately a real bug fix.

from chuq.
2011-06-20 09:11:16 +00:00
pgoyette
77494f64c2 Correct the example. 2011-06-19 08:53:02 +00:00
joerg
bdaa91a3a8 Add support for size optimised versions of the assembler functions in
the small subdirectory. Provide more compact versions of the functions
used by bootxx in x86.
2011-06-16 16:39:14 +00:00
bouyer
a3a7248ce7 Fix bad cut'n'paste in copyright. Pointed out by dyoung@ 2011-06-07 14:56:12 +00:00
tsutsui
aabb34a38b - WARNSfy
- KNF, ANSIfy, remove __P(), misc cosmetics
2011-05-19 22:23:12 +00:00
yamt
d93894081a radix_tree_clear_tag:
- fix a bug which errornously clears tags on intermediate nodes.
- add comments.
2011-05-19 10:06:56 +00:00
yamt
464de4ca7d radixtree: assertions 2011-05-19 10:01:21 +00:00
yamt
59a4821fb2 radixtree: comments 2011-05-19 10:00:30 +00:00
yamt
a8d2a6dea1 radixtree: comments 2011-05-19 09:58:28 +00:00
yamt
25dcdd54cb fix _STANDALONE build 2011-04-26 20:53:34 +00:00
martin
235708f88f Update also the non-void pointers to the current test objects.
Finaly fixes PR lib/43964.
2011-04-20 20:00:07 +00:00
martin
e40530ec28 Fix "address of a void*" vs. void* confusion.
Part of fixing PR lib/43964.
2011-04-20 19:40:00 +00:00
yamt
714ba23ee1 - fix _STANDALONE build.
- use __CTASSERT instead of CTASSERT.  enable it for userland.
- __read_mostly.
2011-04-14 15:42:02 +00:00
yamt
949aabf781 fix _STANDALONE build 2011-04-14 15:31:20 +00:00
matt
9b4a6fec19 Add RCSIDs 2011-04-12 16:19:44 +00:00
wiz
d6a06aa7e9 Fix a typo and a punctuation nit. 2011-03-27 22:44:47 +00:00
bouyer
d9210c2405 Add a new libquota library, which contains some blocks to build and/or
parse quota plists; as well as a getfsquota() function to retrieve quotas
for a single id from a single filesystem (whatever filesystem this is:
a local quota-enabled fs or NFS). This is build on functions getufsquota()
(for local filesystems with UFS-like quotas) and getnfsquota();
which are also available to userland programs.
move functions from quota2_subr.c to libquota or libprop as appropriate,
and ajust in-tree quota tools.
move some declarations from kernel headers to either sys/quota.h or
quota/quota.h as appropriate. ufs/ufs/quota.h still installed because
it's needed by other installed ufs headers.
ufs/ufs/quota1.h still installed as a quick&dirty way to get a code
using the old quotactl() to compile (just include ufs/ufs/quota1.h instead of
ufs/ufs/quota.h - old code won't compile without this change and this is
on purpose).
Discussed on tech-kern@ and tech-net@ (long thread, but not much about
libquota itself ...)
2011-03-24 17:05:39 +00:00
wiz
35124272d3 Remove duplicate "the". From Henning Petersen in PR 44640. 2011-02-26 12:56:35 +00:00
yamt
62e2ded66d an implementation of radix tree. the idea from linux. 2011-02-22 21:31:15 +00:00
pooka
f3da52f3a1 Add PIC variant for fetching the lock address.
librump.so now works on sparc
2011-02-22 18:45:10 +00:00
njoly
236d2fbff6 Fix section for umask xrefs. 2011-02-21 13:42:57 +00:00
plunky
340f952206 prop_dictionary_internalize_from_file_returns_a_dictionary_not_an_array 2011-02-02 16:37:27 +00:00
matt
c2f76ff004 Use END(sym)
use RCSID
2011-01-25 04:45:28 +00:00
matt
3c6f3faa1a Add a new O(log(2) implementation. On mips32/mips64, use clz/dclz. 2011-01-23 06:47:14 +00:00
bouyer
dc31d933b9 prop_*_copyout takes an object as second parameter, not a pointer to object. 2011-01-20 11:17:58 +00:00
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