OpenBSD CVS

CVS log for src/sbin/pdisk/partition_map.c


[BACK] Up to [local] / src / sbin / pdisk

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.99 / (download) - annotate - [select for diffs], Wed Jul 31 00:14:10 2019 UTC (4 years, 10 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, HEAD
Changes since 1.98: +4 -4 lines
Diff to previous 1.98 (colored)

Allow sbBlkCount to be less than the number of physical sectors on the
disk.

Fixes dealing with MacOS 9.2.2 formatted disk, allowing dual boot
again.

Problem reported and fix tested by Donovan Watteau on his B&W
G3. Thanks!

Revision 1.98 / (download) - annotate - [select for diffs], Mon Feb 1 12:53:37 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.97: +42 -50 lines
Diff to previous 1.97 (colored)

Un-shorten some lines that don't need breaking anymore. Remove a couple of
indent levels by shuffling code bit.

Revision 1.97 / (download) - annotate - [select for diffs], Sun Jan 31 23:00:11 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.96: +2 -5 lines
Diff to previous 1.96 (colored)

Nuke pointless map field 'physical_block' and just use 'sbBlkSize' which is
set to the same value.

Revision 1.96 / (download) - annotate - [select for diffs], Sun Jan 31 22:26:52 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.95: +10 -7 lines
Diff to previous 1.95 (colored)

Use delete_entry()/create_entry() in delete_partition_from_map() instead of
trying to be clever and tweaking the existing entry into a free space
entry by manual manipulation of the fields.

Revision 1.95 / (download) - annotate - [select for diffs], Sun Jan 31 22:12:35 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.94: +24 -37 lines
Diff to previous 1.94 (colored)

Fold add_data_to_map() into create_entry() as the former is always called
immediately after the latter, manipulating fields in the same structure.

Use create_entry() in create_partition() rather than doing the same
actions manually.

Revision 1.94 / (download) - annotate - [select for diffs], Sun Jan 31 17:19:26 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.93: +22 -5 lines
Diff to previous 1.93 (colored)

Don't use add_data_to_map() when reading from disk, since it resets some
of the dpme_ fields, overwriting data from disk.

Add some paranoia checks for map limits when reading from disk.

Revision 1.93 / (download) - annotate - [select for diffs], Sun Jan 31 15:28:56 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.92: +2 -5 lines
Diff to previous 1.92 (colored)

Just call contains_driver() when you need to know rather than carrying a
flag around. More obviously current data. Nuke unnecessary variables
when displaying a partition.

Revision 1.92 / (download) - annotate - [select for diffs], Sun Jan 31 13:53:23 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.91: +10 -14 lines
Diff to previous 1.91 (colored)

Apple sets lblock_start and lblocks to 0 in free space entries. Do
the same.

Don't use lblock_start or lblocks in calculation for length@base
display. We no longer display lblock info there.

Revision 1.91 / (download) - annotate - [select for diffs], Sat Jan 30 17:21:10 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.90: +1 -2 lines
Diff to previous 1.90 (colored)

Move last three lines (#define's) from dpme.h to partition_map.h and
tweak #include's as necessary.

Revision 1.90 / (download) - annotate - [select for diffs], Sat Jan 30 17:09:11 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.89: +140 -157 lines
Diff to previous 1.89 (colored)

Fold struct dpme into struct entry. Same reasons as for folding
struct block0 into struct partition_map. Easier to read code.

Revision 1.89 / (download) - annotate - [select for diffs], Sat Jan 30 15:35:56 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.88: +59 -70 lines
Diff to previous 1.88 (colored)

Refactor add_partition_to_map() to be simpler if perhaps less
performance optimized. New logic will simplify merging struct
dpme into struct entry.

Revision 1.88 / (download) - annotate - [select for diffs], Sat Jan 30 14:24:47 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.87: +43 -62 lines
Diff to previous 1.87 (colored)

There is not much to do if we run out of memory, so simply exit if
a malloc() or calloc() fails. Simplifies a bunch of logic, makes
add_data_to_map() always succeed or exit, so make it a void.

Revision 1.87 / (download) - annotate - [select for diffs], Fri Jan 29 22:51:43 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.86: +42 -75 lines
Diff to previous 1.86 (colored)

Fold struct block0 into struct partition map. There can be only one
and read/write_block0() can move the data from/to disk to/from
appropriate fields anywhere. Removes a bunch of dereferencing,
malloc'ing and pointer checking.

Revision 1.86 / (download) - annotate - [select for diffs], Fri Jan 29 17:34:08 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.85: +7 -1 lines
Diff to previous 1.85 (colored)

Warn of partitions extending past the end of the media.

Revision 1.85 / (download) - annotate - [select for diffs], Fri Jan 29 15:06:37 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.84: +2 -3 lines
Diff to previous 1.84 (colored)

Shorter names means a few whitespace adjustments.

Revision 1.84 / (download) - annotate - [select for diffs], Fri Jan 29 14:54:38 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.83: +27 -27 lines
Diff to previous 1.83 (colored)

Rename struct partition_map_header to struct partition_map. No change to
.o files.

Revision 1.83 / (download) - annotate - [select for diffs], Fri Jan 29 14:48:20 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.82: +33 -33 lines
Diff to previous 1.82 (colored)

Rename struct partition_map to struct entry. No change to .o files.

Revision 1.82 / (download) - annotate - [select for diffs], Fri Jan 29 14:26:42 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.81: +9 -9 lines
Diff to previous 1.81 (colored)

Conform to Apple Mac OS X's behaviour of setting dpme_flags on free
partitions to 0, and setting them to VALID | ALLOCATED on the map
partition.

Revision 1.81 / (download) - annotate - [select for diffs], Fri Jan 29 12:16:41 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.80: +2 -8 lines
Diff to previous 1.80 (colored)

Conform to Apple Mac OS X's behaviour of not giving 'Apple_Free'
partitions a name. Nuke kFreeName.

Revision 1.80 / (download) - annotate - [select for diffs], Thu Jan 28 22:09:56 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.79: +38 -58 lines
Diff to previous 1.79 (colored)

Flip base_order to a LIST().

Revision 1.79 / (download) - annotate - [select for diffs], Thu Jan 28 22:01:00 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.78: +16 -27 lines
Diff to previous 1.78 (colored)

Delete a bunch of Morris dancing in delete_partition_from_map().
No need to create a new dpme. Just rename/retype the existing and
let combine_entry() suck in any surrounding empty space partitions.

Revision 1.78 / (download) - annotate - [select for diffs], Thu Jan 28 19:07:45 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.77: +27 -62 lines
Diff to previous 1.77 (colored)

Hand rolled lists suck. First, replace disk_order with an LIST.

Revision 1.77 / (download) - annotate - [select for diffs], Thu Jan 28 18:12:51 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.76: +2 -1 lines
Diff to previous 1.76 (colored)

Oops. Deleted one too many lines. Need to advance pointer when traversing
list.

Revision 1.76 / (download) - annotate - [select for diffs], Thu Jan 28 17:17:57 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.75: +2 -47 lines
Diff to previous 1.75 (colored)

When adding a new partition to the map, use only existing mapped
space. Don't try to create new free space partitions to use. If the
map does not know about all of the space on the disk, it is broken.

Revision 1.75 / (download) - annotate - [select for diffs], Thu Jan 28 13:09:21 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.74: +4 -10 lines
Diff to previous 1.74 (colored)

Since we don't allow maps to be created or opened with an invalid
block0, there is no point in checking later if block0 has magically
become invalid.

Revision 1.74 / (download) - annotate - [select for diffs], Thu Jan 28 13:01:33 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.73: +2 -2 lines
Diff to previous 1.73 (colored)

Use consistent 'return' idiom -- no parenthesis since that was the style
of the existing code.

Revision 1.73 / (download) - annotate - [select for diffs], Thu Jan 28 01:00:53 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.72: +31 -12 lines
Diff to previous 1.72 (colored)

Make 'r' (reorder, a.k.a. swap) command work with any two existing
partitions.  Do NOT allow partition 1 to be moved!

Revision 1.72 / (download) - annotate - [select for diffs], Wed Jan 27 23:59:12 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.71: +4 -4 lines
Diff to previous 1.71 (colored)

Traverse next_by_base when checking maps coverage, not next_on_disk!

Revision 1.71 / (download) - annotate - [select for diffs], Wed Jan 27 14:47:53 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.70: +7 -15 lines
Diff to previous 1.70 (colored)

We do not support logical_block != physical_block. Remove logical_block
field and left over code that checks for logical != physical.

Removes confusion with dmpe fields lblock_start and lblocks, which
have nothing to do with block sizes! lblock_start is the block
offset within the partition where the data actually starts. and
lblocks is the number of blocks of data within the partition. Both
are in units of *physical blocks*, a.k.a. disk sectors.

Revision 1.70 / (download) - annotate - [select for diffs], Wed Jan 27 14:19:59 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.69: +57 -5 lines
Diff to previous 1.69 (colored)

Check block 0 signature, physical block size and physical block count when
reading partition map.

Check for unmapped physical blocks and overlapping partitions when reading
partition map.

No need for duplicate checks in validate_map(), so remove validate.c from
build and 'v' command from code and docs.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jan 27 00:03:52 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.68: +3 -5 lines
Diff to previous 1.68 (colored)

Nuke another (and I hope final) batch of superfluous '{}' around single
statements.

Revision 1.68 / (download) - annotate - [select for diffs], Tue Jan 26 21:07:54 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.67: +7 -5 lines
Diff to previous 1.67 (colored)

dpme_name and dpme_type are NUL-terminated in Apple code, so use
strlcpy() to fill them.

They are also supposed to be NUL-padded so zap previous contents
before copying in possibly shorter new values.

Revision 1.67 / (download) - annotate - [select for diffs], Tue Jan 26 16:39:00 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.66: +46 -69 lines
Diff to previous 1.66 (colored)

Whitespace, line wrapping fixes. Nuke many superfluous '{}' around single
statements. 0 -> NULL for pointer checks.

Revision 1.66 / (download) - annotate - [select for diffs], Tue Jan 26 16:13:09 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.65: +7 -8 lines
Diff to previous 1.65 (colored)

Whitespace, line wrapping fixes.

Revision 1.65 / (download) - annotate - [select for diffs], Tue Jan 26 02:38:05 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.64: +27 -56 lines
Diff to previous 1.64 (colored)

Simplify logic of read_partition_map(), junking retries with various sizes
of logical block. Rely on read_dpme() to do the correct thing.

Revision 1.64 / (download) - annotate - [select for diffs], Mon Jan 25 23:43:20 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.63: +12 -22 lines
Diff to previous 1.63 (colored)

Use new read/write_block0 and read/write_dpme which handle any
endian or alignment issues forcefully. Removes need for convert_*
functions so unhook convert.c from build. read/write_block become
static functions inside file_media.c.

Tweak struct block0 to stop trying to handle alignment issues by clever
declaration. Rely on the new functions to accurately translate between
on-disk and in-memory layouts.

Enables pdisk to work on amd64 and likely other architectures if
it's ever desirable. Does bring back DEV_BSIZE to pdisk.c since the
in-memory structure will *not* be 512 bytes on other archs.

Revision 1.63 / (download) - annotate - [select for diffs], Sun Jan 24 15:23:33 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored)

Whitespace.

Revision 1.62 / (download) - annotate - [select for diffs], Sun Jan 24 15:18:50 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.61: +5 -9 lines
Diff to previous 1.61 (colored)

Nuke get_align_long() and put_align_long() #define's. They don't do
anything according to gcc & cmp.

cmp suggested by & ok stefan@.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Jan 24 01:38:32 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.60: +26 -24 lines
Diff to previous 1.60 (colored)

Whitespace fixes.

Revision 1.60 / (download) - annotate - [select for diffs], Sun Jan 24 01:09:08 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.59: +1 -2 lines
Diff to previous 1.59 (colored)

Delete duplicated line that was setting sbBlkCount to 0; Score one
for the 'v' command!

Revision 1.59 / (download) - annotate - [select for diffs], Sat Jan 23 23:25:58 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.58: +2 -2 lines
Diff to previous 1.58 (colored)

Nuke unused kPatchType. Nuke kStringNot and use " not' where needed.
Nuke kStringEmpty and use "" where needed. Nuke unused static 'g'.

Eliminate #include's in *.h files.

Some whitespace fixes.

Revision 1.58 / (download) - annotate - [select for diffs], Sat Jan 23 15:05:52 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.57: +15 -16 lines
Diff to previous 1.57 (colored)

Pass the disk sector size to open_partition_map(), eliminating it's
internal need for DEV_BSIZE. Ditto create_partition_map().

malloc((sizeof(struct [block0|dpme])) instead of malloc(DEV_BSIZE).

Remove another #include <param.h>.

Revision 1.57 / (download) - annotate - [select for diffs], Sat Jan 23 14:10:05 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.56: +7 -2 lines
Diff to previous 1.56 (colored)

Add comments to ensure future spelunkers realize that struct block0
and struct dpme must be 512-bytes long at the moment.

Use this fact to avoid using DEV_BSIZE and thus replace #include
<param.h> with #include <types.h> in pdisk.c.

Constrain media size to UINT32_MAX, the actual limit, instead of
LONG_MAX, which could be way more on some theoretical future arch
running pdisk. And do the constraint inside open_partition_map().

Revision 1.56 / (download) - annotate - [select for diffs], Sat Jan 23 13:24:15 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.55: +5 -2 lines
Diff to previous 1.55 (colored)

Avoid double prompt after creating default map on startup.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Jan 23 03:46:18 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.54: +5 -6 lines
Diff to previous 1.54 (colored)

Flip read_block() and write_block() back to taking sector addresses
instead of off_t values. Do the DEV_BSIZE multiplication in these two
functions.

Easier to read code and kills two #include <sys/param.h>.

Kill unused label.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Jan 23 01:43:13 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.53: +9 -29 lines
Diff to previous 1.53 (colored)

map->block0 is always allocated or the map is discarded.

So stop checking for NULL. Nuke get_block_zero() and just use
map->block0.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Jan 23 01:16:12 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.52: +3 -26 lines
Diff to previous 1.52 (colored)

Nuke sync_device_size() and do it's one-field-update in coerce_block0(),
right after we read/allocate media->block0. Doing sync *before*
media->block0 is allocated is bad.

The map->physical_block is initialized correctly and never to the
magic number '1'. So just use map-physical_block to initialize
sbBlkSize.

Revision 1.52 / (download) - annotate - [select for diffs], Sat Jan 23 01:09:29 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.51: +2 -1 lines
Diff to previous 1.51 (colored)

Always initialize media_size to provided mediasz in open_partition_map().

Revision 1.51 / (download) - annotate - [select for diffs], Sat Jan 23 01:03:46 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.50: +3 -3 lines
Diff to previous 1.50 (colored)

Break annoying long line.

Revision 1.50 / (download) - annotate - [select for diffs], Fri Jan 22 18:57:42 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.49: +172 -171 lines
Diff to previous 1.49 (colored)

Change partition map field 'data' to 'dmpe'. Change 'create_data'
to 'create_dmpe'. Sweep up some 'struct dpme *data' to struct dpme
*dpme'.

Revision 1.49 / (download) - annotate - [select for diffs], Fri Jan 22 17:35:16 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.48: +16 -16 lines
Diff to previous 1.48 (colored)

Rename map field 'misc' to 'block0' since that's what it is.

Revision 1.48 / (download) - annotate - [select for diffs], Fri Jan 22 15:59:33 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.47: +3 -2 lines
Diff to previous 1.47 (colored)

Lost a fix for one invocation of write_block() in diff juggling. It
takes an off_t offset, not a disk address, for now.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Jan 22 12:31:04 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.46: +10 -29 lines
Diff to previous 1.46 (colored)

Merge read_block() and read_file_media() into read_block(). Ditto
write_block() and write_file_media(). One layer of read/write
wrappers for pread/pwrite should be enough for anyone.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Jan 22 04:16:25 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.45: +8 -4 lines
Diff to previous 1.45 (colored)

Repair creation of initial partition table on a blank disk, broken
when hoisting file operations and ioctl to main(). Pass media size
to open_partition_map() and create_partition_map() so they can
properly initialize a map.

Revision 1.45 / (download) - annotate - [select for diffs], Fri Jan 22 01:25:56 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.44: +1 -2 lines
Diff to previous 1.44 (colored)

In the "why use two variables when one would do" category, eliminate
the 'written' field and just use the 'changed' field to mediate
when it is appropriate to ask whether changes should be discarded.

Revision 1.44 / (download) - annotate - [select for diffs], Fri Jan 22 00:38:53 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.43: +3 -4 lines
Diff to previous 1.43 (colored)

Nuke 'expert' mode and the enabling, undocumented, '-d' flag by
just making all the commands available all the time. Document the
newly available commands.

Remove the former 'P' command (list partitions in base address
order) and use 'P' from expert mode (show map data structures).

Stop accepting uppercase aliases for commands documented as lower
case.

Bring the 'h' help text and man pages into agreement.

ok jasper@ millert@

Revision 1.43 / (download) - annotate - [select for diffs], Thu Jan 21 15:33:21 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.42: +40 -150 lines
Diff to previous 1.42 (colored)

Hoist all file opening and ioctl calls into main(), passing a pointer to
a valid map to edit(). Should enable pledging a la fdisk at some point.

Since edit() always gets a valid map (and maintains its validity even when
'I'nitializing a new one) many checks for (map == NULL) are junked.

Remove some dances around block sizes by using DEV_BSIZE everywhere
since we don't support non-DEV_BSIZE (a.k.a. 512-byte) sectors.

Remove many superfluous #include statements.

Revision 1.42 / (download) - annotate - [select for diffs], Thu Jan 21 02:52:52 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.41: +2 -5 lines
Diff to previous 1.41 (colored)

Nuke 'writable' field now that it is always in sync with 'rflag'. Since
(!rflag && writable == 0) can't be true remove those warning blocks and
simply leave the not-writable warning when attempting to write the
map. Always show 'w' in the help and rely on the check and warning
in do_write_partition_map() so the user always gets a message.

Revision 1.41 / (download) - annotate - [select for diffs], Thu Jan 21 01:37:18 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.40: +6 -11 lines
Diff to previous 1.40 (colored)

Don't try to be cute by silently opening a disk read-only when R/W
access was requested. Just complain when the R/W open fails. Make
failure messages consistent.

Revision 1.40 / (download) - annotate - [select for diffs], Mon Jan 18 17:57:35 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.39: +18 -21 lines
Diff to previous 1.39 (colored)

struct file_media had 1 field left. And one place where struct
file_media was actually stored. So move the last field (fd) into
the place formerly used to store pointer to the instance. As a
result we can just pass fd's around rather than pointers to a struct
containing a fd.

close_file_media() becomes empty but for a close(). So just use
close() and nuke close_file_media().

Revision 1.39 / (download) - annotate - [select for diffs], Mon Jan 18 15:30:00 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.38: +1 -3 lines
Diff to previous 1.38 (colored)

os_reload_file_media() doesn't do anything except tell you if you passed it
a NULL pointer. And the result is ignored. Nuke it. This removes the only
use of the 'regular_file' field of struct file_media. So nuke that too.

Revision 1.38 / (download) - annotate - [select for diffs], Mon Jan 18 02:50:01 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.37: +903 -865 lines
Diff to previous 1.37 (colored)

Run indent(1) over it and tweak the results a bit manually to look more
KNF'ish.

Revision 1.37 / (download) - annotate - [select for diffs], Mon Jan 18 00:04:36 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.36: +1 -2 lines
Diff to previous 1.36 (colored)

Remove a grab bag of unused #define's, fields, enum's, variables,
functions.

Revision 1.36 / (download) - annotate - [select for diffs], Sun Jan 17 23:18:19 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.35: +40 -57 lines
Diff to previous 1.35 (colored)

Change "//" comments to "/**/". Nuke really stupid ones.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jan 17 19:39:20 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.34: +16 -16 lines
Diff to previous 1.34 (colored)

Reduce namespace pollution by eliminating parameter names from forward
declarations.

Revision 1.34 / (download) - annotate - [select for diffs], Sun Jan 17 19:15:55 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.33: +5 -5 lines
Diff to previous 1.33 (colored)

Kill leading, imbedded, trailing whitespace.

Revision 1.33 / (download) - annotate - [select for diffs], Sun Jan 17 18:57:52 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.32: +1 -29 lines
Diff to previous 1.32 (colored)

Remove a bunch of ridiculous and uninformative comments like "// Defines".

Revision 1.32 / (download) - annotate - [select for diffs], Sun Jan 17 18:44:59 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.31: +13 -13 lines
Diff to previous 1.31 (colored)

The great de-typedef'ification concludes with u32 -> uint32_t. And a
bunch of consequent printf() format corrections.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Jan 17 17:44:05 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.30: +76 -76 lines
Diff to previous 1.30 (colored)

The great de-typedef'ification continues.

partition_map -> struct partition_map
partition_map_header -> struct partition_map_header

Revision 1.30 / (download) - annotate - [select for diffs], Sun Jan 17 16:26:26 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.29: +5 -5 lines
Diff to previous 1.29 (colored)

The great de-typedef'ification continues. DDMap -> struct ddmap.

Revision 1.29 / (download) - annotate - [select for diffs], Sun Jan 17 16:15:59 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.28: +5 -5 lines
Diff to previous 1.28 (colored)

The great de-typedef'ification continues. Block0 -> struct block0.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Jan 17 16:07:06 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.27: +9 -9 lines
Diff to previous 1.27 (colored)

The great de-typedef'ification continues. DPME -> struct dpme.

Revision 1.27 / (download) - annotate - [select for diffs], Sun Jan 17 15:57:12 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.26: +4 -4 lines
Diff to previous 1.26 (colored)

Let the great de-typedef'ification begin. MEDIA -> struct file_media *.

Revision 1.26 / (download) - annotate - [select for diffs], Sun Jan 17 14:28:25 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.25: +1 -45 lines
Diff to previous 1.25 (colored)

A/UX is no more, was m68k only, and we have no sentimental reasons for
keeping support.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jan 17 14:13:42 2016 UTC (8 years, 4 months ago) by jasper
Branch: MAIN
Changes since 1.24: +2 -6 lines
Diff to previous 1.24 (colored)

- tidy up a bunch of #if's for code that has been either enabled or disabled since forever,
  or not relevant at all (e.g. some bits for A/UX support)
- remove commented code that has never been compiled, etc

ok krw@

Revision 1.24 / (download) - annotate - [select for diffs], Sat Jan 16 22:28:14 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.23: +4 -4 lines
Diff to previous 1.23 (colored)

Move last field (size_in_bytes) in struct media to struct file_media
and replace MEDIA with FILE_MEDIA everywhere. media.h becomes unused.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Jan 16 21:41:41 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (colored)

There can be only one. 'grain' that is. i.e. DEV_BSIZE. No need to track
or store. Just use.

No functional change.

Revision 1.22 / (download) - annotate - [select for diffs], Sat Jan 16 20:00:50 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.21: +9 -9 lines
Diff to previous 1.21 (colored)

Start peeling away excess layers of abstraction.

Since 'file' is the only kind of media, no need to call the appropriate
functions via pointers. Just call the _file_ variants directly.
Nuke the fields do_read(), do_write(), do_close(), do_os_reload()
and the functions read_media(), write_media(), close_media() and
os_reload_media().

No functional change.

Revision 1.21 / (download) - annotate - [select for diffs], Sat Jan 16 14:49:28 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.20: +1 -4 lines
Diff to previous 1.20 (colored)

Nuke support for 1024- and 2048-byte sector devices. Error out if
anything other than 512-byte sectors are encountered. Unlink
deblock_media.c from the build.

ok jasper@

Revision 1.20 / (download) - annotate - [select for diffs], Fri Jan 15 23:05:00 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.19: +17 -17 lines
Diff to previous 1.19 (colored)

We don't need yet another alias for DEV_BSIZE. Use DEV_BSIZE and
nuke PBLOCK_SIZE and another unused #define.

Revision 1.19 / (download) - annotate - [select for diffs], Fri Jan 15 16:39:20 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.18: +8 -18 lines
Diff to previous 1.18 (colored)

Replace bitfield_get() and bitfield_set() abstraction with simple masking
operations since all the uses but 1 are for 1 bit fields. No functional
change intended.

Unhook bitfield.c from build.

Revision 1.18 / (download) - annotate - [select for diffs], Thu Jan 14 04:22:25 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.17: +1 -2 lines
Diff to previous 1.17 (colored)

Don't include hfs_misc.h, which no longer contains anything of use.

Revision 1.17 / (download) - annotate - [select for diffs], Thu Jan 14 04:17:40 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.16: +1 -7 lines
Diff to previous 1.16 (colored)

Nuke 'HFS_name' field which was not referenced now other than setting
it and freeing it. Unhook hfs_misc.c from build since it now longer
contains anything being used.

Revision 1.16 / (download) - annotate - [select for diffs], Tue Jan 12 20:09:39 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.15: +22 -24 lines
Diff to previous 1.15 (colored)

Use normal err/errx/warn/warnx rather than handrolling new ones. Move
usage() to pdisk.c and nuke do_help() and '-h'.

ok jasper@ deraadt@

Revision 1.15 / (download) - annotate - [select for diffs], Tue Jan 12 15:32:08 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.14: +4 -76 lines
Diff to previous 1.14 (colored)

Retire '-i', a poorly documented interactive mode that tries to
mimic the 20th century MacOS version of pdisk more closely than the
usual interactive editor. One set of commands is enough for anyone.

ok jasper@

Revision 1.14 / (download) - annotate - [select for diffs], Tue Jan 12 01:17:41 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.13: +1 -7 lines
Diff to previous 1.13 (colored)

Since we use the disklabel size info we are always in 'device size
mode' and '-c' and the '-d' command to toggle cflag are pointless
since cflag is never examined.

Revision 1.13 / (download) - annotate - [select for diffs], Mon Jan 11 23:31:27 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.12: +5 -5 lines
Diff to previous 1.12 (colored)

open_pathname_as_media() simply called open_file_as_media() which
takes the same parameters and returns the same value. Nuke
open_pathname_as_media() and call open_file_as_media() directly.

Nothing else from pathname.[ch] is used so remove them from build
in preparation for moving them to the attic.

ok deraadt@

Revision 1.12 / (download) - annotate - [select for diffs], Mon Jan 11 18:43:06 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.11: +16 -16 lines
Diff to previous 1.11 (colored)

Remove '-v' and related version handling. Use strncasecmp() instead
of handrolled local istrncmp(). No need to compile util.c anymore.

ok deraadt@ jasper@

Revision 1.11 / (download) - annotate - [select for diffs], Mon Jan 11 07:57:54 2016 UTC (8 years, 4 months ago) by jasper
Branch: MAIN
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored)

trailing whitespace

Revision 1.10 / (download) - annotate - [select for diffs], Mon Jan 11 07:54:07 2016 UTC (8 years, 4 months ago) by jasper
Branch: MAIN
Changes since 1.9: +2 -0 lines
Diff to previous 1.9 (colored)

add rcs ids

Revision 1.9 / (download) - annotate - [select for diffs], Sun Jan 10 22:30:49 2016 UTC (8 years, 4 months ago) by krw
Branch: MAIN
Changes since 1.8: +37 -105 lines
Diff to previous 1.8 (colored)

Use the normal method for determining a disk size. i.e. use the
device's default disklabel. Don't spew i/o's at the disk to find
the largest address that works, displaying many a 'read failed'
message along the way.

Problem noted by Brian Conway on bugs@ and jasper@.

ok jasper@

Revision 1.8 / (download) - annotate - [select for diffs], Thu Aug 20 22:02:21 2015 UTC (8 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.7: +11 -11 lines
Diff to previous 1.7 (colored)

<stdlib.h> is included, so do not need to cast result from
malloc, calloc, realloc*
ok krw millert

Revision 1.7 / (download) - annotate - [select for diffs], Wed Aug 8 12:05:22 2012 UTC (11 years, 10 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7, OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.6: +0 -4 lines
Diff to previous 1.6 (colored)

remove mac68k leftovers
ok miod@ mpi@ deraadt@ martin@

Revision 1.6 / (download) - annotate - [select for diffs], Sat Apr 29 00:43:41 2006 UTC (18 years, 1 month ago) by martin
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7, OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5, OPENBSD_4_4_BASE, OPENBSD_4_4, OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2, OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.5: +0 -19 lines
Diff to previous 1.5 (colored)

With last pdisk and full functionality for mac68k now in place, start
cleaning the maze of ifdef's not relevant for us.

This round wipes most linux and/or MacOS-only bits, more to come.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Apr 27 19:52:21 2006 UTC (18 years, 1 month ago) by martin
Branch: MAIN
Changes since 1.4: +171 -47 lines
Diff to previous 1.4 (colored)

update for pdisk 0.8a2, from NetBSD, retaining our local changes;
summing it up:

- Clean up sources - fix naming, delete old email addresses
- Added support for display of Mac volume names
- Fix block 0 display to show logical offset of drivers
- Require confirmation of quit without write
- Fix iteration to not complain about missing devices
- Warn when creating/writing a map with more than 15 entries

and, most important, add do_update_dpme() which allows us to partition
OpenBSD slices without previous MacOS setup.

Tested with shared MacOS install on macppc, procedure there remains the
same.

grammer and spelling help and ok jmc@

ok miod@

Revision 1.4 / (download) - annotate - [select for diffs], Thu Dec 2 22:22:11 2004 UTC (19 years, 6 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9, OPENBSD_3_8_BASE, OPENBSD_3_8, OPENBSD_3_7_BASE, OPENBSD_3_7
Changes since 1.3: +4 -0 lines
Diff to previous 1.3 (colored)

Default to A/UX partition type for OpenBSD newly created partitions on mac68k.
ok drahn@

Revision 1.3 / (download) - annotate - [select for diffs], Sun Jun 9 08:13:08 2002 UTC (22 years ago) by todd
Branch: MAIN
CVS Tags: OPENBSD_3_6_BASE, OPENBSD_3_6, OPENBSD_3_5_BASE, OPENBSD_3_5, OPENBSD_3_4_BASE, OPENBSD_3_4, OPENBSD_3_3_BASE, OPENBSD_3_3, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.2: +22 -22 lines
Diff to previous 1.2 (colored)

rm trailing whitespace

Revision 1.2 / (download) - annotate - [select for diffs], Fri Oct 12 04:48:02 2001 UTC (22 years, 8 months ago) by drahn
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1, OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.1: +1 -1 lines
Diff to previous 1.1 (colored)

New feature for pdisk, change the type of a parition.
Useful since that is part of the OpenBSD/macppc installation procedure.
Code by Alexander Guy,
examined by drahn@
ok deraadt@

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Sat Mar 24 00:14:09 2001 UTC (23 years, 2 months ago) by drahn
Branch: apple19980218
CVS Tags: ver1, OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

Import of pdisk from apple, BSD licensed code. Archive dated Feb 18 1998 
This is a HFS partition editing tool.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Mar 24 00:14:09 2001 UTC (23 years, 2 months ago) by drahn
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.