/*
 * $Id: flash_check.c,v 1.1.1.1 1999/05/03 14:42:20 andrewm Exp $
 *
 * Flash verification
 */

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char **argv)
{
  int i;
  FILE *fh, *flash;

  if (argc < 2) {
    fprintf (stderr, "Usage: %s <flash_file_name>\n", argv[0]);
    exit (EXIT_FAILURE);
  }
  
  fh = fopen (argv[1], "r");
  if (fh == 0) {
    fprintf (stderr, "Failed to open %s\n", argv[1]);
    exit (EXIT_FAILURE);
  }
  
  flash = fopen ("/dev/flash", "r");
  if (flash == 0) {
    fprintf (stderr, "Failed to open /dev/flash\n");
    exit (EXIT_FAILURE);
  }

  for (i=0; i<1024*1024; i++) {
    char c1, c2;
    c1 = getc (fh);
    if (feof(fh)) break;
    c2 = getc (flash);
    if (feof(flash)) {
      fprintf (stderr, "Flash read failed at offset %d\n", i);
      exit (EXIT_FAILURE);
    }
    if (c1 != c2) {
      fprintf (stderr, "Flash data compare error at offset %d\n", i);
      exit (EXIT_FAILURE);
    }
  }
  
  fclose (flash);
  fclose (fh);
  fprintf (stderr, "Flash compare was successful.\n");
  return EXIT_SUCCESS;
}

