This is an automated email from the ASF dual-hosted git repository. ccollins pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 84faab7679d12f50b791d1aa2c0483f7b5a91ac3 Author: Christopher Collins <ccoll...@apache.org> AuthorDate: Fri May 10 18:40:46 2019 -0700 sys/stats: Change the stats shell cmds to extended This allows the stats shell commands to be executed via newtmgr. --- sys/stats/full/src/stats_shell.c | 44 +++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/sys/stats/full/src/stats_shell.c b/sys/stats/full/src/stats_shell.c index 983d9ae..b9cf8c5 100644 --- a/sys/stats/full/src/stats_shell.c +++ b/sys/stats/full/src/stats_shell.c @@ -26,35 +26,43 @@ #include <string.h> #include "shell/shell.h" -#include "console/console.h" +#include "streamer/streamer.h" #include "stats/stats.h" -static int shell_stats_display(int argc, char **argv); -static struct shell_cmd shell_stats_cmd = { - .sc_cmd = "stat", - .sc_cmd_func = shell_stats_display -}; +static int shell_stats_display(const struct shell_cmd *cmd, + int argc, char **argv, + struct streamer *streamer); + +static struct shell_cmd shell_stats_cmd = + SHELL_CMD_EXT("stat", shell_stats_display, NULL); + uint8_t stats_shell_registered; static int stats_shell_display_entry(struct stats_hdr *hdr, void *arg, char *name, uint16_t stat_off) { + struct streamer *streamer; void *stat_val; + streamer = arg; + stat_val = (uint8_t *)hdr + stat_off; switch (hdr->s_size) { case sizeof(uint16_t): - console_printf("%s: %u\n", name, *(uint16_t *) stat_val); + streamer_printf(streamer, "%s: %u\n", name, + *(uint16_t *) stat_val); break; case sizeof(uint32_t): - console_printf("%s: %lu\n", name, *(unsigned long *) stat_val); + streamer_printf(streamer, "%s: %lu\n", name, + *(unsigned long *) stat_val); break; case sizeof(uint64_t): - console_printf("%s: %llu\n", name, *(uint64_t *) stat_val); + streamer_printf(streamer, "%s: %llu\n", name, + *(uint64_t *) stat_val); break; default: - console_printf("Unknown stat size for %s %u\n", name, + streamer_printf(streamer, "Unknown stat size for %s %u\n", name, hdr->s_size); break; } @@ -65,12 +73,16 @@ stats_shell_display_entry(struct stats_hdr *hdr, void *arg, char *name, static int stats_shell_display_group(struct stats_hdr *hdr, void *arg) { - console_printf("\t%s\n", hdr->s_name); + struct streamer *streamer; + + streamer = arg; + streamer_printf(streamer, "\t%s\n", hdr->s_name); return (0); } static int -shell_stats_display(int argc, char **argv) +shell_stats_display(const struct shell_cmd *cmd, int argc, char **argv, + struct streamer *streamer) { struct stats_hdr *hdr; char *name; @@ -78,21 +90,21 @@ shell_stats_display(int argc, char **argv) name = argv[1]; if (name == NULL || !strcmp(name, "")) { - console_printf("Must specify a statistic name to dump, " + streamer_printf(streamer, "Must specify a statistic name to dump, " "possible names are:\n"); - stats_group_walk(stats_shell_display_group, NULL); + stats_group_walk(stats_shell_display_group, streamer); rc = OS_EINVAL; goto err; } hdr = stats_group_find(name); if (!hdr) { - console_printf("Could not find statistic group %s\n", name); + streamer_printf(streamer, "Could not find statistic group %s\n", name); rc = OS_EINVAL; goto err; } - rc = stats_walk(hdr, stats_shell_display_entry, NULL); + rc = stats_walk(hdr, stats_shell_display_entry, streamer); if (rc != 0) { goto err; }