diff --git a/examples/rust-async/Cargo.lock b/examples/rust-async/Cargo.lock index 6d5d515cd9..7a4db6a779 100644 Binary files a/examples/rust-async/Cargo.lock and b/examples/rust-async/Cargo.lock differ diff --git a/examples/rust-gcoap/Cargo.lock b/examples/rust-gcoap/Cargo.lock index 47760dd547..a593dfb60d 100644 Binary files a/examples/rust-gcoap/Cargo.lock and b/examples/rust-gcoap/Cargo.lock differ diff --git a/examples/rust-hello-world/Cargo.lock b/examples/rust-hello-world/Cargo.lock index 9c487cacae..c8ef0d2da1 100644 Binary files a/examples/rust-hello-world/Cargo.lock and b/examples/rust-hello-world/Cargo.lock differ diff --git a/sys/include/shell.h b/sys/include/shell.h index 72886ca5d4..0a8e527caf 100644 --- a/sys/include/shell.h +++ b/sys/include/shell.h @@ -302,15 +302,14 @@ int shell_parse_file(const shell_command_t *commands, * ``` */ #define SHELL_COMMAND(cmd, help, func) \ - XFA_USE_CONST(shell_command_xfa_t*, shell_commands_xfa); \ + XFA_USE_CONST(shell_command_xfa_t, shell_commands_xfa_v2); \ static FLASH_ATTR const char _xfa_ ## cmd ## _cmd_name[] = #cmd; \ static FLASH_ATTR const char _xfa_ ## cmd ## _cmd_desc[] = help; \ - static const shell_command_xfa_t _xfa_ ## cmd ## _cmd = { \ + XFA_CONST(shell_command_xfa_t, shell_commands_xfa_v2, 0) _xfa_ ## cmd ## _cmd = { \ .name = _xfa_ ## cmd ## _cmd_name, \ .desc = _xfa_ ## cmd ## _cmd_desc, \ .handler = &func \ - }; \ - XFA_ADD_PTR(shell_commands_xfa, cmd, cmd, &_xfa_ ## cmd ## _cmd) + }; #endif /* __cplusplus */ #ifdef __cplusplus diff --git a/sys/rust_riotmodules_standalone/Cargo.lock b/sys/rust_riotmodules_standalone/Cargo.lock index d0bb569022..ffb4b5b3ce 100644 Binary files a/sys/rust_riotmodules_standalone/Cargo.lock and b/sys/rust_riotmodules_standalone/Cargo.lock differ diff --git a/sys/shell/shell.c b/sys/shell/shell.c index 2d69b8e3b4..5b89a7fd00 100644 --- a/sys/shell/shell.c +++ b/sys/shell/shell.c @@ -36,7 +36,6 @@ #include #include -#include "kernel_defines.h" #include "xfa.h" #include "shell.h" #include "shell_lock.h" @@ -47,7 +46,7 @@ #endif /* define shell command cross file array */ -XFA_INIT_CONST(shell_command_xfa_t*, shell_commands_xfa); +XFA_INIT_CONST(shell_command_xfa_t, shell_commands_xfa_v2); #define ETX '\x03' /** ASCII "End-of-Text", or Ctrl-C */ #define EOT '\x04' /** ASCII "End-of-Transmission", or Ctrl-D */ @@ -102,10 +101,10 @@ static shell_command_handler_t search_commands(const shell_command_t *entry, static shell_command_handler_t search_commands_xfa(char *command) { - unsigned n = XFA_LEN(shell_command_t*, shell_commands_xfa); + unsigned n = XFA_LEN(shell_command_t, shell_commands_xfa_v2); for (unsigned i = 0; i < n; i++) { - const volatile shell_command_xfa_t *entry = shell_commands_xfa[i]; + const volatile shell_command_xfa_t *entry = &shell_commands_xfa_v2[i]; if (flash_strcmp(command, entry->name) == 0) { return entry->handler; } @@ -147,7 +146,7 @@ static void print_commands_json(const shell_command_t *cmd_list) } } - unsigned n = XFA_LEN(shell_command_xfa_t*, shell_commands_xfa); + unsigned n = XFA_LEN(shell_command_xfa_t, shell_commands_xfa_v2); for (unsigned i = 0; i < n; i++) { if (first) { first = false; @@ -155,7 +154,7 @@ static void print_commands_json(const shell_command_t *cmd_list) else { printf(", "); } - const volatile shell_command_xfa_t *entry = shell_commands_xfa[i]; + const volatile shell_command_xfa_t *entry = &shell_commands_xfa_v2[i]; printf("{\"cmd\": \"%s\", \"desc\": \"%s\"}", entry->name, entry->desc); } puts("]}"); @@ -170,9 +169,9 @@ static void print_commands(const shell_command_t *entry) static void print_commands_xfa(void) { - unsigned n = XFA_LEN(shell_command_xfa_t*, shell_commands_xfa); + unsigned n = XFA_LEN(shell_command_xfa_t, shell_commands_xfa_v2); for (unsigned i = 0; i < n; i++) { - const volatile shell_command_xfa_t *entry = shell_commands_xfa[i]; + const volatile shell_command_xfa_t *entry = &shell_commands_xfa_v2[i]; printf("%-20" PRIsflash " %" PRIsflash "\n", entry->name, entry->desc); } diff --git a/tests/rust_minimal/Cargo.lock b/tests/rust_minimal/Cargo.lock index fcf2547a5d..7ccd215124 100644 Binary files a/tests/rust_minimal/Cargo.lock and b/tests/rust_minimal/Cargo.lock differ