/**\r
Dump memory\r
\r
- Argv[0] - "md"\r
+ Argv[0] - "md"[.#] # is optiona width 1, 2, 4, or 8. Default 1\r
Argv[1] - Hex Address to dump\r
Argv[2] - Number of hex bytes to dump (0x20 is default)\r
- Argv[3] - [1|2|4|8] byte width of the dump\r
\r
- md 0x123445678 50 4 ; Dump 0x50 4 byte quantities starting at 0x123445678\r
- md 0x123445678 40 ; Dump 0x40 1 byte quantities starting at 0x123445678\r
- md 0x123445678 ; Dump 0x20 1 byte quantities starting at 0x123445678\r
+ md.4 0x123445678 50 ; Dump 0x50 4 byte quantities starting at 0x123445678\r
+ md 0x123445678 40 ; Dump 0x40 1 byte quantities starting at 0x123445678\r
+ md 0x123445678 ; Dump 0x20 1 byte quantities starting at 0x123445678\r
\r
@param Argc Number of command arguments in Argv\r
@param Argv Array of strings that represent the parsed command line. \r
{\r
STATIC UINT8 *Address = NULL;\r
STATIC UINTN Length = 0x20;\r
- STATIC UINTN Width = 1;\r
+ STATIC UINTN Width;\r
\r
- switch (Argc)\r
- {\r
- case 4:\r
- Width = AsciiStrHexToUintn(Argv[3]);\r
+ Width = WidthFromCommandName (Argv[0], 1);\r
+\r
+ switch (Argc) {\r
case 3:\r
Length = AsciiStrHexToUintn(Argv[2]);\r
case 2:\r
- Address = (UINT8 *)AsciiStrHexToUintn(Argv[1]);\r
+ Address = (UINT8 *)AsciiStrHexToUintn (Argv[1]);\r
default:\r
break;\r
}\r
\r
- OutputData(Address, Length, Width, (UINTN)Address);\r
+ OutputData (Address, Length, Width, (UINTN)Address);\r
\r
Address += Length;\r
\r
/**\r
Fill Memory with data\r
\r
- Argv[0] - "mfill"\r
+ Argv[0] - "mfill"[.#] # is optiona width 1, 2, 4, or 8. Default 4\r
Argv[1] - Hex Address to fill\r
Argv[2] - Data to write (0x00 is default)\r
Argv[3] - Number of units to dump.\r
- Argv[4] - [1|2|4|8] byte width of the dump\r
\r
- mf 0x123445678 aa 1 100 ; Start at 0x123445678 and write aa (1 byte) to the next 100 bytes\r
- mf 0x123445678 aa 4 100 ; Start at 0x123445678 and write aa (4 byte) to the next 400 bytes\r
+ mf.1 0x123445678 aa 100 ; Start at 0x123445678 and write aa (1 byte) to the next 100 bytes\r
+ mf.4 0x123445678 aa 100 ; Start at 0x123445678 and write aa (4 byte) to the next 400 bytes\r
mf 0x123445678 aa ; Start at 0x123445678 and write aa (4 byte) to the next 1 byte\r
mf 0x123445678 ; Start at 0x123445678 and write 00 (4 byte) to the next 1 byte\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ Width = WidthFromCommandName (Argv[0], 4);\r
+\r
Address = AsciiStrHexToUintn (Argv[1]);\r
Data = (Argc > 2) ? (UINT32)AsciiStrHexToUintn (Argv[2]) : 0;\r
- Width = (Argc > 3) ? AsciiStrHexToUintn (Argv[3]) : 4;\r
- Length = (Argc > 4) ? AsciiStrHexToUintn (Argv[4]) : 1;\r
+ Length = (Argc > 3) ? AsciiStrHexToUintn (Argv[3]) : 1;\r
\r
for (EndAddress = Address + (Length * Width); Address < EndAddress; Address += Width) {\r
if (Width == 4) {\r
{\r
{\r
"md",\r
- " [Addr] [Len] [1|2|4]; Memory Dump from Addr Len bytes",\r
+ "[.{1|2|4}] [Addr] [Len] [1|2|4]; Memory Dump from Addr Len bytes",\r
NULL,\r
EblMdCmd\r
},\r
{\r
"mfill",\r
- " Addr Len [data] [1|2|4]; Memory Fill Addr Len*(1|2|4) bytes of data(0)",\r
+ "[.{1|2|4}] Addr Len [data] [1|2|4]; Memory Fill Addr Len*(1|2|4) bytes of data(0)",\r
NULL,\r
EblMfillCmd\r
},\r