ao_cmd_status = r;
}
+uint8_t
+ao_match_word(__code char *word)
+{
+ while (*word) {
+ if (ao_cmd_lex_c != *word) {
+ ao_cmd_status = ao_cmd_syntax_error;
+ return 0;
+ }
+ word++;
+ ao_cmd_lex();
+ }
+ return 1;
+}
+
static void
eol(void)
{
lex_echo = ao_cmd_lex_i != 0;
}
+static void
+ao_reboot(void)
+{
+ ao_cmd_white();
+ if (!ao_match_word("eboot"))
+ return;
+ WDCTL = WDCTL_EN | WDCTL_MODE_WATCHDOG | WDCTL_INT_64;
+ ao_sleep(AO_SEC_TO_TICKS(2));
+ ao_panic(AO_PANIC_REBOOT);
+}
+
static void
version(void)
{
{ '?', help, "? Print this message" },
{ 'T', ao_task_info, "T Show task states" },
{ 'E', echo, "E <0 off, 1 on> Set command echo mode" },
+ { 'r', ao_reboot, "r eboot Reboot" },
{ 'v', version, "v Show version" },
{ 0, help, NULL },
};