diff --git a/lib/aos/init.c b/lib/aos/init.c index 3092cf8..d3746bc 100644 --- a/lib/aos/init.c +++ b/lib/aos/init.c @@ -109,17 +109,16 @@ static size_t aos_terminal_write(const char *buf, size_t len) if(len == 0) return 0; struct aos_rpc *rpc = aos_rpc_get_serial_channel(); + if (rpc == NULL) { + debug_printf("[aos_terminal_write] RPC NOT YET INITIALIZED: %.*s\n", len, buf); + USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called."); + } for (int i = 0; i < len; ++i) { err = aos_rpc_serial_putchar(rpc, buf[i]); if (err_is_fail(err)) return err; } return SYS_ERR_OK; - // if (rpc == NULL) { - // debug_printf("[aos_terminal_write] RPC NOT YET INITIALIZED: %.*s\n", len, buf); - // USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called."); - // } - // return aos_rpc_serial_write(rpc, buf, len); } @@ -129,6 +128,10 @@ static size_t aos_terminal_read(char *buf, size_t len) if(len == 0) return 0; struct aos_rpc *rpc = aos_rpc_get_serial_channel(); + if (rpc == NULL) { + debug_printf("[aos_terminal_read] RPC NOT YET INITIALIZED: %.*s\n", len, buf); + USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called."); + } for (int i = 0; i < len; ++i) { char in; err = aos_rpc_serial_getchar(rpc, &in); @@ -137,12 +140,6 @@ static size_t aos_terminal_read(char *buf, size_t len) } return SYS_ERR_OK; - - // if (rpc == NULL) { - // debug_printf("[aos_terminal_read] RPC NOT YET INITIALIZED: %.*s\n", len, buf); - // USER_PANIC("Make sure to initialize aos_rpc before barrelfish_libc_glue_init is called."); - // } - // return aos_rpc_serial_read(rpc, buf, len); } diff --git a/usr/shelly/shelly_cmd.c b/usr/shelly/shelly_cmd.c index 99d2f02..30891ac 100644 --- a/usr/shelly/shelly_cmd.c +++ b/usr/shelly/shelly_cmd.c @@ -12,6 +12,22 @@ static void parse_cmd_line(char * line, int * argc, char ** argv) { } } +static errval_t shelly_cmd_help(char * line) { + errval_t err; + err = shelly_write_str("commands implemented:\n\r"); + if (err_is_fail(err)) return err; + err = shelly_write_str("- echo\n\r"); + if (err_is_fail(err)) return err; + err = shelly_write_str("- run\n\r"); + if (err_is_fail(err)) return err; + err = shelly_write_str("- ps\n\r"); + if (err_is_fail(err)) return err; + err = shelly_write_str("- help\n\r"); + if (err_is_fail(err)) return err; + + return SYS_ERR_OK; +} + static errval_t shelly_cmd_echo(char * line) { errval_t err; err = shelly_write_str(line); @@ -75,6 +91,8 @@ static errval_t handle_shelly_cmd(char* line, size_t len) { return shelly_cmd_run(remaining_line); } else if (strcmp(cmd, "ps") == 0) { return shelly_cmd_ps(remaining_line); + } else if (strcmp(cmd, "help") == 0) { + return shelly_cmd_help(remaining_line); } else { char buf[256]; snprintf(buf, 256, "unknown command \"%s\"\n\r", cmd);