mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +08:00
autocomplete: remove runtime handler install
Rather than add runtime overhead of installing completion handlers, do it statically at build time. This requires a new build time helper macro to declare a command and the completion handler at the same time. Then we convert the env related funcs over to this. This gives an opportunity to also unify the U_BOOT_CMD macros. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:

committed by
Wolfgang Denk

parent
882b7d726f
commit
722b061b6f
@ -74,7 +74,7 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len);
|
||||
extern int cmd_usage(cmd_tbl_t *cmdtp);
|
||||
|
||||
#ifdef CONFIG_AUTO_COMPLETE
|
||||
extern void install_auto_complete(void);
|
||||
extern int var_complete(int argc, char * const argv[], char last_char, int maxv, char *cmdv[]);
|
||||
extern int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp);
|
||||
#endif
|
||||
|
||||
@ -111,23 +111,29 @@ extern int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
|
||||
|
||||
#define Struct_Section __attribute__ ((unused,section (".u_boot_cmd")))
|
||||
|
||||
#ifdef CONFIG_SYS_LONGHELP
|
||||
#ifdef CONFIG_AUTO_COMPLETE
|
||||
# define _CMD_COMPLETE(x) x,
|
||||
#else
|
||||
# define _CMD_COMPLETE(x)
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_LONGHELP
|
||||
# define _CMD_HELP(x) x,
|
||||
#else
|
||||
# define _CMD_HELP(x)
|
||||
#endif
|
||||
|
||||
#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
|
||||
cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
|
||||
#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
|
||||
{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}
|
||||
|
||||
#define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \
|
||||
{#name, maxargs, rep, cmd, usage, help}
|
||||
U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
|
||||
|
||||
#else /* no long help info */
|
||||
#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
|
||||
cmd_tbl_t __u_boot_cmd_##name Struct_Section = \
|
||||
U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)
|
||||
|
||||
#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
|
||||
cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage}
|
||||
|
||||
#define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \
|
||||
{#name, maxargs, rep, cmd, usage}
|
||||
|
||||
#endif /* CONFIG_SYS_LONGHELP */
|
||||
U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
|
||||
|
||||
#if defined(CONFIG_NEEDS_MANUAL_RELOC)
|
||||
void fixup_cmdtable(cmd_tbl_t *cmdtp, int size);
|
||||
|
Reference in New Issue
Block a user