summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/shell/main_perioduse.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/libmisc/shell/main_perioduse.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/cpukit/libmisc/shell/main_perioduse.c b/cpukit/libmisc/shell/main_perioduse.c
index 349e168cd4..9ad18d76de 100644
--- a/cpukit/libmisc/shell/main_perioduse.c
+++ b/cpukit/libmisc/shell/main_perioduse.c
@@ -21,18 +21,36 @@
#include <rtems/shell.h>
#include "internal.h"
-int rtems_shell_main_perioduse(int argc,char *argv[])
+int rtems_shell_main_perioduse(
+ int argc,
+ char *argv[]
+)
{
- if ( argc >= 1 && !strcmp( argv[1], "-r" ) ) {
- printf( "Resetting Period Usage information\n" );
- rtems_rate_monotonic_reset_all_statistics();
- } else {
+ /*
+ * When invoked with no arguments, print the report.
+ */
+ if ( argc == 1 ) {
rtems_rate_monotonic_report_statistics_with_plugin(
stdout,
(rtems_printk_plugin_t)fprintf
);
+ return 0;
}
- return 0;
+
+ /*
+ * When invoked with the single argument -r, reset the statistics.
+ */
+ if ( argc == 2 && !strcmp( argv[1], "-r" ) ) {
+ printf( "Resetting Period Usage information\n" );
+ rtems_rate_monotonic_reset_all_statistics();
+ return 0;
+ }
+
+ /*
+ * OK. The user did something wrong.
+ */
+ fprintf( stderr, "%s: [-r]\n", argv[0] );
+ return -1;
}
rtems_shell_cmd_t rtems_shell_PERIODUSE_Command = {