diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/command.h | 8 | ||||
-rw-r--r-- | include/complete.h | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/command.h b/include/command.h index b2e84496c8..80cbf5603f 100644 --- a/include/command.h +++ b/include/command.h @@ -40,6 +40,8 @@ extern struct list_head command_list; #define for_each_command(cmd) list_for_each_entry(cmd, &command_list, list) +struct string_list; + /* * Monitor Command Table */ @@ -48,6 +50,7 @@ struct command { const char **aliases; /* Implementation function */ int (*cmd)(int, char *[]); + int (*complete)(struct string_list *sl, char *instr); const char *usage; /* Usage message (short) */ struct list_head list; /* List of commands */ @@ -88,6 +91,11 @@ const struct command __barebox_cmd_##_name \ #define BAREBOX_CMD_END \ }; +#ifdef CONFIG_AUTO_COMPLETE +#define BAREBOX_CMD_COMPLETE(_cpt) .complete = _cpt, +#else +#define BAREBOX_CMD_COMPLETE(_cpt) +#endif #define BAREBOX_CMD_HELP_START(_name) \ static const __maybe_unused char cmd_##_name##_help[] = diff --git a/include/complete.h b/include/complete.h index cc0e88de0f..0c8ebd6a3b 100644 --- a/include/complete.h +++ b/include/complete.h @@ -2,9 +2,16 @@ #define __COMPLETE_ #include <linux/list.h> +#include <malloc.h> +#include <stringlist.h> + +#define COMPLETE_END 0 +#define COMPLETE_CONTINUE 1 int complete(char *instr, char **outstr); void complete_reset(void); +int command_complete(struct string_list *sl, char *instr); + #endif /* __COMPLETE_ */ |