diff options
Diffstat (limited to 'include/command.h')
-rw-r--r-- | include/command.h | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/include/command.h b/include/command.h index 9453c0d1c0a..a39c12f9afe 100644 --- a/include/command.h +++ b/include/command.h @@ -38,9 +38,9 @@ struct cmd_tbl_s { char *name; /* Command Name */ - int lmin; /* minimum abbreviated length */ int maxargs; /* maximum number of arguments */ int repeatable; /* autorepeat allowed? */ + /* Implementation function */ int (*cmd)(struct cmd_tbl_s *, int, int, char *[]); char *usage; /* Usage message (short) */ @@ -51,15 +51,9 @@ struct cmd_tbl_s { typedef struct cmd_tbl_s cmd_tbl_t; -extern cmd_tbl_t cmd_tbl[]; +extern cmd_tbl_t __u_boot_cmd_start; +extern cmd_tbl_t __u_boot_cmd_end; -#ifdef CFG_LONGHELP -#define MK_CMD_TBL_ENTRY(name,lmin,maxargs,rep,cmd,usage,help) \ - { name, lmin, maxargs, rep, cmd, usage, help } -#else /* no help info */ -#define MK_CMD_TBL_ENTRY(name,lmin,maxargs,rep,cmd,usage,help) \ - { name, lmin, maxargs, rep, cmd, usage } -#endif /* common/command.c */ cmd_tbl_t *find_cmd(const char *cmd); @@ -87,4 +81,20 @@ typedef void command_t (cmd_tbl_t *, int, int, char *[]); * to include/cmd_confdefs.h */ + +#define Struct_Section __attribute__ ((unused,section (".u_boot_cmd"))) +#define U_BOOT_CMD(x) __u_boot_cmd_##x Struct_Section + +#ifdef CFG_LONGHELP + +#define MK_CMD_ENTRY(name,maxargs,rep,cmd,usage,help) \ + { name, maxargs, rep, cmd, usage, help } + +#else /* no long help info */ + +#define MK_CMD_ENTRY(name,maxargs,rep,cmd,usage,help) \ + { name, maxargs, rep, cmd, usage } + +#endif /* CFG_LONGHELP */ + #endif /* __COMMAND_H */ |