Age | Commit message (Collapse) | Author |
|
ok jsing@, miod@
|
|
traditionnaly found in libkern. However, the memcmp() flavour would behave
as bcmp() with only two possible return values: zero and positive non-zero.
This broke the name cache RB trees which now rely upon proper memcmp()
semantics(negative value, zero, or positive value).
Just give up on these macros and provide the same code as libc, in libkern.
As a side effect, this no longer uses the cmpc3 instruction, which is not
implemented and requires (slow) kernel emulation, on the original uVax.
|
|
makes the sigreturn regress test pass, as well as todd@'s ``run
sh -c "trap exit 2 3;while :; do sleep 120; done", then press ^C'' test pass.
Since userland setjmp uses sigcontext, the kernel will still support the
old layout for a while (until libc is fixed and a reasonable grace period
is over).
|
|
|
|
Saves every damned driver calling bzero(), and continues the M_ZERO,
PR_ZERO symmetry.
|
|
MD code would free resources that couldn't be freed until we were no
longer running in that processor. However, it's is unused on all
architectures since mikeb@'s tss changes on x86 earlier in the year.
ok miod@
|
|
|
|
levels. This will allow for platforms where soft interrupt levels do not
map to real hardware interrupt levels to have soft ipl values overlapping
hard ipl values without breaking spl asserts.
|
|
protected by __ISO_C_VISIBLE > 1999. With a little help from miod@.
ok miod@
|
|
which are uniform for the profclock on each cpu in a SMP system (but using
a different seed for each cpu). on all cpus, avoid seeding with a value out
of the [0, 2^31-1] range (since that is not stable)
ok kettenis drahn
|
|
anything special to prod a cpu to leave the idle loop in signotify.
powerpc, i386, amd64 and sparc64 will follow soon so that everyone has
the same interface to wake an idling cpu.
|
|
For now, sparc64 is arbitrarily set to 256 (only architecture that didn't have
a practical limit in the code on the number of cpus).
|
|
ok miod@
|
|
plus cast to vaddr_t where necassary
from Miod's todo list
ok miod@
|
|
|
|
currently limited to serial console and a single processor working.
All ``on-board'' devices, including the Q-bus adapter, but except for
the frame buffer, are supported. The machine will boot over the network
or from SCSI devices.
Lots of thanks to Al Kossow for www.bitsavers.org, on which I found the
technical documentation allowing me to complete this port (which was
lacking at the time I got that machine...).
|
|
hardwired this way on KA60...), and compensate in splassert_check() when
serial device interrupts will remain at 0x14 or 0x15.
|
|
check frame format...) to a single place. Get rid of duplicated KAxx_FOO
constants.
|
|
hardclock() here, except for KA46 which needs to reset the diagnostic
timer.
This gives us working clock interrupt counters for vmstat -i in the process.
|
|
file, fewer #ifdef this way.
|
|
macro and related function pointers.
|
|
early initialization routine (to enable caches, etc) while still running
physical, and does not allocate memory anymore.
(The irony in this is that forthcoming KA60 support actually steals pages
in its init function...)
|
|
ok miod@
|
|
fp; from NetBSD
ok millert@
|
|
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per
C99). remove from math.h, and add proper definitions in float.h
ok millert@
|
|
Right now when mi_switch picks up the same proc, we didn't clear the
flag which would mean that every time we service an AST we would attempt
a context switch. For some architectures, amd64 being probably the
most extreme, that meant attempting to context switch for every
trap and interrupt.
Now we clear_resched explicitly after every context switch, even if it
didn't do anything. Which also allows us to remove some more code
in cpu_switchto (not done yet).
miod@ ok
|
|
Not sure what's more surprising: how long it took for NetBSD to
catch up to the rest of the BSDs (including UCB), or the amount of
code that NetBSD has claimed for itself without attributing to the
actual authors.
OK deraadt@
|
|
own page 0, as discussed with miod (and many others previously, including
art and toby). On sparc, make this __LDPGSZ because PAGE_SIZE is non-constant
ok miod tedu
|
|
shortly.
|
|
Crank the second stage boot blocks version.
|
|
|
|
|
|
rpc/pmap_prot.h collide.. "struct pmap" from the kernel should not make
it out to userland.
ok miod
|
|
- Move the functionality of choosing a process from cpu_switch into
a much simpler function: cpu_switchto. Instead of having the locore
code walk the run queues, let the MI code choose the process we
want to run and only implement the context switching itself in MD
code.
- Let MD context switching run without worrying about spls or locks.
- Instead of having the idle loop implemented with special contexts
in MD code, implement one idle proc for each cpu. make the idle
loop MI with MD hooks.
- Change the proc lists from the old style vax queues to TAILQs.
- Change the sleep queue from vax queues to TAILQs. This makes
wakeup() go from O(n^2) to O(n)
there will be some MD fallout, but it will be fixed shortly.
There's also a few cleanups to be done after this.
deraadt@, kettenis@ ok
|
|
cpu_disklabel can go away, since nothing anymore needs to use it; ok miod
|
|
to support hotplug media on most architectures. disklabel setup and
verification done using new helper functions. Disklabels must *always*
have a correct checksum now. Same code paths are used to learn on-disk
location disklabels, to avoid new errors sneaking in. Tested on almost all
cases, testing help from todd, kettenis, krw, otto, dlg, robert, gwk, drahn
|
|
mbuf constants from MD param.h to MI param.h.
Besides being the same on every arch, things will
most probly break if any arch has different values
then the others.
The NMBCLUSTERS constants needs to be MD though;
ok miod@,krw@,claudio@
|
|
splassert_ctl > 0 in __predict_false().
ok deraadt@
|
|
have cpu_info now, so kill the option.
eyeballed by jsg@ and grange@
|
|
|
|
|
|
option. Every architecture implements mutexes now.
|
|
device_register() function -- even if it does nothing. reduces the
cpp-based blather different between architectures
idea ok'd by miod; tested on all architectures (except a few miod will
need to cleanup because he has them)
|
|
unconditionnaly.
|
|
pv_entry head of lists are no longer preallocated at boot, and will only be
allocated for managed pages (instead of all physical memory pages, including
those containing the kernel).
pmap and pv_entry will now be allocated from a pool, instead of malloc for the
former and a homegrown allocator which never relinquishes unused elements to
the VM system for the latter.
The net result is a slight decrease in memory usage, and better behaviour in
low-memory conditions.
|
|
djm@
|
|
|
|
__BUS_SPACE_ALIGNED_ADDRESS.
|
|
Not enough for multiprocessor, but we're not there yet anyway.
|
|
No functional change.
|