From 2da5ebdfd7cdf401d384ba25e307e68fd4c8cdc1 Mon Sep 17 00:00:00 2001
From: james <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