Age | Commit message (Collapse) | Author |
|
|
|
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis
|
|
|
|
|
|
|
|
void **. the latter is really hard to cast for, and not what what
solaris does.
ok kettenis@
|
|
routine.
|
|
atomic_cas_uint_mp.
Also, make the interprocessor interlock the only thing on its cache line.
|
|
ok mpi@ sthen@
|
|
compile again; tested by aoyama@
|
|
after discussions with beck deraadt kettenis.
|
|
* you can #include <sys/endian.h> instead of <machine/endian.h>,
and ditto <endian.h> (fixes code that pulls in <sys/endian.h> first)
* those will always export the symbols that POSIX specified for
<endian.h>, including the new {be,le}{16,32,64}toh() set. c.f.
http://austingroupbugs.net/view.php?id=162
if __BSD_VISIBLE then you also get the symbols that our <machine/endian.h>
currently exports (ntohs, NTOHS, dlg's bemtoh*, etc)
* when doing POSIX compiles (not __BSD_VISIBLE), then <netinet/in.h> and
<arpa/inet.h> will *stop* exporting the extra symbols like BYTE_ORDER
and betoh*
ok deraadt@
|
|
The new CPU_BUSY_CYCLE() may be put in a busy loop body so that CPU can reduce
power consumption, as Linux's cpu_relax() and FreeBSD's cpu_spinwait(). To
start minimally, use PAUSE on i386/amd64 and empty on others. The name is
chosen following the existing cpu_idle_*() functions. Naming and API may be
polished later.
OK kettenis@
|
|
not compile-time-known page size platforms.
|
|
precise exceptions, as the actual data the FPU gives us is a 35-bit number,
with the exponent sign-extended to the double-precision exponent width.
Make sure we shrink it and fetch the remaining three low bits of mantissa from
the LS registers.
|
|
is `not comparable'. gcc relies upon `not equal' being set when comparing
numbers to infinities.
|
|
ptrace operation on MP kernels.
|
|
denormal results) with C code using softfloat to correctly round the inexact
results in the best possible way according to the current rounding mode.
No functional change intended, and this assembly code was surprisingly almost
non-buggy, as opposed to the precise exception code replaced a few weeks ago;
still an improvement as this replaces 900 lines of arcane assembly with 90
lines of understandable C code.
|
|
fault handling with a C wrapper around the softfloat code, as already done for
88110 kernels.
As a bonus, attempting to read or write FPU control registers but fcr62 and
fcr63 in userland will now correctly signal an illegal instruction, instead
of leaving the destination register unchanged and pretending nothing bad
happened.
Be sure to rm m88100_fp.d in your kernel compile directory after updating your
tree.
|
|
|
|
|
|
|
|
exceptions, one for the imprecise exceptions. No functional change.
|
|
been doing this since almost 1.5 years and there has been the 64-bit time_t
bump in between, so no old binary should remain.
|
|
to create subtle problems, and removing it does not prevent existing signal
delivery tests from having the correct behaviour. And this is likely redundant
with DAE processing in sigreturn.
We should probably rewind if XIP_V is not set, but does this ever happen
in real life? To be investigated on a rainy day.
This seems to fix spurious signals encountered building libstdc++ and perl.
|
|
logic in the dedicated signal stack case, too.
Also, every time the sigcontext position is recomputed by the above logic,
recheck the DAE addresses from the beginning, in case a formerly avoided
address now risks being overwritten.
|
|
making sure the sigcontext will not overlap pending DAE accesses.
Fixes sporadic sys/kern/signal/earlysig regress failure.
|
|
|
|
- when building the sigcontext, rewind the pipeline for recoverable
exceptions, so that sigreturn actually has a chance to cause the
interrupted instruction to be run again.
- when returning with sigreturn, and the sigcontext contains valid
DAE information, the DAE need to be emulated before returning, for
the processor will not reissue them.
- finally, when the sigframe is allocated on the current process' stack,
be careful not to stomp upon addresses referenced by the DAE information,
for this would defeat the previous point.
All these changes only affect 88100 processors only. 88110 operation is
unchanged.
While there, do not copyout an empty siginfo struct if the signal handler
does not expect any.
Hair-pulling evil testcase provided by aoyama@, based upon one of
devel/libsigsegv configure tests (which would spin on 88100 and run happily on
88110).
|
|
exception type.
|
|
instruction, rather than gazillions of inline variants. This also makes
the situations where we clear specific bits in the fip or nip registers
more visible.
No functional change.
|
|
ERESTART or EJUSTRETURN, for we're not supposed to. (Actually, setting the
carry bit upon syscall failure doesn't make much sense on m88k, since this is
not how the syscall stubs check for failure)
|
|
|
|
it needs to be done atomicly on some MP archs and we don't have
atomic_add_int() everywhere yet. Also, mi_ast() was meant to be inline.
noted by miod@
|
|
ok deraadt@
|
|
|
|
to avoid possible use-after-free references when swapping ids in threaded
processes. "Do I have the right creds?" checks are always made with the
threads creds.
Inspired by FreeBSD and NetBSD
"right time" deraadt@
|
|
ok dlg@ mpi@ deraadt@
|
|
Tweak the handling of ktrace EMUL when changing ktracing: only
generate one per process (not one per thread) and pass the correct
proc pointer down to the VFS layer. Permit generating of NAMI and
CSW records inside ktrace(2) itself.
ok deraadt@ millert@
|
|
testing help mpi@
|
|
|
|
this hardware alive is becoming increasingly difficult, and I should heed the
message sent by the three disks which have died on me over the last few days.
Noone sane will mourn these ports anyway. So long, and thanks for the fish.
|
|
native size, so eliminate the #defines.
ok miod@
|
|
we block all interrupts that can grab the kernel lock. The simplest way to
achieve this is to make sure mutexes always raise the ipl to the highest
level that has interrupts that grab the kernel lock. This will allow us
to have "mpsafe" interrupt handlers at lower priority levels.
No change for non-MULTIPROCESSOR kernels.
ok miod@
|
|
<machine/pmap.h> where it belongs, and compensate in <uvm/uvm_extern.h>
by including <uvm/uvm_pmap.h> before <uvm/uvm_page.h>. Tested on all
MACHINE_ARCH but amd64 and i386 (and hppa64).
|
|
|
|
|
|
Use this on luna88k to map the bitmap planes of the frame buffer used by
the driver. 10% speedup under X.
|
|
dbatc. Add batc mapping support for 88110 systems as well.
|
|
data area and the kernel image, whenever possible.
On 88100/88200 systems, use BATC mappings to map the kernel text (and the
kernel data for non-MULTIPROCESSOR kernels). 88110 to follow soon.
|