summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2013-01-01 12:16:52 +1100
committerChris Johns <chrisj@rtems.org>2013-01-01 12:16:52 +1100
commitb255016b9684ae3b3e2ca2843d01578dd23b9af9 (patch)
treece4c598d4af8084e1a764ecab1eef99c66f77076
parent2bbf8f5cddaa50b21ae67147ab5120f3d26fbe70 (diff)
Add -s for symbols to 'rtl list' command.
-rw-r--r--rtl-shell.c29
1 files 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,19 +145,37 @@ 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.
*/
static bool
@@ -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;