From 2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1 Mon Sep 17 00:00:00 2001 From: james Date: Sun, 11 Mar 2012 11:15:50 +0000 Subject: *** empty log message *** --- src/gpt.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'src') 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) -- cgit v1.2.3