diff options
Diffstat (limited to 'src')
| -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) | 
