summaryrefslogtreecommitdiff
path: root/sbin/fdisk
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/fdisk')
-rw-r--r--sbin/fdisk/gpt.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/sbin/fdisk/gpt.c b/sbin/fdisk/gpt.c
index 5ed209a750e..9d1435c031c 100644
--- a/sbin/fdisk/gpt.c
+++ b/sbin/fdisk/gpt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gpt.c,v 1.50 2021/08/07 13:33:12 krw Exp $ */
+/* $OpenBSD: gpt.c,v 1.51 2021/08/24 15:36:05 krw Exp $ */
/*
* Copyright (c) 2015 Markus Muller <mmu@grummel.net>
* Copyright (c) 2015 Kenneth R Westerback <krw@openbsd.org>
@@ -21,6 +21,7 @@
#include <sys/dkio.h>
#include <sys/ioctl.h>
+#include <ctype.h>
#include <err.h>
#include <stdio.h>
#include <stdint.h>
@@ -301,6 +302,42 @@ GPT_print(const char *units, const int verbosity)
double size;
int i, u, status;
+#ifdef DEBUG
+ char *p;
+ uint64_t gh_sig;
+
+ gh_sig = letoh64(gh.gh_sig);
+ p = (unsigned char *)&gh_sig;
+
+ printf("gh_sig : ");
+ for (i = 0; i < sizeof(gh_sig); i++)
+ printf("%c", isprint((unsigned char)p[i]) ? p[i] : '?');
+ printf(" (");
+ for (i = 0; i < sizeof(gh_sig); i++) {
+ printf("%02x", p[i]);
+ if ((i + 1) < sizeof(uint64_t))
+ printf(":");
+ }
+ printf(")\n");
+ printf("gh_rev : %u\n", letoh32(gh.gh_rev));
+ printf("gh_size : %u (%zd)\n", letoh32(gh.gh_size), sizeof(gh));
+ printf("gh_csum : %u\n", letoh32(gh.gh_csum));
+ printf("gh_rsvd : %u\n", letoh32(gh.gh_rsvd));
+ printf("gh_lba_self : %llu\n", letoh64(gh.gh_lba_self));
+ printf("gh_lba_alt : %llu\n", letoh64(gh.gh_lba_alt));
+ printf("gh_lba_start : %llu\n", letoh64(gh.gh_lba_start));
+ printf("gh_lba_end : %llu\n", letoh64(gh.gh_lba_end));
+ p = NULL;
+ uuid_to_string(&gh.gh_guid, &p, &status);
+ printf("gh_gh_guid : %s\n", (status == uuid_s_ok) ? p : "<invalid>");
+ free(p);
+ printf("gh_gh_part_lba : %llu\n", letoh64(gh.gh_part_lba));
+ printf("gh_gh_part_num : %u (%zu)\n", letoh32(gh.gh_part_num), nitems(gp));
+ printf("gh_gh_part_size: %u (%zu)\n", letoh32(gh.gh_part_size), sizeof(gp[0]));
+ printf("gh_gh_part_csum: %u\n", letoh32(gh.gh_part_csum));
+ printf("\n");
+#endif /* DEBUG */
+
u = unit_lookup(units);
size = ((double)DL_GETDSIZE(&dl) * secsize) / unit_types[u].ut_conversion;
printf("Disk: %s Usable LBA: %llu to %llu [%.0f ",