#endif
value = binary_test (argv[2], argv[1], argv[3], w);
break;
- case -2:
+ case CMD_DATA_SIZE_STR:
value = binary_test (argv[2], argv[1], argv[3], 0);
break;
- case -1:
+ case CMD_DATA_SIZE_ERR:
default:
puts("Invalid data width specifier\n");
value = 0;
* Defaults to long if no or incorrect specification.
*/
size = cmd_get_data_size(argv[0], 4);
- if (size < 0 && size != -2 /* string */)
+ if (size < 0 && size != CMD_DATA_SIZE_STR)
return 1;
argc--;
case 'l':
return 4;
case 's':
- return -2;
+ return CMD_DATA_SIZE_STR;
case 'q':
if (MEM_SUPPORT_64BIT_DATA)
return 8;
/* no break */
default:
- return -1;
+ return CMD_DATA_SIZE_ERR;
}
}
return default_size;
defined(CONFIG_CMD_PCI) || \
defined(CONFIG_CMD_SETEXPR)
#define CMD_DATA_SIZE
-extern int cmd_get_data_size(char* arg, int default_size);
+#define CMD_DATA_SIZE_ERR (-1)
+#define CMD_DATA_SIZE_STR (-2)
+
+/**
+ * cmd_get_data_size() - Get the data-size specifier from a command
+ *
+ * This reads a '.x' size specifier appended to a command. For example 'md.b'
+ * is the 'md' command with a '.b' specifier, meaning that the command should
+ * use bytes.
+ *
+ * Valid characters are:
+ *
+ * b - byte
+ * w - word (16 bits)
+ * l - long (32 bits)
+ * q - quad (64 bits)
+ * s - string
+ *
+ * @arg: Pointers to the command to check. If a valid specifier is present it
+ * will be the last character of the string, following a '.'
+ * @default_size: Default size to return if there is no specifier
+ * @return data size in bytes (1, 2, 4, 8) or CMD_DATA_SIZE_ERR for an invalid
+ * character, or CMD_DATA_SIZE_STR for a string
+ */
+int cmd_get_data_size(char *arg, int default_size);
#endif
#ifdef CONFIG_CMD_BOOTD