diff options
Diffstat (limited to 'fs/fdos/fs.c')
| -rw-r--r-- | fs/fdos/fs.c | 58 | 
1 files changed, 28 insertions, 30 deletions
| diff --git a/fs/fdos/fs.c b/fs/fdos/fs.c index 68bbde0e2..3b9d09e49 100644 --- a/fs/fdos/fs.c +++ b/fs/fdos/fs.c @@ -33,16 +33,16 @@  /*----------------------------------------------------------------------------- - * fill_fs -- Read info on file system  + * fill_fs -- Read info on file system   *-----------------------------------------------------------------------------   */  static int fill_fs (BootSector_t *boot, Fs_t *fs)  { -     +      fs -> fat_start = __le16_to_cpu (boot -> nrsvsect);      fs -> fat_len = __le16_to_cpu (boot -> fatlen);      fs -> nb_fat = boot -> nfat; -     +      fs -> dir_start = fs -> fat_start + fs -> nb_fat * fs -> fat_len;      fs -> dir_len = __le16_to_cpu (boot -> dirents) * MDIR_SIZE / SZ_STD_SECTOR;      fs -> cluster_size = boot -> clsiz; @@ -52,7 +52,7 @@ static int fill_fs (BootSector_t *boot, Fs_t *fs)  }  /*----------------------------------------------------------------------------- - * fs_init --  + * fs_init --   *-----------------------------------------------------------------------------   */  int fs_init (Fs_t *fs) @@ -61,60 +61,58 @@ int fs_init (Fs_t *fs)      /* Initialize physical device                                            */      if (dev_open () < 0) { -        PRINTF ("Unable to initialize the fdc\n"); -        return (-1); +	PRINTF ("Unable to initialize the fdc\n"); +	return (-1);      }      init_subdir (); -     +      /* Allocate space for read the boot sector                               */      if ((boot = (BootSector_t *)malloc (sizeof (BootSector_t))) == NULL) { -        PRINTF ("Unable to allocate space for boot sector\n"); -        return (-1); +	PRINTF ("Unable to allocate space for boot sector\n"); +	return (-1);      } -     +      /* read boot sector                                                      */      if (dev_read (boot, 0, 1)){ -        PRINTF ("Error during boot sector read\n"); -        free (boot); -        return (-1); +	PRINTF ("Error during boot sector read\n"); +	free (boot); +	return (-1);      }      /* we verify it'a a DOS diskette                                         */      if (boot -> jump [0] !=  JUMP_0_1 && boot -> jump [0] !=  JUMP_0_2) { -        PRINTF ("Not a DOS diskette\n"); -        free (boot); -        return (-1); +	PRINTF ("Not a DOS diskette\n"); +	free (boot); +	return (-1);      }      if (boot -> descr < MEDIA_STD) { -        /* We handle only recent medias (type F0)                            */ -        PRINTF ("unrecognized diskette type\n"); -        free (boot); -        return (-1); +	/* We handle only recent medias (type F0)                            */ +	PRINTF ("unrecognized diskette type\n"); +	free (boot); +	return (-1);      }      if (check_dev (boot, fs) < 0) { -        PRINTF ("Bad diskette\n"); -        free (boot); -        return (-1); +	PRINTF ("Bad diskette\n"); +	free (boot); +	return (-1);      } -     +      if (fill_fs (boot, fs) < 0) { -        free (boot); +	free (boot); -        return (-1); +	return (-1);      }      /* Read FAT                                                              */      if (read_fat (boot, fs) < 0) { -        free (boot); -        return (-1); +	free (boot); +	return (-1);      }      free (boot);      return (0);  } - -  #endif |