diff options
Diffstat (limited to 'fs/fdos/fdos.c')
| -rw-r--r-- | fs/fdos/fdos.c | 128 | 
1 files changed, 64 insertions, 64 deletions
| diff --git a/fs/fdos/fdos.c b/fs/fdos/fdos.c index 8963f425f..a29f43d97 100644 --- a/fs/fdos/fdos.c +++ b/fs/fdos/fdos.c @@ -37,7 +37,7 @@ Fs_t    fs;  File_t  file;  /*----------------------------------------------------------------------------- - * dos_open --  + * dos_open --   *-----------------------------------------------------------------------------   */  int dos_open(char *name) @@ -45,59 +45,59 @@ int dos_open(char *name)      int lg;      int entry;      char *fname; -     +      /* We need to suppress the " char around the name                        */      if (name [0] == '"') { -        name ++; +	name ++;      }      lg = strlen (name);      if (name [lg - 1] == '"') { -        name [lg - 1] = '\0'; +	name [lg - 1] = '\0';      }      /* Open file system                                                      */      if (fs_init (&fs) < 0) { -        return -1; +	return -1;      }      /* Init the file descriptor                                              */      file.name = name;      file.fs = &fs; -     +      /* find the subdirectory containing the file                             */      if (open_subdir (&file) < 0) { -        return (-1); +	return (-1);      }      fname = basename (name);      /* if we try to open root directory                                      */      if (*fname == '\0') { -        file.file = file.subdir; -        return (0); +	file.file = file.subdir; +	return (0);      } -     +      /* find the file in the subdir                                           */      entry = 0;      if (vfat_lookup (&file.subdir, -                     file.fs, -                     &file.file.dir, -                     &entry, -                     0, -                     fname, -                     ACCEPT_DIR | ACCEPT_PLAIN | SINGLE | DO_OPEN, -                     0, -                     &file.file) != 0) { -        /* File not found                                                    */ -        printf ("File not found\n"); -        return (-1); +		     file.fs, +		     &file.file.dir, +		     &entry, +		     0, +		     fname, +		     ACCEPT_DIR | ACCEPT_PLAIN | SINGLE | DO_OPEN, +		     0, +		     &file.file) != 0) { +	/* File not found                                                    */ +	printf ("File not found\n"); +	return (-1);      }      return 0;  }  /*----------------------------------------------------------------------------- - * dos_read --  + * dos_read --   *-----------------------------------------------------------------------------   */  int dos_read (ulong addr) @@ -106,27 +106,27 @@ int dos_read (ulong addr)      /* Try to boot a directory ?                                             */      if (file.file.dir.attr & (ATTR_DIRECTORY | ATTR_VOLUME)) { -        printf ("Unable to boot %s !!\n", file.name); -        return (-1); +	printf ("Unable to boot %s !!\n", file.name); +	return (-1);      }      while (read < file.file.FileSize) { -        PRINTF ("read_file (%ld)\n", (file.file.FileSize - read)); -        nb = read_file (&fs, -                        &file.file, -                        (char *)addr + read, -                        read, -                        (file.file.FileSize - read)); -        PRINTF ("read_file -> %d\n", nb); -        if (nb < 0) { -            printf ("read error\n"); -            return (-1); -        } -        read += nb; +	PRINTF ("read_file (%ld)\n", (file.file.FileSize - read)); +	nb = read_file (&fs, +			&file.file, +			(char *)addr + read, +			read, +			(file.file.FileSize - read)); +	PRINTF ("read_file -> %d\n", nb); +	if (nb < 0) { +	    printf ("read error\n"); +	    return (-1); +	} +	read += nb;      }      return (read);  }  /*----------------------------------------------------------------------------- - * dos_dir --  + * dos_dir --   *-----------------------------------------------------------------------------   */  int dos_dir (void) @@ -134,39 +134,39 @@ int dos_dir (void)      int entry;      Directory_t dir;      char *name; -     -     + +      if ((file.file.dir.attr & ATTR_DIRECTORY) == 0) { -        printf ("%s: not a directory !!\n", file.name); -        return (1); +	printf ("%s: not a directory !!\n", file.name); +	return (1);      }      entry = 0;      if ((name = malloc (MAX_VNAMELEN + 1)) == NULL) { -        PRINTF ("Allcation error\n"); -        return (1); +	PRINTF ("Allcation error\n"); +	return (1);      } -     +      while (vfat_lookup (&file.file, -                        file.fs, -                        &dir, -                        &entry, -                        0, -                        NULL, -                        ACCEPT_DIR | ACCEPT_PLAIN | MATCH_ANY, -                        name, -                        NULL) == 0) { -        /* Display file info                                                 */ -        printf ("%3.3s %9d %s %02d %04d %02d:%02d:%02d %s\n", -                (dir.attr & ATTR_DIRECTORY) ? "dir" : "   ", -                __le32_to_cpu (dir.size), -                month [DOS_MONTH (&dir) - 1], -                DOS_DAY (&dir), -                DOS_YEAR (&dir), -                DOS_HOUR (&dir), -                DOS_MINUTE (&dir), -                DOS_SEC (&dir), -                name); -         +			file.fs, +			&dir, +			&entry, +			0, +			NULL, +			ACCEPT_DIR | ACCEPT_PLAIN | MATCH_ANY, +			name, +			NULL) == 0) { +	/* Display file info                                                 */ +	printf ("%3.3s %9d %s %02d %04d %02d:%02d:%02d %s\n", +		(dir.attr & ATTR_DIRECTORY) ? "dir" : "   ", +		__le32_to_cpu (dir.size), +		month [DOS_MONTH (&dir) - 1], +		DOS_DAY (&dir), +		DOS_YEAR (&dir), +		DOS_HOUR (&dir), +		DOS_MINUTE (&dir), +		DOS_SEC (&dir), +		name); +      }      free (name);      return (0); |