Commit Graph

899 Commits

Author SHA1 Message Date
christos
52ae8af955 fix infinite recursion through thr_getspecific 2016-02-28 02:56:39 +00:00
joerg
2988768446 Include the C11 atomic builtin alias. 2016-02-27 19:20:01 +00:00
joerg
b1b09da029 When using clang, do not use the sparc64 code as it doesn't provide the
full set of symbols and clang in -m32 defaults to sparcv8, not
sparcv8plus.
2016-02-27 19:19:33 +00:00
joerg
d88c8eaaf4 Include C11 load/store helpers. 2016-02-27 19:18:29 +00:00
dholland
7fd2abea9a whitespace 2016-02-08 05:27:24 +00:00
dholland
c83d65245f Needs prop_array.h to compile. 2016-01-22 23:03:46 +00:00
christos
98e9d5f901 Put back the rump-disabling of mcount for librump. Otherwise the world
breaks because the mcount assembly code is written to call __mcount via
the PLT.
2016-01-11 01:57:12 +00:00
ryo
c2acaf5fa5 __mcount_lock is moved to MI from MD.
because it is needed for all MULTIPROCESSOR arch, but it is exists only in i386 and amd64.

ok christos@, on tech-kern@
2016-01-10 09:04:32 +00:00
skrll
ed17c7296b Use gcc 4.4 and later operation for nand, i.e.
*ptr = ~(tmp & value) instead of *ptr = ~tmp & value

There was also another bug in sync_fetch_and_nand_8 which I've also fixed.

PR port-arm32/50513: Incorrect logic for atomic_nand_xx.S
2015-12-11 12:41:10 +00:00
christos
01e84cc634 comment out 0{b,B} handling. 2015-11-13 16:02:07 +00:00
christos
fd6ed0e3f6 Fix capitalization 2015-11-12 17:31:43 +00:00
christos
557b696a7a Recognize 0[bB] as binary (base 2) 2015-11-12 17:23:51 +00:00
nakayama
2c01e1e121 Fix 64-bit atomic operations on 32-bit kernel and userland, and add
support for missing __sync_*_8 builtins.
2015-10-18 02:28:07 +00:00
phx
028fd4a71a Fixed typo: propertly -> property. 2015-08-20 15:55:09 +00:00
mlelstv
2bb05299a6 fix comment 2015-07-10 20:16:01 +00:00
isaki
3940a87a45 Improve the code in __sync_bool_compare_and_swap_{1,2,4}.
- bccs is smaller and faster than bcc(.w) in this case.
- it can be used movql in this case (assembler optimise it though).
2015-07-04 07:11:45 +00:00
isaki
55d302de22 atomic_cas_{8,16}:
- Correct the wrong offset in stack.
__sync_bool_compare_and_swap_{1,2,4}:
 - Correct the wrong offset in stack.
 - D3 must be preserved in subroutines.
PR/49995.
2015-07-04 06:56:29 +00:00
matt
1ce375c3b8 Always use sync if mips3 or later or not using O32 ABI. (A little redundant
since not using O32 means you are using mips3 or later.)
2015-06-23 20:56:17 +00:00
matt
bb7982ddd7 #include "assym.h"
Don't include "assym.h" with _RUMPKERNEL defined.
2015-06-22 06:06:02 +00:00
matt
e4cf7e4e27 Back out last change; fixed in the correct place. 2015-06-07 15:06:24 +00:00
matt
91746eb77c Use ${COPT} so it properly emits the right features doing MKCOMPAT 2015-06-07 15:05:34 +00:00
joerg
33e2d9fc4a Require ARMv5TE to assemble. 2015-06-07 11:46:56 +00:00
joerg
2b71fd9719 Add ARM EABI aliases for aligned arguments. 2015-06-07 11:41:59 +00:00
matt
ac748598de Include OCTEON support for syncw and saa/saad (Store Atomic Add). 2015-06-01 23:16:54 +00:00
matt
6ac68d00a5 Don't compile if there is a macro of the same name. 2015-05-29 19:39:41 +00:00
matt
1d43c96919 force 2nd to argument to unsigned byte value.
(found by t_strchr and t_strrchr tests)
2015-05-26 06:55:08 +00:00
justin
d392f6aa93 Do not set CRT_ALIAS for rump kernel; symbols provided by toolchain 2015-05-18 08:24:10 +00:00
justin
39470f7e73 It is just the __ffssi2 alias we do not want in rump kernel 2015-05-17 22:14:38 +00:00
justin
75c54c2178 Move arm sync_* changes to Makefile.inc 2015-05-17 22:08:24 +00:00
justin
b4bb74214e Do not build arm toolchain symbols in the rump kernel
These symbols will be provided at link time and will be
duplicate symbols in rump kernel and libc if defined.

Many have been fixed previously, but these were missed
as did not have a test.
2015-05-17 20:57:11 +00:00
christos
72b528eece Now that _PROP_ISSPACE does not include the EOF check, put the check for
EOF inside the loop. Also fix another unbounded loop that did not check for
EOF. From Mateusz Kocielski
XXX: pullup-7
2015-05-12 14:59:35 +00:00
christos
272b1fe359 Don't treat NUL (EOF) as SPACE. All the code that uses _PROP_ISSPACE() checks
explicitly for _PROP_EOF() anyway, and this can be abused to cause run beyond
the end of buffer DoS (Mateusz Kocielski)
XXX: pullup-7
2015-05-11 16:50:35 +00:00
christos
ad3d79508d Limit size of xml buffer for userland requests (From Mateusz Kocielski)
XXX: pullup-7
2015-05-11 16:48:34 +00:00
christos
35d355f3ea - new test for strtoi
- namespace protection for strto{i,u}
- separate manpages for strto{i,u} from the ones for strto{u,}l
From: Kamil Rytarowski
2015-05-01 14:17:56 +00:00
riastradh
808c0b52c7 Sort includes. 2015-04-21 12:47:33 +00:00
skrll
a2e01a4bd7 Use the right register in previous. Spotted by matt@ 2015-04-17 07:15:02 +00:00
skrll
bbef540942 ARM ARM D7.3.2 - ensure all previous accesses are observed before
the lock is cleared
2015-04-17 07:03:40 +00:00
justin
6324ab4097 On big endian machines needs to include sys/endian.h for le32dec
Mainly affects cross builds on big endian; tested on FreeBSD mips
and Linux ppc.
2015-04-15 08:31:05 +00:00
matt
2d9adf0d04 Switch to new ABI (a0/a1 replace v0/v1) 2015-03-27 06:42:37 +00:00
justin
8f795c07a7 Don't build the __eabi_ aliases in the arm rump kernel.
These are provided by libc in userspace, so leave out of kernel
2015-03-26 13:34:51 +00:00
riastradh
5a2ca44c60 Switch to the suggested constant-time result conversion.
Not hard to find CPU/compiler combinations with branches for `!res'.

While here, make everything unsigned for good measure.
2015-03-18 20:11:35 +00:00
christos
84a48e0829 match variable names with man page (Kamil Rytarowski) 2015-01-18 17:55:22 +00:00
christos
368192c420 add strto{i,u} from Kamil Rytarowski as discussed in tech-userlevel. 2015-01-16 18:35:28 +00:00
riastradh
fe3ead6a42 Introduce membar_datadep_consumer.
Discussed briefly on tech-kern without objection:

https://mail-index.netbsd.org/tech-kern/2014/11/20/msg018054.html
https://mail-index.netbsd.org/tech-kern/2015/01/07/msg018326.html
2015-01-08 22:27:17 +00:00
chs
6d40f9ff57 add a new "fo_mmap" fileops method to allow use of arbitrary uvm_objects for
mappings of file objects.  move vnode-specific details of mmap()ing a vnode
from uvm_mmap() to the new vnode-specific vn_mmap().  add new uvm_mmap_dev()
and uvm_mmap_anon() convenience functions for mapping character devices
and anonymous memory, and replace all other calls to uvm_mmap() with those.
use the new fileop in drm2 so that libdrm can use mmap() to map things
like on other platforms (instead of the ioctl that we have used so far).
2014-12-14 23:48:58 +00:00
matt
f6453319ae Add atomic_c11_compare_exchange_cas_{8,16,32}.c 2014-11-20 07:07:13 +00:00
joerg
67ec38504d Provide prototypes to fix build with clang. 2014-11-04 19:56:44 +00:00
dennis
f8446d6fc9 Add missing C11 atomic support functions to repair prior
build breakage.  matt@ made me do this.
2014-10-16 18:52:17 +00:00
martin
be3005a074 Provide C++ 2011 <atomic> support functions for hppa and arm. 2014-10-14 07:25:05 +00:00
martin
f0a1164b36 Provide <atomic> C++ 2011 support functions for mips and sh3. 2014-10-13 13:00:55 +00:00