Преглед на файлове

fs/fat: Big code cleanup.

- reformat
- throw out macros like FAT_DPRINT and FAT_DPRINT
- remove dead code

Signed-off-by: Wolfgang Denk <wd@denx.de>
Wolfgang Denk преди 14 години
родител
ревизия
7385c28e9b
променени са 4 файла, в които са добавени 659 реда и са изтрити 733 реда
  1. 38 172
      common/cmd_fat.c
  2. 587 518
      fs/fat/fat.c
  3. 5 9
      fs/fat/file.c
  4. 29 34
      include/fat.h

+ 38 - 172
common/cmd_fat.c

@@ -45,39 +45,43 @@ int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	char *ep;
 
 	if (argc < 5) {
-		printf ("usage: fatload <interface> <dev[:part]> <addr> <filename> [bytes]\n");
+		printf( "usage: fatload <interface> <dev[:part]> "
+			"<addr> <filename> [bytes]\n");
 		return 1;
 	}
-	dev = (int)simple_strtoul (argv[2], &ep, 16);
-	dev_desc=get_dev(argv[1],dev);
-	if (dev_desc==NULL) {
-		puts ("\n** Invalid boot device **\n");
+
+	dev = (int)simple_strtoul(argv[2], &ep, 16);
+	dev_desc = get_dev(argv[1],dev);
+	if (dev_desc == NULL) {
+		puts("\n** Invalid boot device **\n");
 		return 1;
 	}
 	if (*ep) {
 		if (*ep != ':') {
-			puts ("\n** Invalid boot device, use `dev[:part]' **\n");
+			puts("\n** Invalid boot device, use `dev[:part]' **\n");
 			return 1;
 		}
 		part = (int)simple_strtoul(++ep, NULL, 16);
 	}
 	if (fat_register_device(dev_desc,part)!=0) {
-		printf ("\n** Unable to use %s %d:%d for fatload **\n",argv[1],dev,part);
+		printf("\n** Unable to use %s %d:%d for fatload **\n",
+			argv[1], dev, part);
 		return 1;
 	}
-	offset = simple_strtoul (argv[3], NULL, 16);
+	offset = simple_strtoul(argv[3], NULL, 16);
 	if (argc == 6)
-		count = simple_strtoul (argv[5], NULL, 16);
+		count = simple_strtoul(argv[5], NULL, 16);
 	else
 		count = 0;
-	size = file_fat_read (argv[4], (unsigned char *) offset, count);
+	size = file_fat_read(argv[4], (unsigned char *)offset, count);
 
 	if(size==-1) {
-		printf("\n** Unable to read \"%s\" from %s %d:%d **\n",argv[4],argv[1],dev,part);
+		printf("\n** Unable to read \"%s\" from %s %d:%d **\n",
+			argv[4], argv[1], dev, part);
 		return 1;
 	}
 
-	printf ("\n%ld bytes read\n", size);
+	printf("\n%ld bytes read\n", size);
 
 	sprintf(buf, "%lX", size);
 	setenv("filesize", buf);
@@ -104,34 +108,35 @@ int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	block_dev_desc_t *dev_desc=NULL;
 
 	if (argc < 3) {
-		printf ("usage: fatls <interface> <dev[:part]> [directory]\n");
-		return (0);
+		printf("usage: fatls <interface> <dev[:part]> [directory]\n");
+		return 0;
 	}
-	dev = (int)simple_strtoul (argv[2], &ep, 16);
-	dev_desc=get_dev(argv[1],dev);
-	if (dev_desc==NULL) {
-		puts ("\n** Invalid boot device **\n");
+	dev = (int)simple_strtoul(argv[2], &ep, 16);
+	dev_desc = get_dev(argv[1],dev);
+	if (dev_desc == NULL) {
+		puts("\n** Invalid boot device **\n");
 		return 1;
 	}
 	if (*ep) {
 		if (*ep != ':') {
-			puts ("\n** Invalid boot device, use `dev[:part]' **\n");
+			puts("\n** Invalid boot device, use `dev[:part]' **\n");
 			return 1;
 		}
 		part = (int)simple_strtoul(++ep, NULL, 16);
 	}
 	if (fat_register_device(dev_desc,part)!=0) {
-		printf ("\n** Unable to use %s %d:%d for fatls **\n",argv[1],dev,part);
+		printf("\n** Unable to use %s %d:%d for fatls **\n",
+			argv[1], dev, part);
 		return 1;
 	}
 	if (argc == 4)
-		ret = file_fat_ls (argv[3]);
+		ret = file_fat_ls(argv[3]);
 	else
-		ret = file_fat_ls (filename);
+		ret = file_fat_ls(filename);
 
 	if(ret!=0)
 		printf("No Fat FS detected\n");
-	return (ret);
+	return ret;
 }
 
 U_BOOT_CMD(
@@ -149,27 +154,28 @@ int do_fat_fsinfo (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	block_dev_desc_t *dev_desc=NULL;
 
 	if (argc < 2) {
-		printf ("usage: fatinfo <interface> <dev[:part]>\n");
-		return (0);
+		printf("usage: fatinfo <interface> <dev[:part]>\n");
+		return 0;
 	}
-	dev = (int)simple_strtoul (argv[2], &ep, 16);
-	dev_desc=get_dev(argv[1],dev);
-	if (dev_desc==NULL) {
-		puts ("\n** Invalid boot device **\n");
+	dev = (int)simple_strtoul(argv[2], &ep, 16);
+	dev_desc = get_dev(argv[1],dev);
+	if (dev_desc == NULL) {
+		puts("\n** Invalid boot device **\n");
 		return 1;
 	}
 	if (*ep) {
 		if (*ep != ':') {
-			puts ("\n** Invalid boot device, use `dev[:part]' **\n");
+			puts("\n** Invalid boot device, use `dev[:part]' **\n");
 			return 1;
 		}
 		part = (int)simple_strtoul(++ep, NULL, 16);
 	}
 	if (fat_register_device(dev_desc,part)!=0) {
-		printf ("\n** Unable to use %s %d:%d for fatinfo **\n",argv[1],dev,part);
+		printf("\n** Unable to use %s %d:%d for fatinfo **\n",
+			argv[1], dev, part);
 		return 1;
 	}
-	return (file_fat_detectfs ());
+	return file_fat_detectfs();
 }
 
 U_BOOT_CMD(
@@ -178,143 +184,3 @@ U_BOOT_CMD(
 	"<interface> <dev[:part]>\n"
 	"    - print information about filesystem from 'dev' on 'interface'"
 );
-
-#ifdef NOT_IMPLEMENTED_YET
-/* find first device whose first partition is a DOS filesystem */
-int find_fat_partition (void)
-{
-	int i, j;
-	block_dev_desc_t *dev_desc;
-	unsigned char *part_table;
-	unsigned char buffer[ATA_BLOCKSIZE];
-
-	for (i = 0; i < CONFIG_SYS_IDE_MAXDEVICE; i++) {
-		dev_desc = ide_get_dev (i);
-		if (!dev_desc) {
-			debug ("couldn't get ide device!\n");
-			return (-1);
-		}
-		if (dev_desc->part_type == PART_TYPE_DOS) {
-			if (dev_desc->
-				block_read (dev_desc->dev, 0, 1, (ulong *) buffer) != 1) {
-				debug ("can't perform block_read!\n");
-				return (-1);
-			}
-			part_table = &buffer[0x1be];	/* start with partition #4 */
-			for (j = 0; j < 4; j++) {
-				if ((part_table[4] == 1 ||	/* 12-bit FAT */
-				     part_table[4] == 4 ||	/* 16-bit FAT */
-				     part_table[4] == 6) &&	/* > 32Meg part */
-				    part_table[0] == 0x80) {	/* bootable? */
-					curr_dev = i;
-					part_offset = part_table[11];
-					part_offset <<= 8;
-					part_offset |= part_table[10];
-					part_offset <<= 8;
-					part_offset |= part_table[9];
-					part_offset <<= 8;
-					part_offset |= part_table[8];
-					debug ("found partition start at %ld\n", part_offset);
-					return (0);
-				}
-				part_table += 16;
-			}
-		}
-	}
-
-	debug ("no valid devices found!\n");
-	return (-1);
-}
-
-int
-do_fat_dump (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char * const argv[])
-{
-	__u8 block[1024];
-	int ret;
-	int bknum;
-
-	ret = 0;
-
-	if (argc != 2) {
-		printf ("needs an argument!\n");
-		return (0);
-	}
-
-	bknum = simple_strtoul (argv[1], NULL, 10);
-
-	if (disk_read (0, bknum, block) != 0) {
-		printf ("Error: reading block\n");
-		return -1;
-	}
-	printf ("FAT dump: %d\n", bknum);
-	hexdump (512, block);
-
-	return (ret);
-}
-
-int disk_read (__u32 startblock, __u32 getsize, __u8 *bufptr)
-{
-	ulong tot;
-	block_dev_desc_t *dev_desc;
-
-	if (curr_dev < 0) {
-		if (find_fat_partition () != 0)
-			return (-1);
-	}
-
-	dev_desc = ide_get_dev (curr_dev);
-	if (!dev_desc) {
-		debug ("couldn't get ide device\n");
-		return (-1);
-	}
-
-	tot = dev_desc->block_read (0, startblock + part_offset,
-				    getsize, (ulong *) bufptr);
-
-	/* should we do this here?
-	   flush_cache ((ulong)buf, cnt*ide_dev_desc[device].blksz);
-	 */
-
-	if (tot == getsize)
-		return (0);
-
-	debug ("unable to read from device!\n");
-
-	return (-1);
-}
-
-
-static int isprint (unsigned char ch)
-{
-	if (ch >= 32 && ch < 127)
-		return (1);
-
-	return (0);
-}
-
-
-void hexdump (int cnt, unsigned char *data)
-{
-	int i;
-	int run;
-	int offset;
-
-	offset = 0;
-	while (cnt) {
-		printf ("%04X : ", offset);
-		if (cnt >= 16)
-			run = 16;
-		else
-			run = cnt;
-		cnt -= run;
-		for (i = 0; i < run; i++)
-			printf ("%02X ", (unsigned int) data[i]);
-		printf (": ");
-		for (i = 0; i < run; i++)
-			printf ("%c", isprint (data[i]) ? data[i] : '.');
-		printf ("\n");
-		data = &data[16];
-		offset += run;
-	}
-}
-#endif	/* NOT_IMPLEMENTED_YET */

Файловите разлики са ограничени, защото са твърде много
+ 587 - 518
fs/fat/fat.c


+ 5 - 9
fs/fat/file.c

@@ -48,12 +48,12 @@ char file_cwd[CWD_LEN+1] = "/";
 const char *
 file_getfsname(int idx)
 {
-	if (idx < 0 || idx >= NUM_FILESYS) return NULL;
+	if (idx < 0 || idx >= NUM_FILESYS)
+		return NULL;
 
 	return filesystems[idx].name;
 }
 
-
 static void
 pathcpy(char *dest, const char *src)
 {
@@ -72,15 +72,14 @@ pathcpy(char *dest, const char *src)
 			return;
 		}
 		++dest;
-		if (ISDIRDELIM(*src)) {
+
+		if (ISDIRDELIM(*src))
 			while (ISDIRDELIM(*src)) src++;
-		} else {
+		else
 			src++;
-		}
 	} while (1);
 }
 
-
 int
 file_cd(const char *path)
 {
@@ -141,7 +140,6 @@ file_cd(const char *path)
 	return 0;
 }
 
-
 int
 file_detectfs(void)
 {
@@ -160,7 +158,6 @@ file_detectfs(void)
 	return current_filesystem;
 }
 
-
 int
 file_ls(const char *dir)
 {
@@ -181,7 +178,6 @@ file_ls(const char *dir)
 	return filesystems[current_filesystem].ls(arg);
 }
 
-
 long
 file_read(const char *filename, void *buffer, unsigned long maxsize)
 {

+ 29 - 34
include/fat.h

@@ -33,7 +33,7 @@
 
 #define SECTOR_SIZE FS_BLOCK_SIZE
 
-#define FS_BLOCK_SIZE 512
+#define FS_BLOCK_SIZE	512
 
 #if FS_BLOCK_SIZE != SECTOR_SIZE
 #error FS_BLOCK_SIZE != SECTOR_SIZE - This code needs to be fixed!
@@ -57,37 +57,31 @@
 #define SIGNLEN		8
 
 /* File attributes */
-#define ATTR_RO      1
-#define ATTR_HIDDEN  2
-#define ATTR_SYS     4
-#define ATTR_VOLUME  8
-#define ATTR_DIR     16
-#define ATTR_ARCH    32
+#define ATTR_RO	1
+#define ATTR_HIDDEN	2
+#define ATTR_SYS	4
+#define ATTR_VOLUME	8
+#define ATTR_DIR	16
+#define ATTR_ARCH	32
 
-#define ATTR_VFAT     (ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME)
+#define ATTR_VFAT	(ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME)
 
 #define DELETED_FLAG	((char)0xe5) /* Marks deleted files when in name[0] */
 #define aRING		0x05	     /* Used as special character in name[0] */
 
-/* Indicates that the entry is the last long entry in a set of long
+/*
+ * Indicates that the entry is the last long entry in a set of long
  * dir entries
  */
 #define LAST_LONG_ENTRY_MASK	0x40
 
 /* Flags telling whether we should read a file or list a directory */
-#define LS_NO	0
-#define LS_YES	1
-#define LS_DIR	1
-#define LS_ROOT	2
+#define LS_NO		0
+#define LS_YES		1
+#define LS_DIR		1
+#define LS_ROOT		2
 
-#ifdef DEBUG
-#define FAT_DPRINT(args...)	printf(args)
-#else
-#define FAT_DPRINT(args...)
-#endif
-#define FAT_ERROR(arg)		printf(arg)
-
-#define ISDIRDELIM(c)   ((c) == '/' || (c) == '\\')
+#define ISDIRDELIM(c)	((c) == '/' || (c) == '\\')
 
 #define FSTYPE_NONE	(-1)
 
@@ -166,17 +160,18 @@ typedef struct dir_entry {
 } dir_entry;
 
 typedef struct dir_slot {
-	__u8    id;		/* Sequence number for slot */
-	__u8    name0_4[10];	/* First 5 characters in name */
-	__u8    attr;		/* Attribute byte */
-	__u8    reserved;	/* Unused */
-	__u8    alias_checksum;/* Checksum for 8.3 alias */
-	__u8    name5_10[12];	/* 6 more characters in name */
-	__u16   start;		/* Unused */
-	__u8    name11_12[4];	/* Last 2 characters in name */
+	__u8	id;		/* Sequence number for slot */
+	__u8	name0_4[10];	/* First 5 characters in name */
+	__u8	attr;		/* Attribute byte */
+	__u8	reserved;	/* Unused */
+	__u8	alias_checksum;/* Checksum for 8.3 alias */
+	__u8	name5_10[12];	/* 6 more characters in name */
+	__u16	start;		/* Unused */
+	__u8	name11_12[4];	/* Last 2 characters in name */
 } dir_slot;
 
-/* Private filesystem parameters
+/*
+ * Private filesystem parameters
  *
  * Note: FAT buffer has to be 32 bit aligned
  * (see FAT32 accesses)
@@ -198,10 +193,10 @@ typedef long	(file_read_func)(const char *filename, void *buffer,
 				 unsigned long maxsize);
 
 struct filesystem {
-	file_detectfs_func *detect;
-	file_ls_func	   *ls;
-	file_read_func	   *read;
-	const char	    name[12];
+	file_detectfs_func	*detect;
+	file_ls_func		*ls;
+	file_read_func		*read;
+	const char		name[12];
 };
 
 /* FAT tables */

Някои файлове не бяха показани, защото твърде много файлове са промени