From 8a40fb148efa442d6526eac46a2001e4c64d28ff Mon Sep 17 00:00:00 2001
From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Date: Wed, 10 Sep 2008 22:48:05 +0200
Subject: [PATCH] move cmd_get_data_size to command.c

add CMD_DATA_SIZE macro to enable it

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
---
 board/amcc/yucca/cmd_yucca.c |  2 --
 common/cmd_i2c.c             |  1 -
 common/cmd_itest.c           |  2 --
 common/cmd_mem.c             | 29 -----------------------------
 common/cmd_pci.c             |  2 --
 common/cmd_portio.c          |  2 --
 common/command.c             | 24 ++++++++++++++++++++++++
 include/command.h            |  9 +++++++++
 8 files changed, 33 insertions(+), 38 deletions(-)

diff --git a/board/amcc/yucca/cmd_yucca.c b/board/amcc/yucca/cmd_yucca.c
index e698b201fc3..bd42c5d4678 100644
--- a/board/amcc/yucca/cmd_yucca.c
+++ b/board/amcc/yucca/cmd_yucca.c
@@ -33,8 +33,6 @@ extern void print_evb440spe_info(void);
 static int setBootStrapClock(cmd_tbl_t *cmdtp, int incrflag,
 		int flag, int argc, char *argv[]);
 
-extern int cmd_get_data_size(char* arg, int default_size);
-
 /* ------------------------------------------------------------------------- */
 int do_evb440spe(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c
index 91bf25b6b31..ef3928e4326 100644
--- a/common/cmd_i2c.c
+++ b/common/cmd_i2c.c
@@ -127,7 +127,6 @@ static uchar i2c_no_probes[] = CFG_I2C_NOPROBES;
 
 static int
 mod_i2c_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]);
-extern int cmd_get_data_size(char* arg, int default_size);
 
 /*
  * Syntax:
diff --git a/common/cmd_itest.c b/common/cmd_itest.c
index ce988723c02..9e77fa91319 100644
--- a/common/cmd_itest.c
+++ b/common/cmd_itest.c
@@ -64,8 +64,6 @@ op_tbl_t op_table [] = {
 
 #define op_tbl_size (sizeof(op_table)/sizeof(op_table[0]))
 
-extern int cmd_get_data_size(char* arg, int default_size);
-
 static long evalexp(char *s, int w)
 {
 	long l, *p;
diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index d0a6ca83047..672218b9caf 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -37,35 +37,6 @@
 #endif
 #include <watchdog.h>
 
-#if defined(CONFIG_CMD_MEMORY)		\
-    || defined(CONFIG_CMD_I2C)		\
-    || defined(CONFIG_CMD_ITEST)	\
-    || defined(CONFIG_CMD_PCI)		\
-    || defined(CONFIG_CMD_PORTIO)
-
-int cmd_get_data_size(char* arg, int default_size)
-{
-	/* Check for a size specification .b, .w or .l.
-	 */
-	int len = strlen(arg);
-	if (len > 2 && arg[len-2] == '.') {
-		switch(arg[len-1]) {
-		case 'b':
-			return 1;
-		case 'w':
-			return 2;
-		case 'l':
-			return 4;
-		case 's':
-			return -2;
-		default:
-			return -1;
-		}
-	}
-	return default_size;
-}
-#endif
-
 #if defined(CONFIG_CMD_MEMORY)
 
 #ifdef	CMD_MEM_DEBUG
diff --git a/common/cmd_pci.c b/common/cmd_pci.c
index 89687015b2b..b2aa833abfb 100644
--- a/common/cmd_pci.c
+++ b/common/cmd_pci.c
@@ -35,8 +35,6 @@
 #include <asm/io.h>
 #include <pci.h>
 
-extern int cmd_get_data_size(char* arg, int default_size);
-
 unsigned char	ShortPCIListing = 1;
 
 /*
diff --git a/common/cmd_portio.c b/common/cmd_portio.c
index a06cac01663..c88fcd5e451 100644
--- a/common/cmd_portio.c
+++ b/common/cmd_portio.c
@@ -30,8 +30,6 @@
 #include <common.h>
 #include <command.h>
 
-extern int cmd_get_data_size (char *arg, int default_size);
-
 /* Display values from last command.
  * Memory modify remembered values are different from display memory.
  */
diff --git a/common/command.c b/common/command.c
index 861796d9a5a..aca57b26be5 100644
--- a/common/command.c
+++ b/common/command.c
@@ -654,3 +654,27 @@ int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp)
 }
 
 #endif
+
+#ifdef CMD_DATA_SIZE
+int cmd_get_data_size(char* arg, int default_size)
+{
+	/* Check for a size specification .b, .w or .l.
+	 */
+	int len = strlen(arg);
+	if (len > 2 && arg[len-2] == '.') {
+		switch(arg[len-1]) {
+		case 'b':
+			return 1;
+		case 'w':
+			return 2;
+		case 'l':
+			return 4;
+		case 's':
+			return -2;
+		default:
+			return -1;
+		}
+	}
+	return default_size;
+}
+#endif
diff --git a/include/command.h b/include/command.h
index 4a27e972476..f92383d0867 100644
--- a/include/command.h
+++ b/include/command.h
@@ -78,6 +78,15 @@ extern int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *
 
 typedef	void	command_t (cmd_tbl_t *, int, int, char *[]);
 
+#if defined(CONFIG_CMD_MEMORY)		\
+    || defined(CONFIG_CMD_I2C)		\
+    || defined(CONFIG_CMD_ITEST)	\
+    || defined(CONFIG_CMD_PCI)		\
+    || defined(CONFIG_CMD_PORTIO)
+#define CMD_DATA_SIZE
+extern int cmd_get_data_size(char* arg, int default_size);
+#endif
+
 #endif	/* __ASSEMBLY__ */
 
 /*
-- 
GitLab