Age | Commit message (Collapse) | Author |
|
While there, compute the physical memory size in a much simpler way on mac68k.
|
|
|
|
prompted by krw@
|
|
|
|
|
|
directive can select between MI and MD versions of these files. At
the same time, adjust the boot programs to pick exactly what they need,
instead of the 7 or 8 mechanisms previously used.
There will be some fallout from this, but testing it all by myself is a
ridiculously slow process; it will be finished in-tree.
Various developers were very nice and avoided making fun of me when I
was gibbering in the corner..
|
|
|
|
decide which files must be pulled into the kernel. Also conditionalize
the pulling of those files based on the COMPAT_* options.
|
|
ok miod
|
|
|
|
as its implementation may vary accross platforms (and will very soon).
|
|
|
|
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
|
|
ok art@
|
|
MALLOC/FREE, etc. Just adding M_ZERO to malloc() and deleting an
immediately adjacent bzero().
|
|
handler is invoked with spl raised to the given level, otherwise all nubus
interrupts are processed at level 2.
|
|
with heavy NFS usage.
|
|
kernel builds locally this doesnt change much but over NFS this
cuts about 12% of the build time on my setup (i386).
OK miod@, deraadt@.
|
|
|
|
too, so we can make these constants.
|
|
This fixes infrequent hangs on reboot due to the ethernet interface interrupting
on machines configured to use A/UX style interrupts.
|
|
MBR-like partitions.
|
|
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
|
|
|
|
|
|
correct and unify; ok thib miod
|
|
routines (alpha, vax) prove to be not worth keeping. Move
bounds_check_with_label() into the MI world. Eliminate unreliable and
almost certainly useless checks for overwriting a disklabel.
After discussion with deraadt@
|
|
implimentations were simply either missing code, or spacing and such.
setdisklabel() can become MI now.
|
|
size which is the REAL DISK SIZE. always. if a driver fails to set
this right, please fix it. agreed with otto and krw
|
|
vax and alpha.
|
|
there.
'so go to it!' deraadt@
|
|
type of all variables to daddr64_t. this includes the APIs for XXsize()
and XXdump(), all range checks inside bio drivers, internal variables
for disklabel handling, and even uvm's swap offsets. re-read numerous
times by otto, miod, krw, thib to look for errors
|
|
accuracy so that the variious disksubr.c's can be compared easier.
setdisklabel() starts taking an int for openmask.
ok krw, and read by quite a few other people
|
|
to size. tested on almost all machines, double checked by miod and krw
next comes the type handling surrounding these values
|
|
convert version 0 to version 1 disklabels.
Suggested by deraadt@.
ok deraadt@ otto@
|
|
subsystems were enabled. others used a *md_diskconf -> diskconf() method to
make sure init_main could "do late setroot". Change all architectures to
have diskconf(), use it directly & late. tested by todd and myself on most
architectures, ok miod too
|
|
1) Use local variable 'labelsector' not 'labelsect' to be consistant (hp300,
mac68k, mvme68k, mvme88k, vax).
2) Having checked for sz == 0, the next check needs only be sz < 0, not <= 0.
(mac68k, mvme68k, mvme88k)
3) Use lp->d_partitions + DISKPART(dev), rather than
lp->d_partitions[DISKPART(dev)] (hp300).
Assuming no typos there should be no functional change.
|
|
bounds_check_with_label() routines as identical as possible without
changing any code. Code nits and adjustments to come.
|
|
bounds_check_with_label. All callers check for <= 0, so no functional
change.
Feedback from miod@.
ok weingart@
|
|
|
|
(and part of setroot); ok miod
|
|
This changes nothing on legacy architectures, but is a bit faster (and simpler)
on the interesting ones.
|
|
free room in struct partition by packing fragment size and
fragments/block more tighlty and use the resulting space to make
offset and size 48 bits. For the disk part we use spare fields in
struct disklabel. Kernel converts in-mem copy of the on-disk
label if needed, disklabel(8) writes new version.
We are careful to only change fields not used by bootloaders.
Conception of basic scheme by deraadt.
ok deraadt@ krw@
|
|
preparation for translating all disk labels visible to the kernel to
the soon to arrive V1 format.
ok otto@ deraadt@
|
|
|