12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include <config.h>
- #include <common.h>
- #include <command.h>
- static char *start_addr, *last_addr;
- int do_strings(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
- {
- if (argc == 1)
- return CMD_RET_USAGE;
- if ((flag & CMD_FLAG_REPEAT) == 0) {
- start_addr = (char *)simple_strtoul(argv[1], NULL, 16);
- if (argc > 2)
- last_addr = (char *)simple_strtoul(argv[2], NULL, 16);
- else
- last_addr = (char *)-1;
- }
- char *addr = start_addr;
- do {
- puts(addr);
- puts("\n");
- addr += strlen(addr) + 1;
- } while (addr[0] && addr < last_addr);
- last_addr = addr + (last_addr - start_addr);
- start_addr = addr;
- return 0;
- }
- U_BOOT_CMD(
- strings, 3, 1, do_strings,
- "display strings",
- "<addr> [byte count]\n"
- " - display strings at <addr> for at least [byte count] or first double NUL"
- );
|