1. 12 Apr, 2021 1 commit
    • Marek Vasut's avatar
      cmd: exit: Fix return value · 8c4e3b79
      Marek Vasut authored and Tom Rini's avatar Tom Rini committed
      In case exit is called in a script without parameter, the command
      returns -2 ; in case exit is called with a numerical parameter,
      the command returns -2 and lower. This leads to the following problem:
      => setenv foo 'echo bar ; exit 1' ; run foo ; echo $?
      bar
      0
      => setenv foo 'echo bar ; exit 0' ; run foo ; echo $?
      bar
      0
      => setenv foo 'echo bar ; exit -2' ; run foo ; echo $?
      bar
      0
      That is, no matter what the 'exit' command argument is, the return
      value is always 0 and so it is not possible to use script return
      value in subsequent tests.
      
      Fix this and simplify the exit command such that if exit is called with
      no argument, the command returns 0, just like 'true' in cmd/test.c. In
      case the command is called with any argument that is positive integer,
      the argument is set as return value.
      => setenv foo 'echo bar ; exit 1' ; run foo ; echo $?
      bar
      1
      => setenv foo 'echo bar ; exit 0' ; run foo ; echo $?
      bar
      0
      => setenv foo 'echo bar ; exit -2' ; run foo ; echo $?
      bar
      0
      
      Note that this does change ABI established in 2004 , although it is
      unclear whether that ABI was originally OK or not.
      
      Fixes: c26e454d
      
      Signed-off-by: Marek Vasut's avatarMarek Vasut <marex@denx.de>
      Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
      Cc: Tom Rini <trini@konsulko.com>
      8c4e3b79
  2. 18 May, 2020 1 commit
    • Simon Glass's avatar
      command: Remove the cmd_tbl_t typedef · 09140113
      Simon Glass authored and Tom Rini's avatar Tom Rini committed
      
      
      We should not use typedefs in U-Boot. They cannot be used as forward
      declarations which means that header files must include the full header to
      access them.
      
      Drop the typedef and rename the struct to remove the _s suffix which is
      now not useful.
      
      This requires quite a few header-file additions.
      Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      09140113
  3. 07 May, 2018 1 commit
    • Tom Rini's avatar
      SPDX: Convert all of our single license tags to Linux Kernel style · 83d290c5
      Tom Rini authored
      
      
      When U-Boot started using SPDX tags we were among the early adopters and
      there weren't a lot of other examples to borrow from.  So we picked the
      area of the file that usually had a full license text and replaced it
      with an appropriate SPDX-License-Identifier: entry.  Since then, the
      Linux Kernel has adopted SPDX tags and they place it as the very first
      line in a file (except where shebangs are used, then it's second line)
      and with slightly different comment styles than us.
      
      In part due to community overlap, in part due to better tag visibility
      and in part for other minor reasons, switch over to that style.
      
      This commit changes all instances where we have a single declared
      license in the tag as both the before and after are identical in tag
      contents.  There's also a few places where I found we did not have a tag
      and have introduced one.
      Signed-off-by: Tom Rini's avatarTom Rini <trini@konsulko.com>
      83d290c5
  4. 25 Jan, 2016 2 commits
  5. 24 Jul, 2013 1 commit
  6. 04 Nov, 2012 1 commit
    • Kim Phillips's avatar
      common/cmd_*.c: sparse fixes · 088f1b19
      Kim Phillips authored
      
      
      cmd_boot.c:40:5: warning: symbol 'do_go' was not declared. Should it be static?
      cmd_bootm.c:164:6: warning: symbol '__arch_preboot_os' was not declared. Should it be static?
      cmd_bootm.c:477:5: warning: symbol 'do_bootm_subcommand' was not declared. Should it be static?
      cmd_bootm.c:1022:1: error: directive in argument list
      cmd_bootm.c:1028:1: error: directive in argument list
      cmd_bootm.c:1029:1: error: directive in argument list
      cmd_bootm.c:1036:1: error: directive in argument list
      cmd_bootm.c:1042:1: error: directive in argument list
      cmd_bootm.c:1044:1: error: directive in argument list
      cmd_bootm.c:1045:1: error: directive in argument list
      cmd_bootm.c:1047:1: error: directive in argument list
      cmd_bootm.c:1089:5: warning: symbol 'do_iminfo' was not declared. Should it be static?
      cmd_bootm.c:1176:5: warning: symbol 'do_imls' was not declared. Should it be static?
      cmd_bootm.c:1654:1: error: directive in argument list
      cmd_bootm.c:1660:1: error: directive in argument list
      cmd_console.c:32:5: warning: symbol 'do_coninfo' was not declared. Should it be s
      cmd_date.c:46:5: warning: symbol 'do_date' was not declared. Should it be static?
      cmd_echo.c:27:5: warning: symbol 'do_echo' was not declared. Should it be static?
      cmd_exit.c:27:5: warning: symbol 'do_exit' was not declared. Should it be static?
      cmd_fat.c:97:5: warning: symbol 'do_fat_ls' was not declared. Should it be static?
      cmd_fat.c:136:5: warning: symbol 'do_fat_fsinfo' was not declared. Should it be s
      cmd_fdt.c:66:5: warning: symbol 'do_fdt' was not declared. Should it be static?
      cmd_fdt.c:542:43: warning: incorrect type in assignment (different base types)
      cmd_fdt.c:542:43:    expected unsigned int [unsigned] [usertype] <noident>
      cmd_fdt.c:542:43:    got restricted __be32 [usertype] <noident>
      cmd_fdt.c:679:42: warning: cast to restricted __be32
      cmd_fdt.c:820:1: error: directive in argument list
      cmd_fdt.c:822:1: error: directive in argument list
      cmd_flash.c:292:5: warning: symbol 'do_flinfo' was not declared. Should it be static?
      cmd_flash.c:324:5: warning: symbol 'do_flerase' was not declared. Should it be static?
      cmd_flash.c:457:5: warning: symbol 'do_protect' was not declared. Should it be st
      cmd_help.c:27:5: warning: symbol 'do_help' was not declared. Should it be static?
      cmd_i2c.c:136:6: warning: symbol '__def_i2c_init_board' was not declared. Should it be static?
      cmd_i2c.c:144:14: warning: symbol '__def_i2c_get_bus_speed' was not declared. Should it be static?
      cmd_i2c.c:151:5: warning: symbol '__def_i2c_set_bus_speed' was not declared. Should it be static?
      cmd_i2c.c:1322:1: error: directive in argument list
      cmd_i2c.c:1324:1: error: directive in argument list
      cmd_i2c.c:1326:1: error: directive in argument list
      cmd_i2c.c:1328:1: error: directive in argument list
      cmd_i2c.c:1337:1: error: directive in argument list
      cmd_i2c.c:1339:1: error: directive in argument list
      cmd_irq.c:27:5: warning: symbol 'do_interrupts' was not declared. Should it be static?
      cmd_itest.c:133:5: warning: symbol 'binary_test' was not declared. Should it be static?
      cmd_itest.c:158:5: warning: symbol 'do_itest' was not declared. Should it be stat
      cmd_load.c:54:5: warning: symbol 'do_load_serial' was not declared. Should it be static?
      cmd_load.c:431:6: warning: symbol 'his_eol' was not declared. Should it be static?
      cmd_load.c:432:6: warning: symbol 'his_pad_count' was not declared. Should it be static?
      cmd_load.c:433:6: warning: symbol 'his_pad_char' was not declared. Should it be static?
      cmd_load.c:434:6: warning: symbol 'his_quote' was not declared. Should it be static?
      cmd_load.c:436:5: warning: symbol 'do_load_serial_bin' was not declared. Should it be static?
      cmd_load.c:549:6: warning: symbol 'send_pad' was not declared. Should it be static?
      cmd_load.c:558:6: warning: symbol 'ktrans' was not declared. Should it be static?
      cmd_load.c:568:5: warning: symbol 'chk1' was not declared. Should it be static?
      cmd_load.c:578:6: warning: symbol 's1_sendpacket' was not declared. Should it be static?
      cmd_load.c:587:6: warning: symbol 'send_ack' was not declared. Should it be static?
      cmd_load.c:600:6: warning: symbol 'send_nack' was not declared. Should it be static?
      cmd_load.c:614:6: warning: symbol 'os_data_init' was not declared. Should it be static?
      cmd_load.c:615:6: warning: symbol 'os_data_char' was not declared. Should it be static?
      cmd_load.c:657:6: warning: symbol 'k_data_init' was not declared. Should it be static?
      cmd_load.c:663:6: warning: symbol 'k_data_save' was not declared. Should it be static?
      cmd_load.c:669:6: warning: symbol 'k_data_restore' was not declared. Should it be static?
      cmd_load.c:675:6: warning: symbol 'k_data_char' was not declared. Should it be static?
      cmd_load.c:693:6: warning: symbol 'send_parms' was not declared. Should it be static?
      cmd_load.c:694:6: warning: symbol 'send_ptr' was not declared. Should it be static?
      cmd_load.c:698:6: warning: symbol 'handle_send_packet' was not declared. Should i
      cmd_mdio.c:60:5: warning: symbol 'mdio_write_ranges' was not declared. Should it be static?
      cmd_mdio.c:82:5: warning: symbol 'mdio_read_ranges' was not declared. Should it be static?
      cmd_mdio.c:115:5: warning: symbol 'extract_reg_range' was not declared. Should it be static?
      cmd_mdio.c:144:5: warning: symbol 'extract_phy_range' was not declared. Should it
      cmd_mem.c:54:5: warning: symbol 'do_mem_md' was not declared. Should it be static?
      cmd_mem.c:150:5: warning: symbol 'do_mem_mm' was not declared. Should it be static?
      cmd_mem.c:154:5: warning: symbol 'do_mem_nm' was not declared. Should it be static?
      cmd_mem.c:159:5: warning: symbol 'do_mem_mw' was not declared. Should it be static?
      cmd_mem.c:256:5: warning: symbol 'do_mem_cmp' was not declared. Should it be static?
      cmd_mem.c:326:5: warning: symbol 'do_mem_cp' was not declared. Should it be static?
      cmd_mem.c:436:5: warning: symbol 'do_mem_base' was not declared. Should it be static?
      cmd_mem.c:449:5: warning: symbol 'do_mem_loop' was not declared. Should it be static?
      cmd_mem.c:595:5: warning: symbol 'do_mem_mtest' was not declared. Should it be static?
      cmd_mem.c:618:26: warning: Using plain integer as NULL pointer
      cmd_mem.c:1057:5: warning: symbol 'do_mem_crc' was not declared. Should it be static?
      cmd_misc.c:30:5: warning: symbol 'do_sleep' was not declared. Should it be static
      cmd_mmc.c:118:5: warning: symbol 'do_mmcinfo' was not declared. Should it be static?
      cmd_mmc.c:272:32: warning: Using plain integer as NULL pointer
      cmd_mmc.c:150:5: warning: symbol 'do_mmcops' was not declared. Should it be stati
      cmd_mp.c:27:1: warning: symbol 'cpu_cmd' was not declared. Should it be static?
      cmd_mp.c:85:1: error: directive in argument list
      cmd_mp.c:88:1: error: directive in argument list
      cmd_mtdparts.c:150:18: warning: symbol 'mtdids' was not declared. Should it be static?
      cmd_mtdparts.c:153:18: warning: symbol 'devices' was not declared. Should it be static?
      cmd_mtdparts.c:713:5: warning: symbol 'mtd_device_validate' was not declared. Should it be static?
      cmd_mtdparts.c:1887:5: warning: symbol 'do_chpart' was not declared. Should it be static?
      cmd_mtdparts.c:1925:5: warning: symbol 'do_mtdparts' was not declared. Should it be static?
      cmd_mtdparts.c:2060:1: error: directive in argument list
      cmd_mtdparts.c:2063:1: error: directive in argument list
      cmd_mtdparts.c:2066:1: error: directive in argument list
      cmd_mtdparts.c:2071:1: error: directive in argument list
      cmd_mtdparts.c:2073:1: error: directive in argument list
      cmd_nand.c:377:18: error: bad constant expression
      cmd_nand.c:431:5: warning: symbol 'do_nand' was not declared. Should it be static?
      cmd_nand.c:796:1: error: directive in argument list
      cmd_nand.c:801:1: error: directive in argument list
      cmd_nand.c:802:1: error: directive in argument list
      cmd_nand.c:806:1: error: directive in argument list
      cmd_nand.c:819:1: error: directive in argument list
      cmd_nand.c:824:1: error: directive in argument list
      cmd_nand.c:825:1: error: directive in argument list
      cmd_nand.c:831:1: error: directive in argument list
      cmd_nand.c:918:5: warning: symbol 'do_nandboot' was not declared. Should it be static?
      cmd_net.c:33:5: warning: symbol 'do_bootp' was not declared. Should it be static?
      cmd_net.c:107:5: warning: symbol 'do_dhcp' was not declared. Should it be static?
      cmd_net.c:120:5: warning: symbol 'do_nfs' was not declared. Should it be static?
      cmd_nvedit.c:138:5: warning: symbol 'do_env_print' was not declared. Should it be static?
      cmd_nvedit.c:323:5: warning: symbol '_do_env_set' was not declared. Should it be static?
      cmd_nvedit.c:435:5: warning: symbol 'do_env_set' was not declared. Should it be static?
      cmd_nvedit.c:514:5: warning: symbol 'do_env_edit' was not declared. Should it be static?
      cmd_nvedit.c:620:5: warning: symbol 'do_env_save' was not declared. Should it be static?
      cmd_nvedit.c:1016:1: error: directive in argument list
      cmd_nvedit.c:1018:1: error: directive in argument list
      cmd_nvedit.c:1021:1: error: directive in argument list
      cmd_nvedit.c:1023:1: error: directive in argument list
      cmd_nvedit.c:1024:1: error: directive in argument list
      cmd_nvedit.c:1026:1: error: directive in argument list
      cmd_nvedit.c:1027:1: error: directive in argument list
      cmd_nvedit.c:1029:1: error: directive in argument list
      cmd_nvedit.c:1030:1: error: directive in argument list
      cmd_nvedit.c:1032:1: error: directive in argument list
      cmd_nvedit.c:1034:1: error: directive in argument list
      cmd_nvedit.c:1036:1: error: directive in argument list
      cmd_nvedit.c:1037:1: error: directive in argument list
      cmd_nvedit.c:1039:1: error: directive in argument list
      cmd_pci.c:38:17: warning: symbol 'ShortPCIListing' was not declared. Should it be static?
      cmd_pci.c:38:22: warning: 'ShortPCIListing' defined but not used [-Wunused-variable]
      cmd_pci.c:411:5: warning: symbol 'do_pci' was not declared. Should it be static?
      cmd_pci.c:494:1: error: directive in argument list
      cmd_pci.c:497:1: error: directive in argument list
      cmd_reginfo.c:40:5: warning: symbol 'do_reginfo' was not declared. Should it be static?
      cmd_sata.c:31:5: warning: symbol 'sata_curr_device' was not declared. Should it be static?
       note -> ata_piix.c doesn't seem to use 'sata_curr_device'; deleted.
      cmd_sata.c:32:18: warning: symbol 'sata_dev_desc' was not declared. Should it be static?
      cmd_sata.c:70:5: warning: symbol 'do_sata' was not declared. Should it be static?
      cmd_setexpr.c:53:5: warning: symbol 'do_setexpr' was not declared. Should it be static?
      cmd_source.c:186:1: error: directive in argument list
      cmd_source.c:190:1: error: directive in argument list
      cmd_test.c:27:5: warning: symbol 'do_test' was not declared. Should it be static?
      cmd_test.c:153:5: warning: symbol 'do_false' was not declared. Should it be static?
      cmd_test.c:164:5: warning: symbol 'do_true' was not declared. Should it be static
      cmd_usb.c:43:6: warning: symbol 'usb_get_class_desc' was not declared. Should it be static?
      cmd_usb.c:69:6: warning: symbol 'usb_display_class_sub' was not declared. Should it be static?
      cmd_usb.c:151:6: warning: symbol 'usb_display_string' was not declared. Should it be static?
      cmd_usb.c:161:6: warning: symbol 'usb_display_desc' was not declared. Should it be static?
      cmd_usb.c:195:6: warning: symbol 'usb_display_conf_desc' was not declared. Should it be static?
      cmd_usb.c:210:6: warning: symbol 'usb_display_if_desc' was not declared. Should it be static?
      cmd_usb.c:227:6: warning: symbol 'usb_display_ep_desc' was not declared. Should it be static?
      cmd_usb.c:252:6: warning: symbol 'usb_display_config' was not declared. Should it be static?
      cmd_usb.c:283:6: warning: symbol 'usb_show_tree_graph' was not declared. Should it be static?
      cmd_usb.c:343:6: warning: symbol 'usb_show_tree' was not declared. Should it be static?
      cmd_usb.c:356:5: warning: symbol 'do_usbboot' was not declared. Should it be static?
      cmd_usb.c:366:5: warning: symbol 'do_usb' was not declared. Should it be static?
      cmd_version.c:31:5: warning: symbol 'do_version' was not declared. Should it be s
      cmd_ximg.c:46:1: warning: symbol 'do_imgextract' was not declared. Should it be static?
      cmd_ximg.c:272:1: error: directive in argument list
      cmd_ximg.c:276:1: error: directive in argument list
      Signed-off-by: default avatarKim Phillips <kim.phillips@freescale.com>
      088f1b19
  7. 04 Jul, 2010 1 commit
    • Wolfgang Denk's avatar
      Make sure that argv[] argument pointers are not modified. · 54841ab5
      Wolfgang Denk authored
      
      
      The hush shell dynamically allocates (and re-allocates) memory for the
      argument strings in the "char *argv[]" argument vector passed to
      commands.  Any code that modifies these pointers will cause serious
      corruption of the malloc data structures and crash U-Boot, so make
      sure the compiler can check that no such modifications are being done
      by changing the code into "char * const argv[]".
      
      This modification is the result of debugging a strange crash caused
      after adding a new command, which used the following argument
      processing code which has been working perfectly fine in all Unix
      systems since version 6 - but not so in U-Boot:
      
      int main (int argc, char **argv)
      {
      	while (--argc > 0 && **++argv == '-') {
      /* ====> */	while (*++*argv) {
      			switch (**argv) {
      			case 'd':
      				debug++;
      				break;
      			...
      			default:
      				usage ();
      			}
      		}
      	}
      	...
      }
      
      The line marked "====>" will corrupt the malloc data structures and
      usually cause U-Boot to crash when the next command gets executed by
      the shell.  With the modification, the compiler will prevent this with
      an
      	error: increment of read-only location '*argv'
      
      N.B.: The code above can be trivially rewritten like this:
      
      	while (--argc > 0 && **++argv == '-') {
      		char *arg = *argv;
      		while (*++arg) {
      			switch (*arg) {
      			...
      Signed-off-by: Wolfgang Denk's avatarWolfgang Denk <wd@denx.de>
      Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
      54841ab5
  8. 22 Nov, 2009 1 commit
  9. 09 Jan, 2005 1 commit
    • wdenk's avatar
      * Patches by Richard Woodruff, 01 Oct 2004: · 8ed96046
      wdenk authored
        add support for the TI OMAP2420 processor and its H4 reference
        board
      
      * Patch by Christian Pellegrin, 24 Sep 2004:
        Added support for NE2000 compatible (DP8390, DP83902) NICs.
      8ed96046
  10. 08 Sep, 2002 1 commit
  11. 14 Dec, 2000 1 commit
  12. 12 Nov, 2000 1 commit