Age | Commit message (Collapse) | Author |
|
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@
|
|
(means i also don not have to fix the daddr_t problems)
ok miod
|
|
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
|
|
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@
|
|
|
|
prompted by/ok dlg@ deraadt@
|
|
deraadt@ dlg@.
|
|
grudgingly ok deraadt@
|
|
architectures to print it the same way.
ok henning, miod; i386 part from tom
|
|
|
|
machines. Instead -- build one solid clean MI version, and thenchange all
the architectures to use it. ok various people, tested on almost all cases.
(it is a 10094 line diff..)
|
|
__BUS_SPACE_ALIGNED_ADDRESS.
|
|
|
|
and is he trying to emulate them?
|
|
|
|
rt and such; tested and ok miod drahn
|
|
for a bare FAT12/16/32 filesystem. If one is found, spoof it as 'i'.
This enables iPod shuffles and other umass devices that are shipped
with a bare FAT32 filesystem to be used as install media. And
generally makes things easier for the user just trying to mount some
media, e.g. floppies.
Does not make it safe to write a disklabel or MBR on such a device!
That will still obliterate the FAT filesystem.
Help and suggestions from tom@ and deraadt@. Feedback and suggestions
for future enhancements from espie@ mickey@ and peter@.
ok tom@ deraadt@
|
|
right now that are supposed to be atomic with respect to interrupts and
SMP: atomic_setbits_int and atomic_clearbits_int.
All architectures other than i386 and amd64 get dummy implementations
since at first we'll be replacing operations that are done with
"a |= bit" and "a &= ~bit" today. More proper implementations will follow
kettenis@, miod@ ok
|
|
of the disk. Fixes the creation of spurious 'i' partitions on new iPod
Shuffle. And other devices with no MBR, just a FAT32 filesystem.
Pointed out most recently by Stephan A. Rickauer for his sixth
generation, clip-on iPod shuffle.
Fix tested by Stephan.
ok pedro@ tom@ miod@ 'nice' deraadt@
|
|
domain number such that we can distinguish between busses with the same bus
number that are behind different host bridges. Domains can be accessed by
using different device nodes.
ok deraadt@
|
|
iso_disklabelspoof() and udf_disklabelspoof(). Use (msg &&
iso_disklabelspoof()) instead. Makes more arch's textually consistant.
No functional change.
|
|
extended partition except on alpha, hppa, hppa64 and mips64. So don't
spoof extended partitions as 'a' and try to read a disklabel from
them. Make all archs consistant.
When we can boot from extended partitions we can change to reading and
writing disklabels from them.
This means the first OpenBSD ('A6') extended partition will now be
ignored during spoofing, just as subsequent ones have always been.
Feedback from tom@, weingart@ and deraadt@.
|
|
partitions with 0 in the length field we don't need to test for
and skip partitions that are all zeros. Eliminating that code
allows elimination of a local pointer.
"0 length partitions are definately dead" deraadt@
|
|
De-register. Move declaration to top of function for DOS MBR
processing. Indent nit in macppc.
No functional change.
|
|
than lp->d_partitions[8+n++]. All other cases already use the pointer.
No functional change.
|
|
"The dosparts member of cpu_disklabel was not used for any persistant
data. Eliminate it, and just use the data being read in while
processing MBR and EBR records.
Should be no functional change.
ok weingart@ deraadt@"
|
|
some architectures (kaboom); that will be fixed in the next iteration
hopefully!
|
|
data. Eliminate it, and just use the data being read in while
processing MBR and EBR records.
Should be no functional change.
ok weingart@ deraadt@
|
|
partition is found. Change error message to 'no OpenBSD partition'.
|
|
disklabel, we shouldn't write the disklabel in such partitions either.
Brings amd64, arm, i386, landisk, macppc, mvmeppc (which roll their
own MBR search in writedisklabel()) into line with alpha, hppa,
hppa64, mips64 (which use readdoslabel() in both reading and writing
the disklabel). If all goes well, soon everyone will be using
readdoslabel().
|
|
disklabel. Fixes 'double spoofing' of these partitions as both 'a' and
something in the 'i' to 'p' range.
OpenBSD changed its MBR partition type to 'A6' eight years ago. As a
backward compatibility measure NetBSD and FreeBSD MBR partitions were
still spoofed as 'a' partitions when no OpenBSD partition could be
found. This bit of backward compatibility is no longer required.
'we can get rid of it' deraadt@
|
|
don't include dkbad.h when nothing in it is used. Missed
arm/include/disklabel.h first time around.
|
|
don't have wd* in GENERIC, since wd* is the only place such info is
being used. First step of eliminating bad144 bad sector info from all
disklabels.
'go go go' deraadt@
|
|
r1.54 of i386/disksubr.c). The check incorrectly handled extended
partitions. Possibly a symptom of a deeper problem with extended
partition offsets that will be addressed post-4.0.
Problem reported/fix tested by A. Velichinsky, cause diagnosed by
otto@.
ok pedro@ mickey@ miod@ deraadt@
|
|
block past d_secperunit.
Fixes devices where bogus partitions with a starting offset >
d_secperunit were created. e.g. floppies formatted by Caldera DR-DOS.
ok pedro@
|
|
them return 'invalid geometry' when d_secpercyl == 0. While there move
the check to a consistant location (after the check of d_secperunit)
and use a consistant idiom (i.e. some readdisklabel()'s have no 'done'
label).
prodded by thib@ after a bad macppc experience. ok deraadt@
|
|
|
|
RAW_PART's p_size. Since d_secperunit is initialized to 0x1fffffff if
not specified there should be no need to use the magic number again.
And if d_secperunit was specified then that value should be used
instead of the magic number.
This was already being done for hp300, luna88k, mac68k, mvme68k,
mvme88k.
Should be a no-op.
|
|
offending code has been taken out and shot. ok deraadt@
|
|
calls in alpha, hppa, hppa64 and mips63 when accessing the two DOS MBR
u_int32_t fields dp_size and dp_start.
No functional change.
|