OpenCores
URL https://opencores.org/ocsvn/eco32/eco32/trunk

Subversion Repositories eco32

[/] [eco32/] [trunk/] [disk/] [tools/] [mkpart/] [mkpart.c] - Diff between revs 17 and 258

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 17 Rev 258
Line 18... Line 18...
 
 
unsigned char buf[32 * SECTOR_SIZE];
unsigned char buf[32 * SECTOR_SIZE];
 
 
 
 
typedef struct {
typedef struct {
  unsigned long type;
  unsigned int type;
  unsigned long start;
  unsigned int start;
  unsigned long size;
  unsigned int size;
  char descr[DESCR_SIZE];
  char descr[DESCR_SIZE];
} PartEntry;
} PartEntry;
 
 
PartEntry ptr[NPE];
PartEntry ptr[NPE];
 
 
Line 45... Line 45...
 
 
 
 
/**************************************************************/
/**************************************************************/
 
 
 
 
void convertNumber(unsigned char *p, unsigned long val) {
void convertNumber(unsigned char *p, unsigned int val) {
  *(p + 0) = val >> 24;
  *(p + 0) = val >> 24;
  *(p + 1) = val >> 16;
  *(p + 1) = val >> 16;
  *(p + 2) = val >>  8;
  *(p + 2) = val >>  8;
  *(p + 3) = val >>  0;
  *(p + 3) = val >>  0;
}
}
Line 69... Line 69...
 
 
 
 
/**************************************************************/
/**************************************************************/
 
 
 
 
int parseNumber(char **pc, unsigned long *pi) {
int parseNumber(char **pc, unsigned int *pi) {
  char *p;
  char *p;
  unsigned int base, dval;
  unsigned int base, dval;
  unsigned long n;
  unsigned int n;
 
 
  p = *pc;
  p = *pc;
  while (*p == ' ' || *p == '\t') {
  while (*p == ' ' || *p == '\t') {
    p++;
    p++;
  }
  }
Line 161... Line 161...
  char *diskName;
  char *diskName;
  char *confName;
  char *confName;
  FILE *disk;
  FILE *disk;
  FILE *conf;
  FILE *conf;
  unsigned long diskSize;
  unsigned long diskSize;
  unsigned long numSectors;
  unsigned int numSectors;
  char line[LINE_SIZE];
  char line[LINE_SIZE];
  char *p, *q;
  char *p, *q;
  int lineNumber;
  int lineNumber;
  FILE *mbootblk;
  FILE *mbootblk;
  long mbootblkSize;
  long mbootblkSize;
  int i;
  int i;
  unsigned long partNum;
  unsigned int partNum;
  unsigned long bootable;
  unsigned int bootable;
  unsigned long partType;
  unsigned int partType;
  unsigned long partStart;
  unsigned int partStart;
  unsigned long partLast;
  unsigned int partLast;
  unsigned long partSize;
  unsigned int partSize;
  char descr[LINE_SIZE];
  char descr[LINE_SIZE];
 
 
  /* check command line arguments */
  /* check command line arguments */
  if (argc != 3) {
  if (argc != 3) {
    printf("Usage: %s <disk image file> <configuration file>\n", argv[0]);
    printf("Usage: %s <disk image file> <configuration file>\n", argv[0]);
Line 192... Line 192...
  }
  }
  fseek(disk, 0, SEEK_END);
  fseek(disk, 0, SEEK_END);
  diskSize = ftell(disk);
  diskSize = ftell(disk);
  numSectors = diskSize / SECTOR_SIZE;
  numSectors = diskSize / SECTOR_SIZE;
  fclose(disk);
  fclose(disk);
  printf("Disk '%s' has %lu (0x%lX) sectors.\n",
  printf("Disk '%s' has %u (0x%X) sectors.\n",
         diskName, numSectors, numSectors);
         diskName, numSectors, numSectors);
  if (numSectors < 32) {
  if (numSectors < 32) {
    error("disk is too small");
    error("disk is too small");
  }
  }
  if (diskSize % SECTOR_SIZE != 0) {
  if (diskSize % SECTOR_SIZE != 0) {
Line 333... Line 333...
    if (ptr[partNum].type != 0) {
    if (ptr[partNum].type != 0) {
      partLast = ptr[partNum].start + ptr[partNum].size - 1;
      partLast = ptr[partNum].start + ptr[partNum].size - 1;
    } else {
    } else {
      partLast = 0;
      partLast = 0;
    }
    }
    printf("%2lu %s 0x%08lX 0x%08lX 0x%08lX 0x%08lX %s\n",
    printf("%2u %s 0x%08X 0x%08X 0x%08X 0x%08X %s\n",
           partNum,
           partNum,
           ptr[partNum].type & 0x80000000 ? "*" : " ",
           ptr[partNum].type & 0x80000000 ? "*" : " ",
           ptr[partNum].type & 0x7FFFFFFF,
           ptr[partNum].type & 0x7FFFFFFF,
           ptr[partNum].start,
           ptr[partNum].start,
           partLast,
           partLast,

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.