16 Commits

Author SHA1 Message Date
marcel
c946bc9408 Fix cut-n-paste bug: compare argument s against known aliases,
not the global optarg. This bug goes unnoticed because optarg
is so far always the actual argument for the formal argument s.
2006-07-07 02:44:23 +00:00
marcel
4499ab6746 Improve support for Intel based Macs:
o  Accept hfs as partition type.
o  Print Apple HFS partitions using a friendly name.
2006-06-22 22:22:32 +00:00
marcel
abc600ba4a Move the duplicated logic of parsing partition types into a new
function called parse_uuid().
2006-06-22 22:05:28 +00:00
marcel
d33cea825e Add support for setting GPT partition labels. The partitions to be
labeled are selected in the same way as with the remove command.
Update the manpage to have the selection options described for the
label command and referenced to it from the remove command.
The label can be specified on the command line with the -l option
or read from a file with the -f option. In both cases, the label
is assumed to be encoded in UTF-8.

PR: ia64/83124
MFC after: 1 week
2005-09-01 02:49:20 +00:00
marcel
982ab454f0 o Replace unicode16() by utf8_to_utf16().
o  Introduce utf16_to_utf8().
o  Add option -l to the show command to display the GPT label instead
   of the friendly partition type.
o  Add option -u to the show command to suppress the friendly output
   and print th raw UUIDs instead.
2005-08-31 05:40:41 +00:00
marcel
5fa2cd3d84 /* -> /*- for license. 2005-08-31 01:47:19 +00:00
des
e669069b43 - distinguish between the device name (what the user called it on the
command line) and the device path (what we passed to open()).  Use
  the former in diagnostics.
- when adding or removing partitions, print a single line to stdout for
  each partition that was added or removed, indicating its name.
- add an -a option to 'gpt remove' which must be explicitly specified
  to remove all partitions.

Approved by:	marcel (in prinicple)
MFC after:	2 weeks
2005-04-24 20:08:29 +00:00
marcel
187f216c02 Add byte swapping and UUID encoding/decoding to allow gpt to be compiled
on big-endian machines.

Obtained from: Dan Markarian <markarian at apple dot com>
2004-10-25 02:23:39 +00:00
marcel
aaf12b42bb Implement a remove command. The remove command iterates the GPT
partitions and removes any that matches the pre-conditions. The
options are the same for the add command and are used to select
the partitions to remove.
Currently the remove command without any options deletes all GPT
partitions. This is rather harmful and will need anti-footshooting
measures.
2004-08-07 07:41:37 +00:00
marcel
579a1870f9 o Save the partition number (=index) in the internal map. The index
starts at 1. No index is represented by 0.
o  Change the show command to display the partition number at the expense
   of the partition end columm. We already display the start and size.
o  Enhance the add command to accept the -i option. The -i option allows
   the user to specify which partition number the new partition should
   get.
o  Update the manpage accordingly.
2004-08-07 06:10:45 +00:00
marcel
4abeaed33d o Newer EFI implementations require that a GPT is preceeded by
a PMBR. Make sure the create command creates a PMBR as well
   (if not already present).
o  When parsing the MBR, explicitly check for a PMBR and create
   a PMBR map node if one is found.
o  When parsing the MBR, recurse to handle extended partitions.
   This allows us to flatten nested MBRs when migrating to a
   GPT.
o  Have the migrate command bail out if it encounters a partition
   it doesn't know how to migrate. This avoids data loss.
o  Change the output of the show command so that the UUIDs of the
   GPT partitions fit on the same line.
o  Show when partitions are extended partitions and add the PMBR
   type.

Approved by: re (blanket)
2002-12-02 01:42:03 +00:00
marcel
49a44a6174 Remove inclusion of <sys/uuid.h>. We now include <sys/uuid.h> in
<sys/gpt.h>. This avoids having to include both <sys/uuid.h> and
<uuid.h>, which is considered by your friendly committer to be
aestheticly displeasing (= ballyhoo barf barf :-)
2002-11-10 20:22:25 +00:00
marcel
31c989afa3 o Remove the fallback implementations of uuid_create(),
uuid_from_string(), uuid_is_nil() and uuid_to_string().
o  Include <uuid.h> where appropriate.
2002-11-02 07:08:15 +00:00
marcel
533c9e0971 o Add functionality to add a GPT partition,
o  Use DCE compliant UUID functions and provide local
   implementations if they don't exist,
o  Move dumping of the map to show.c and print the
   partition type,
o  Some cleanups and rearrangements.

The default GPT partition type is UFS. When no starting block
or size are specified, the tool will create a partition in the
first free space it find (or that fits, depending on the size).
2002-10-27 03:23:05 +00:00
marcel
bd5713dabc Add the functionality to create an (empty) GPT from scratch. The
code is directly copied from migrate.c. The intend is to express
migrate in terms of create and add. The functionality to add
partitions is not yet there.
2002-10-25 05:23:08 +00:00
peter
6dfc24537d Grab a snapshot of Marcel's gpt tool. This is still a work-in-progress
but is useful to have handy.  EFI GPT partitions are used instead of the
fdisk+disklabel combination.  They are pure 64 bit LBA, are fully
extensible, support up to 16383 partitons per disk, etc.
2002-07-20 19:27:43 +00:00