Commit Graph

418 Commits

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