[U-Boot] [PATCH v5 0/9] Unified command execution in one place
Simon Glass
sjg at chromium.org
Wed Feb 15 06:59:17 CET 2012
At present two parsers have similar code to execute commands. Also
cmd_usage() is called all over the place. This series adds a single
function which processes commands called cmd_process().
This new function understands return codes, and in particular
CMD_RET_USAGE to indicate a usage error. So rather than calling
cmd_usage() themselves, the command handlers can just return this
error.
There appears to be a run_command2() which is used to run commands
with the selected parser. This series changes this in two separate
steps to just run_command(), and renames the old run_command() to
builtin_run_command(). No one should call this outside main.c since
if the hush parser is being used it is wrong to call it. The
built-in parser code could move into a separate file perhaps in a
future patch.
The overall series reduces code size on ARM by about 1KB on
my ~160KB U-Boot text region when the hush parser is used, and around
60 bytes when it isn't.
As an aside the only user of parse_line() is fsl_ddr_interactive()
which seems to have its own command line interface which operates
before DRAM is set up. Do I have this right? Is there no way this
could be done later from a normal U-Boot command?
(I have run this through MAKEALL and it seems clean)
Changes in v2:
- Fix minor errors one of which created a warning
- Squash i2c patch into the common/ patch
Changes in v3:
- Rebase to master
Changes in v4:
- Add a 'repeatable' parameter to cmd_process()
- Make cmd_process() return only success (0) or failure (1)
- Minor comment change for call to builtin_run_command()
- Rationalise return codes to 0, 1 and usage
Changes in v5:
- Add function comment to run_command()
- Adjust commit message to make it easier for Mike to grok
- Move cmd_call() prototype inside existing #ifdef __ASSEMBLY__
- Tidy up function comment to bring in changes in a later patch
- Use existing #ifdef __ASSEMBLY__ rather than create a new one
Simon Glass (9):
Remove CMD_PXE's static on run_command()
Rename run_command() to builtin_run_command()
Rename run_command2() to run_command()
Stop using builtin_run_command()
Don't include standard parser if hush is used
Create a single cmd_call() function to handle command execution
Remove interleave of non-U-Boot code in hush
Add cmd_process() to process commands in one place
Convert cmd_usage() calls in common to use a return value
arch/arm/cpu/arm926ejs/kirkwood/cpu.c | 7 +--
board/esd/common/cmd_loadpci.c | 2 +-
board/esd/du440/du440.c | 2 +-
common/cmd_bedbug.c | 6 +-
common/cmd_bmp.c | 6 +-
common/cmd_boot.c | 2 +-
common/cmd_bootm.c | 10 +---
common/cmd_cache.c | 4 +-
common/cmd_dataflash_mmc_mux.c | 2 +-
common/cmd_date.c | 3 +-
common/cmd_dcr.c | 8 +-
common/cmd_df.c | 2 +-
common/cmd_eeprom.c | 2 +-
common/cmd_ext2.c | 4 +-
common/cmd_fdc.c | 2 +-
common/cmd_fdos.c | 2 +-
common/cmd_fdt.c | 14 ++--
common/cmd_fitupd.c | 2 +-
common/cmd_flash.c | 14 ++--
common/cmd_fpga.c | 4 +-
common/cmd_gpio.c | 2 +-
common/cmd_i2c.c | 32 +++++-----
common/cmd_ide.c | 10 ++--
common/cmd_irq.c | 2 +-
common/cmd_itest.c | 2 +-
common/cmd_led.c | 6 +-
common/cmd_load.c | 2 +-
common/cmd_log.c | 4 +-
common/cmd_md5sum.c | 2 +-
common/cmd_mdio.c | 2 +-
common/cmd_mem.c | 22 ++++----
common/cmd_mfsl.c | 10 ++--
common/cmd_mgdisk.c | 2 +-
common/cmd_mii.c | 4 +-
common/cmd_misc.c | 2 +-
common/cmd_mmc.c | 14 ++--
common/cmd_mmc_spi.c | 3 +-
common/cmd_mp.c | 8 +-
common/cmd_mtdparts.c | 2 +-
common/cmd_nand.c | 6 +-
common/cmd_net.c | 6 +-
common/cmd_nvedit.c | 22 ++++----
common/cmd_onenand.c | 12 ++--
common/cmd_otp.c | 2 +-
common/cmd_pci.c | 2 +-
common/cmd_portio.c | 4 +-
common/cmd_pxe.c | 10 ++--
common/cmd_reiser.c | 4 +-
common/cmd_sata.c | 8 +-
common/cmd_scsi.c | 15 +++--
common/cmd_setexpr.c | 2 +-
common/cmd_sf.c | 2 +-
common/cmd_sha1sum.c | 2 +-
common/cmd_source.c | 2 +-
common/cmd_strings.c | 2 +-
common/cmd_time.c | 4 +-
common/cmd_ubi.c | 4 +-
common/cmd_ubifs.c | 10 ++--
common/cmd_unzip.c | 2 +-
common/cmd_usb.c | 6 +-
common/command.c | 60 +++++++++++++++++++
common/hush.c | 69 ++++++-----------------
common/main.c | 101 +++++++++++----------------------
include/command.h | 30 ++++++++++
include/common.h | 5 +-
65 files changed, 315 insertions(+), 306 deletions(-)
--
1.7.7.3
More information about the U-Boot
mailing list