aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjames <james>2012-03-11 11:15:50 +0000
committerjames <james>2012-03-11 11:15:50 +0000
commit2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1 (patch)
treedf871ccf3e702e96b7975f340c18dfc7167ec3e1
parentf0941764d6f94e99995176ab95f0f5926de71167 (diff)
downloadgpt-2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1.tar.gz
gpt-2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1.tar.bz2
gpt-2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1.zip
*** empty log message ***
-rw-r--r--src/gpt.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/gpt.c b/src/gpt.c
index a69c35c..564da76 100644
--- a/src/gpt.c
+++ b/src/gpt.c
@@ -6,10 +6,13 @@
*
*/
-static char rcsid[] = "$Id: gpt.c,v 1.19 2012/03/11 10:54:21 james Exp $";
+static char rcsid[] = "$Id: gpt.c,v 1.20 2012/03/11 11:15:50 james Exp $";
/*
* $Log: gpt.c,v $
+ * Revision 1.20 2012/03/11 11:15:50 james
+ * *** empty log message ***
+ *
* Revision 1.19 2012/03/11 10:54:21 james
* *** empty log message ***
*
@@ -114,13 +117,31 @@ main (int argc, char *argv[])
uint64_t start_lba, end_lba;
extern char *optarg;
extern int optind;
+ uint32_t crc;
fprintf (stderr, "sizeof(off_t)=%d\n", sizeof (off_t));
- while ((c = getopt (argc, argv, "qd:hlsef:g:unac")) != EOF)
+ while ((c = getopt (argc, argv, "Cqd:hlsef:g:unac")) != EOF)
{
switch (c)
{
+
+ case 'C':
+ n=0;
+
+ if (d) {
+ h = headers_get (d);
+ crc = header_calc_ent_crc (d, &h.header);
+ n=(crc == h.header.partition_entry_crc) ? 1:0;
+
+ if (n) {
+ crc = header_calc_ent_crc (d, &h.alt_header);
+ n=(crc == h.alt_header.partition_entry_crc) ? 1:0;
+ }
+ }
+
+ printf("%d\n",n);
+ return n?0:-1;
case 'd':
d = disk_open (optarg);
if (!d)