diff options
author | james <james> | 2012-03-11 11:15:50 +0000 |
---|---|---|
committer | james <james> | 2012-03-11 11:15:50 +0000 |
commit | 2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1 (patch) | |
tree | df871ccf3e702e96b7975f340c18dfc7167ec3e1 /src/gpt.c | |
parent | f0941764d6f94e99995176ab95f0f5926de71167 (diff) | |
download | gpt-2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1.tar.gz gpt-2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1.tar.bz2 gpt-2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1.zip |
*** empty log message ***
Diffstat (limited to 'src/gpt.c')
-rw-r--r-- | src/gpt.c | 25 |
1 files changed, 23 insertions, 2 deletions
@@ -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) |