forked from Imagelibrary/rtems
libmisc: Add top to shell.
This commit is contained in:
60
cpukit/libmisc/shell/main_top.c
Normal file
60
cpukit/libmisc/shell/main_top.c
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* TOP Command Implementation
|
||||
*
|
||||
* COPYRIGHT (c) 2014.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/cpuuse.h>
|
||||
#include <rtems/shell.h>
|
||||
#include "internal.h"
|
||||
|
||||
static int rtems_shell_main_top(
|
||||
int argc,
|
||||
char *argv[]
|
||||
)
|
||||
{
|
||||
/*
|
||||
* When invoked with no arguments, print the report.
|
||||
*/
|
||||
if ( argc == 1 ) {
|
||||
rtems_cpu_usage_top_with_plugin(stdout, (rtems_printk_plugin_t)fprintf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* When invoked with the single argument -r, reset the statistics.
|
||||
*/
|
||||
if ( argc == 2 && !strcmp( argv[1], "-r" ) ) {
|
||||
printf( "Resetting CPU Usage information\n" );
|
||||
rtems_cpu_usage_reset();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* OK. The user did something wrong.
|
||||
*/
|
||||
fprintf( stderr, "%s: [-r]\n", argv[0] );
|
||||
return -1;
|
||||
}
|
||||
|
||||
rtems_shell_cmd_t rtems_shell_TOP_Command = {
|
||||
"top", /* name */
|
||||
"[-r] print or reset per thread cpu usage", /* usage */
|
||||
"rtems", /* topic */
|
||||
rtems_shell_main_top, /* command */
|
||||
NULL, /* alias */
|
||||
NULL /* next */
|
||||
};
|
||||
@@ -78,6 +78,7 @@ extern rtems_shell_cmd_t rtems_shell_RTC_Command;
|
||||
|
||||
extern rtems_shell_cmd_t rtems_shell_HALT_Command;
|
||||
extern rtems_shell_cmd_t rtems_shell_CPUUSE_Command;
|
||||
extern rtems_shell_cmd_t rtems_shell_TOP_Command;
|
||||
extern rtems_shell_cmd_t rtems_shell_STACKUSE_Command;
|
||||
extern rtems_shell_cmd_t rtems_shell_PERIODUSE_Command;
|
||||
extern rtems_shell_cmd_t rtems_shell_WKSPACE_INFO_Command;
|
||||
@@ -409,6 +410,11 @@ extern rtems_shell_alias_t *rtems_shell_Initial_aliases[];
|
||||
&rtems_shell_CPUUSE_Command,
|
||||
#endif
|
||||
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
|
||||
!defined(CONFIGURE_SHELL_NO_COMMAND_TOP)) || \
|
||||
defined(CONFIGURE_SHELL_COMMAND_TOP)
|
||||
&rtems_shell_TOP_Command,
|
||||
#endif
|
||||
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
|
||||
!defined(CONFIGURE_SHELL_NO_COMMAND_STACKUSE)) || \
|
||||
defined(CONFIGURE_SHELL_COMMAND_STACKUSE)
|
||||
&rtems_shell_STACKUSE_Command,
|
||||
|
||||
Reference in New Issue
Block a user