From b255016b9684ae3b3e2ca2843d01578dd23b9af9 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Tue, 1 Jan 2013 12:16:52 +1100 Subject: Add -s for symbols to 'rtl list' command. --- rtl-shell.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/rtl-shell.c b/rtl-shell.c index 728633b..8856f42 100644 --- a/rtl-shell.c +++ b/rtl-shell.c @@ -145,18 +145,36 @@ rtems_rtl_delta_voids (void* higher, void* lower) } /** - * See if -b for base is set. + * Parse an argument. */ static bool -rtems_rtl_base_arg (int argc, char *argv[]) +rtems_rtl_parse_arg (const char* opt, int argc, char *argv[]) { int arg; for (arg = 0; arg < argc; ++arg) - if (strncmp ("-b", argv[arg], 2) == 0) + if (strncmp (opt, argv[arg], 2) == 0) return true; return false; } +/** + * See if -b for base is set. + */ +static bool +rtems_rtl_base_arg (int argc, char *argv[]) +{ + return rtems_rtl_parse_arg ("-b", argc, argv); +} + +/** + * See if -s for base is set. + */ +static bool +rtems_rtl_symbols_arg (int argc, char *argv[]) +{ + return rtems_rtl_parse_arg ("-s", argc, argv); +} + /** * Object printer. */ @@ -257,7 +275,7 @@ rtems_rtl_shell_list (rtems_rtl_data_t* rtl, int argc, char *argv[]) print.oname = true; print.names = true; print.memory_map = true; - print.symbols = true; + print.symbols = rtems_rtl_symbols_arg (argc, argv); print.base = false; rtems_rtl_chain_iterate (&rtl->objects, rtems_rtl_obj_print_iterator, @@ -269,9 +287,6 @@ static int rtems_rtl_shell_sym (rtems_rtl_data_t* rtl, int argc, char *argv[]) { rtems_rtl_obj_print_t print; - - - print.rtl = rtl; print.indent = 1; print.oname = true; -- cgit v1.2.3