shell: rename module sections

Prepare for supporting stand-alone commands.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2018-01-15 11:10:09 -05:00 committed by Anas Nashif
commit 8d1931504a
3 changed files with 16 additions and 12 deletions

View file

@ -100,9 +100,9 @@
*/ */
#define SHELL_INIT_SECTIONS() \ #define SHELL_INIT_SECTIONS() \
__shell_cmd_start = .; \ __shell_module_start = .; \
KEEP(*(".shell_*")); \ KEEP(*(".shell_module_*")); \
__shell_cmd_end = .; __shell_module_end = .;
#ifdef CONFIG_APPLICATION_MEMORY #ifdef CONFIG_APPLICATION_MEMORY

View file

@ -86,7 +86,7 @@ struct shell_module {
#define SHELL_REGISTER_WITH_PROMPT(_name, _commands, _prompt) \ #define SHELL_REGISTER_WITH_PROMPT(_name, _commands, _prompt) \
\ \
static struct shell_module (__shell__name) __used \ static struct shell_module (__shell__name) __used \
__attribute__((__section__(".shell_"))) = { \ __attribute__((__section__(".shell_module_"))) = { \
.module_name = _name, \ .module_name = _name, \
.commands = _commands, \ .commands = _commands, \
.prompt = _prompt \ .prompt = _prompt \

View file

@ -36,9 +36,9 @@
#define PROMPT_MAX_LEN (MODULE_NAME_MAX_LEN + PROMPT_SUFFIX) #define PROMPT_MAX_LEN (MODULE_NAME_MAX_LEN + PROMPT_SUFFIX)
/* command table is located in the dedicated memory segment (.shell_) */ /* command table is located in the dedicated memory segment (.shell_) */
extern struct shell_module __shell_cmd_start[]; extern struct shell_module __shell_module_start[];
extern struct shell_module __shell_cmd_end[]; extern struct shell_module __shell_module_end[];
#define NUM_OF_SHELL_ENTITIES (__shell_cmd_end - __shell_cmd_start) #define NUM_OF_SHELL_ENTITIES (__shell_module_end - __shell_module_start)
static const char *prompt; static const char *prompt;
static char default_module_prompt[PROMPT_MAX_LEN]; static char default_module_prompt[PROMPT_MAX_LEN];
@ -142,9 +142,9 @@ static struct shell_module *get_destination_module(const char *module_str)
for (i = 0; i < NUM_OF_SHELL_ENTITIES; i++) { for (i = 0; i < NUM_OF_SHELL_ENTITIES; i++) {
if (!strncmp(module_str, if (!strncmp(module_str,
__shell_cmd_start[i].module_name, __shell_module_start[i].module_name,
MODULE_NAME_MAX_LEN)) { MODULE_NAME_MAX_LEN)) {
return &__shell_cmd_start[i]; return &__shell_module_start[i];
} }
} }
@ -239,9 +239,13 @@ module_help:
} else { /* help for all entities */ } else { /* help for all entities */
int i; int i;
if (NUM_OF_SHELL_ENTITIES == 0) {
printk("No registered modules.\n");
} else {
printk("Available modules:\n"); printk("Available modules:\n");
}
for (i = 0; i < NUM_OF_SHELL_ENTITIES; i++) { for (i = 0; i < NUM_OF_SHELL_ENTITIES; i++) {
printk("%s\n", __shell_cmd_start[i].module_name); printk("%s\n", __shell_module_start[i].module_name);
} }
printk("\nTo select a module, enter 'select <module name>'.\n"); printk("\nTo select a module, enter 'select <module name>'.\n");