mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-30 19:48:19 +00:00 
			
		
		
		
	The repeatable property is currently attached to the main command and sub-commands have no way to change the repeatable value (the ->repeatable field in sub-command entries is ignored). Replace the ->repeatable field by an extended ->cmd() hook (called ->cmd_rep()) which takes a new int pointer to store the repeatable cap of the command being executed. With this trick, we can let sub-commands decide whether they are repeatable or not. We also patch mmc and dtimg who are testing the ->repeatable field directly (they now use cmd_is_repeatable() instead), and fix the help entry manually since it doesn't use the U_BOOT_CMD() macro. Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com> Reviewed-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			38 lines
		
	
	
		
			938 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			938 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0+
 | |
| /*
 | |
|  * Copyright 2000-2009
 | |
|  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| #include <command.h>
 | |
| 
 | |
| static int do_help(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 | |
| {
 | |
| #ifdef CONFIG_CMDLINE
 | |
| 	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
 | |
| 	const int len = ll_entry_count(cmd_tbl_t, cmd);
 | |
| 	return _do_help(start, len, cmdtp, flag, argc, argv);
 | |
| #else
 | |
| 	return 0;
 | |
| #endif
 | |
| }
 | |
| 
 | |
| U_BOOT_CMD(
 | |
| 	help,	CONFIG_SYS_MAXARGS,	1,	do_help,
 | |
| 	"print command description/usage",
 | |
| 	"\n"
 | |
| 	"	- print brief description of all commands\n"
 | |
| 	"help command ...\n"
 | |
| 	"	- print detailed usage of 'command'"
 | |
| );
 | |
| 
 | |
| /* This does not use the U_BOOT_CMD macro as ? can't be used in symbol names */
 | |
| ll_entry_declare(cmd_tbl_t, question_mark, cmd) = {
 | |
| 	"?",	CONFIG_SYS_MAXARGS, cmd_always_repeatable,	do_help,
 | |
| 	"alias for 'help'",
 | |
| #ifdef  CONFIG_SYS_LONGHELP
 | |
| 	""
 | |
| #endif /* CONFIG_SYS_LONGHELP */
 | |
| };
 |