1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-01 16:52:14 +02:00

* Code cleanup:

- remove trailing white space, trailing empty lines, C++ comments, etc.
  - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)

* Patches by Kenneth Johansson, 25 Jun 2003:
  - major rework of command structure
    (work done mostly by Michal Cendrowski and Joakim Kristiansen)
This commit is contained in:
wdenk
2003-06-27 21:31:46 +00:00
parent 993cad9364
commit 8bde7f776c
1246 changed files with 46635 additions and 48962 deletions

View File

@@ -1,5 +1,5 @@
/*
* (C) Copyright 2000
* (C) Copyright 2000-2003
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
@@ -27,93 +27,6 @@
#include <common.h>
#include <command.h>
#include <cmd_cache.h>
#include <cmd_mem.h>
#include <cmd_boot.h>
#include <cmd_flash.h>
#include <cmd_bootm.h>
#include <cmd_net.h>
#include <cmd_nvedit.h>
#include <cmd_misc.h>
#include <cmd_kgdb.h>
#include <cmd_ide.h>
#include <cmd_disk.h>
#include <cmd_console.h>
#include <cmd_reginfo.h>
#include <cmd_pcmcia.h>
#include <cmd_autoscript.h>
#include <cmd_diag.h>
#include <cmd_eeprom.h>
#include <cmd_i2c.h>
#include <cmd_spi.h>
#include <cmd_immap.h>
#include <cmd_rtc.h>
#include <cmd_elf.h>
#include <cmd_fdc.h> /* Floppy support */
#include <cmd_usb.h> /* USB support */
#include <cmd_scsi.h>
#include <cmd_pci.h>
#include <cmd_mii.h>
#include <cmd_dcr.h> /* 4xx DCR register access */
#include <cmd_doc.h>
#include <cmd_nand.h>
#include <cmd_jffs2.h>
#include <cmd_fpga.h>
#include <cmd_bsp.h> /* board special functions */
#include <cmd_bedbug.h>
#include <cmd_elf.h>
#include <cmd_dtt.h>
#include <cmd_vfd.h> /* load a bitmap to the VFDs on TRAB */
#include <cmd_log.h>
#include <cmd_fdos.h>
#include <cmd_bmp.h>
#include <cmd_portio.h>
#include <cmd_mmc.h>
#include <cmd_fat.h>
#ifdef CONFIG_AMIGAONEG3SE
#include <cmd_menu.h>
#include <cmd_boota.h>
#endif
/*
* HELP command
*/
#define CMD_TBL_HELP MK_CMD_TBL_ENTRY( \
"help", 1, CFG_MAXARGS, 1, do_help, \
"help - print online help\n", \
"[command ...]\n" \
" - show help information (for 'command')\n" \
"'help' prints online help for the monitor commands.\n\n" \
"Without arguments, it prints a short usage message for all commands.\n\n" \
"To get detailed help information for specific commands you can type\n" \
"'help' with one or more command names as arguments.\n" \
),
#define CMD_TBL_QUES MK_CMD_TBL_ENTRY( \
"?", 1, CFG_MAXARGS, 1, do_help, \
"? - alias for 'help'\n", \
NULL \
),
#define CMD_TBL_VERS MK_CMD_TBL_ENTRY( \
"version", 4, 1, 1, do_version, \
"version - print monitor version\n", \
NULL \
),
#define CMD_TBL_ECHO MK_CMD_TBL_ENTRY( \
"echo", 4, CFG_MAXARGS, 1, do_echo, \
"echo - echo args to console\n", \
"[args..]\n" \
" - echo args to console; \\c suppresses newline\n" \
),
int
do_version (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
@@ -152,32 +65,59 @@ do_echo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
* Use puts() instead of printf() to avoid printf buffer overflow
* for long help messages
*/
int
do_help (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
int do_help (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
{
int i;
int rcode = 0;
if (argc == 1) { /* print short help (usage) */
if (argc == 1) { /*show list of commands */
for (cmdtp=&cmd_tbl[0]; cmdtp->name; cmdtp++) {
int cmd_items = (((int) &__u_boot_cmd_end) -
((int) &__u_boot_cmd_start)) /
sizeof (*cmdtp);
int end_sort;
cmd_tbl_t *cmd_array[(cmd_items + 1)];
int i;
/* Make list of commands from .uboot_cmd section */
cmdtp = (cmd_tbl_t *) & __u_boot_cmd_start;
for (i = 1; i <= cmd_items; i++) {
cmd_array[i] = cmdtp;
cmdtp++;
}
/* Sort command list */
end_sort = 0;
for (i = 1; end_sort != 1 || i <= cmd_items - 1; i++) {
if (i == cmd_items) { /* Last command */
end_sort = 1;
i = 1;
}
if (strcmp (cmd_array[i]->name, cmd_array[i + 1]->name) > 0) {
end_sort = 0;
*cmd_array[0] = *cmd_array[i];
*cmd_array[i] = *cmd_array[i + 1];
*cmd_array[i + 1] = *cmd_array[0];
}
}
/* print short help (usage) */
for (cmdtp = (cmd_tbl_t *) & __u_boot_cmd_start;
cmdtp != (cmd_tbl_t *) & __u_boot_cmd_end; cmdtp++) {
/* allow user abort */
if (ctrlc())
if (ctrlc ())
return 1;
if (cmdtp->usage == NULL)
continue;
puts (cmdtp->usage);
}
return 0;
}
/*
* command help (long version)
*/
for (i=1; i<argc; ++i) {
if ((cmdtp = find_cmd(argv[i])) != NULL) {
for (i = 1; i < argc; ++i) {
if ((cmdtp = find_cmd (argv[i])) != NULL) {
#ifdef CFG_LONGHELP
/* found - print (long) help info */
puts (cmdtp->name);
@@ -196,164 +136,66 @@ do_help (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
} else {
printf ("Unknown command '%s' - try 'help'"
" without arguments for list of all"
" known commands\n\n",
argv[i]
);
" known commands\n\n", argv[i]
);
rcode = 1;
}
}
return rcode;
}
cmd_tbl_t U_BOOT_CMD(HELP) = MK_CMD_ENTRY(
"help", CFG_MAXARGS, 1, do_help,
"help - print online help\n",
"[command ...]\n"
" - show help information (for 'command')\n"
"'help' prints online help for the monitor commands.\n\n"
"Without arguments, it prints a short usage message for all commands.\n\n"
"To get detailed help information for specific commands you can type\n"
"'help' with one or more command names as arguments.\n"
);
cmd_tbl_t U_BOOT_CMD(QUES) = MK_CMD_ENTRY(
"?", CFG_MAXARGS, 1, do_help,
"? - alias for 'help'\n",
NULL
);
cmd_tbl_t U_BOOT_CMD(VERS) = MK_CMD_ENTRY(
"version", 1, 1, do_version,
"version - print monitor version\n",
NULL
);
cmd_tbl_t U_BOOT_CMD(ECHO) = MK_CMD_ENTRY(
"echo", CFG_MAXARGS, 1, do_echo,
"echo - echo args to console\n",
"[args..]\n"
" - echo args to console; \\c suppresses newline\n"
);
/***************************************************************************
* find command table entry for a command
*/
cmd_tbl_t *find_cmd(const char *cmd)
cmd_tbl_t *find_cmd (const char *cmd)
{
cmd_tbl_t *cmdtp;
/* Search command table - Use linear search - it's a small table */
for (cmdtp = &cmd_tbl[0]; cmdtp->name; cmdtp++) {
if (strncmp (cmd, cmdtp->name, cmdtp->lmin) == 0)
cmd_tbl_t *cmdtp_temp = &__u_boot_cmd_start; /*Init value */
int one_cmd_name = 0;
for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
if ((strncmp (cmd, cmdtp->name, strlen (cmd)) == 0) &&
(strlen (cmd) == strlen (cmdtp->name)))
return cmdtp;
else if (strncmp (cmd, cmdtp->name, strlen (cmd)) == 0) {
cmdtp_temp = cmdtp;
one_cmd_name++;
} else;
}
return NULL; /* not found */
if (one_cmd_name == 1)
return cmdtp_temp;
return NULL; /* not found || one_cmd_name >2 */
}
/*
* The commands in this table are sorted alphabetically by the
* command name and in descending order by the command name string
* length. This is to prevent conflicts in command name parsing.
* Please ensure that new commands are added according to that rule.
* Please use $(TOPDIR)/doc/README.commands as a reference AND make
* sure it gets updated.
*/
cmd_tbl_t cmd_tbl[] = {
CMD_TBL_ASKENV
CMD_TBL_ASM
CMD_TBL_AUTOSCRIPT
CMD_TBL_BASE
CMD_TBL_BDINFO
CMD_TBL_BMP
#ifdef CONFIG_AMIGAONEG3SE
CMD_TBL_BOOTA
#endif
CMD_TBL_BOOTELF
CMD_TBL_BOOTM
CMD_TBL_BOOTP
CMD_TBL_BOOTVX
CMD_TBL_BOOTD
CMD_TBL_BREAK
CMD_TBL_BRGINFO
CMD_TBL_CARINFO
CMD_TBL_JFFS2_CHPART
CMD_TBL_CMP
CMD_TBL_CONINFO
CMD_TBL_CONTINUE
CMD_TBL_CP
CMD_TBL_CRC
CMD_TBL_DATE
CMD_TBL_DCACHE
CMD_TBL_DHCP
CMD_TBL_DIAG
CMD_TBL_DISK
CMD_TBL_DMAINFO
CMD_TBL_DIS
CMD_TBL_DOCBOOT
CMD_TBL_DOC
CMD_TBL_DTT
CMD_TBL_ECHO
CMD_TBL_EEPROM
CMD_TBL_FAT
CMD_TBL_FCCINFO
CMD_TBL_FLERASE
CMD_TBL_FDC
CMD_TBL_FDOS_BOOT
CMD_TBL_FDOS_LS
CMD_TBL_FLINFO
CMD_TBL_FPGA
CMD_TBL_JFFS2_FSINFO
CMD_TBL_JFFS2_FSLOAD
CMD_TBL_GETDCR
CMD_TBL_GO
CMD_TBL_HELP
CMD_TBL_HWFLOW
CMD_TBL_I2CINFO
CMD_TBL_ICACHE
#ifdef CONFIG_8260
CMD_TBL_ICINFO
#endif
CMD_TBL_IMD
CMD_TBL_IMM
CMD_TBL_INM
CMD_TBL_IMW
CMD_TBL_PORTIO_IN
CMD_TBL_ICRC
CMD_TBL_IPROBE
CMD_TBL_ILOOP
CMD_TBL_ISDRAM
CMD_TBL_IDE
CMD_TBL_IMINFO
CMD_TBL_IOPINFO
CMD_TBL_IOPSET
CMD_TBL_IRQINFO
CMD_TBL_KGDB
CMD_TBL_LOADB
CMD_TBL_LOADS
CMD_TBL_LOG
CMD_TBL_LOOP
CMD_TBL_JFFS2_LS
CMD_TBL_MCCINFO
CMD_TBL_MMC
CMD_TBL_MD
CMD_TBL_MEMCINFO
#ifdef CONFIG_AMIGAONEG3SE
CMD_TBL_MENU
#endif
CMD_TBL_MII
CMD_TBL_MM
CMD_TBL_MTEST
CMD_TBL_MUXINFO
CMD_TBL_MW
CMD_TBL_NAND
CMD_TBL_NANDBOOT
CMD_TBL_NEXT
CMD_TBL_NM
CMD_TBL_PING
CMD_TBL_PORTIO_OUT
CMD_TBL_PCI
CMD_TBL_PRINTENV
CMD_TBL_PROTECT
CMD_TBL_RARPB
CMD_TBL_RDUMP
CMD_TBL_PINIT
CMD_TBL_REGINFO
CMD_TBL_RESET
CMD_TBL_RUN
CMD_TBL_SAVEENV
CMD_TBL_SAVES
CMD_TBL_SCCINFO
CMD_TBL_SCSIBOOT
CMD_TBL_SCSI
CMD_TBL_SETDCR
CMD_TBL_SETENV
CMD_TBL_SIINFO
CMD_TBL_SITINFO
CMD_TBL_SIUINFO
CMD_TBL_MISC /* sleep */
CMD_TBL_SMCINFO
CMD_TBL_SPIINFO
CMD_TBL_SPI
CMD_TBL_STACK
CMD_TBL_STEP
CMD_TBL_TFTPB
CMD_TBL_USBBOOT
CMD_TBL_USB
CMD_TBL_VERS
CMD_TBL_BSP
CMD_TBL_VFD
CMD_TBL_QUES /* keep this ("help") the last entry */
/* the following entry terminates this table */
MK_CMD_TBL_ENTRY( NULL, 0, 0, 0, NULL, NULL, NULL )
};