This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit fe69c608dcf2f640bd638a34e8a089f6f9e6e0d4
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Wed Jun 4 19:30:15 2025 +0200

    hw/battery: Register module statically
    
    Now bat shell module is registered at link time to
    reduce memory footprint.
    No change in functionality.
    
    Signed-off-by: Jerzy Kasenberg <[email protected]>
---
 hw/battery/include/battery/battery.h |  4 --
 hw/battery/pkg.yml                   |  2 +
 hw/battery/src/battery.c             |  4 --
 hw/battery/src/battery_shell.c       | 84 +-----------------------------------
 4 files changed, 3 insertions(+), 91 deletions(-)

diff --git a/hw/battery/include/battery/battery.h 
b/hw/battery/include/battery/battery.h
index 50500a37a..de635e88a 100644
--- a/hw/battery/include/battery/battery.h
+++ b/hw/battery/include/battery/battery.h
@@ -301,10 +301,6 @@ int battery_get_driver_count(struct os_dev *battery);
 struct battery_driver *get_battery_driver(struct os_dev *battery,
         const char *dev_name);
 
-#if MYNEWT_VAL(BATTERY_SHELL)
-void battery_shell_register(void);
-#endif
-
 /**
  * }@
  */
diff --git a/hw/battery/pkg.yml b/hw/battery/pkg.yml
index dd0799b9b..bce2de6b1 100644
--- a/hw/battery/pkg.yml
+++ b/hw/battery/pkg.yml
@@ -28,5 +28,7 @@ pkg.deps:
 pkg.req_apis:
     - console
 
+pkg.whole_archive: true
+
 pkg.init:
     battery_pkg_init: 'MYNEWT_VAL(BATTERY_SYSINIT_STAGE)'
diff --git a/hw/battery/src/battery.c b/hw/battery/src/battery.c
index 892f2d298..61f03ac7c 100644
--- a/hw/battery/src/battery.c
+++ b/hw/battery/src/battery.c
@@ -142,10 +142,6 @@ battery_pkg_init(void)
     SYSINIT_ASSERT_ACTIVE();
 
     battery_mgr_init();
-
-#if MYNEWT_VAL(BATTERY_SHELL)
-    battery_shell_register();
-#endif
 }
 
 int
diff --git a/hw/battery/src/battery_shell.c b/hw/battery/src/battery_shell.c
index 3455ec604..3ce2b1db6 100644
--- a/hw/battery/src/battery_shell.c
+++ b/hw/battery/src/battery_shell.c
@@ -30,8 +30,6 @@
 #include <battery/battery.h>
 #include <battery/battery_prop.h>
 
-static int bat_compat_cmd(int argc, char **argv);
-
 #if MYNEWT_VAL(SHELL_CMD_HELP)
 #define HELP(a) &(a)
 
@@ -78,37 +76,6 @@ static const struct shell_cmd_help bat_monitor_help = {
 #define HELP(a) NULL
 #endif
 
-static const struct shell_cmd bat_cli_cmd = {
-    .sc_cmd = "bat",
-    .sc_cmd_func = bat_compat_cmd,
-};
-
-/**
- * cmd bat help
- *
- * Help for the bat command.
- *
- */
-static void
-cmd_bat_help(void)
-{
-    console_printf("Usage: bat <cmd> [options]\n");
-    console_printf("Available bat commands:\n");
-    console_printf("  pollrate <time_in_s>\n");
-    console_printf("  monitor [<prop>] [off]\n");
-    console_printf("  list\n");
-    console_printf("  read [<prop>] | all\n");
-    console_printf("  write <prop> <value>\n");
-
-    console_printf("Examples:\n");
-    console_printf("  list\n");
-    console_printf("  monitor VoltageADC\n");
-    console_printf("  monitor off\n");
-    console_printf("  read Voltage\n");
-    console_printf("  read all\n");
-    console_printf("  write VoltageLoAlarmSet\n");
-}
-
 static const char *bat_status[] = {
     "???",
     "charging",
@@ -482,57 +449,8 @@ static const struct shell_cmd bat_cli_commands[] = {
     SHELL_CMD("list", cmd_bat_list, &bat_list_help),
     SHELL_CMD("pollrate", cmd_bat_poll_rate, &bat_poll_rate_help),
     SHELL_CMD("monitor", cmd_bat_monitor, &bat_monitor_help),
-    { 0 },
 };
 
-/**
- * bat cmd
- *
- * Main processing function for K4 cli bat command
- *
- * @param argc Number of arguments
- * @param argv Argument list
- *
- * @return int 0: success, -1 error
- */
-static int
-bat_compat_cmd(int argc, char **argv)
-{
-    int rc;
-    int i;
-
-    if (argc < 2) {
-        rc = SYS_EINVAL;
-    } else {
-        for (i = 0; bat_cli_commands[i].sc_cmd; ++i) {
-            if (strcmp(bat_cli_commands[i].sc_cmd, argv[1]) == 0) {
-                rc = bat_cli_commands[i].sc_cmd_func(argc - 1, argv + 1);
-                break;
-            }
-        }
-        /* No command found */
-        if (bat_cli_commands[i].sc_cmd == NULL) {
-            console_printf("Invalid command.\n");
-            rc = -1;
-        }
-    }
-
-    /* Print help in case of error */
-    if (rc) {
-        cmd_bat_help();
-    }
-
-    return rc;
-}
-
-void
-battery_shell_register(void)
-{
-    int rc;
-
-    rc = shell_register("bat", bat_cli_commands);
-    rc = shell_cmd_register(&bat_cli_cmd);
-    SYSINIT_PANIC_ASSERT_MSG(rc == 0, "Failed to register battery shell");
-}
+SHELL_MODULE_WITH_TABLE(bat, bat_cli_commands)
 
 #endif

Reply via email to