diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-12-18 20:36:40 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-12-18 20:36:40 +0000 |
commit | 543fe820616f31350366ab61052050303d17dd25 (patch) | |
tree | a2e4702be2cd9988ed341586c1c8c976b8ba3bb8 /cpukit/libmisc | |
parent | 2007-12-18 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-543fe820616f31350366ab61052050303d17dd25.tar.bz2 |
2007-12-18 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/Makefile.am, libcsupport/preinstall.am,
libcsupport/src/malloc.c, libcsupport/src/mallocinfo.c,
libmisc/Makefile.am, libmisc/shell/main_mallocinfo.c,
libmisc/shell/shellconfig.h: Split malloc.c into multiple files with
one function per file. Also split out statistics into a separate file
which can be plugged in dynamically. Right now, it is always in. I
suspect that splitting the file removed more code than leaving
statistics in. I tinkered with malloc information command in the
shell. I resurrected the malloc arena code as malloc boundary. This
code is now compiled all the time even though it does not appear to
work.
* libcsupport/include/rtems/malloc.h, libcsupport/src/_calloc_r.c,
libcsupport/src/_free_r.c, libcsupport/src/_malloc_r.c,
libcsupport/src/_realloc_r.c, libcsupport/src/calloc.c,
libcsupport/src/free.c, libcsupport/src/malloc_boundary.c,
libcsupport/src/malloc_get_statistics.c,
libcsupport/src/malloc_initialize.c, libcsupport/src/malloc_p.h,
libcsupport/src/malloc_report_statistics.c,
libcsupport/src/malloc_report_statistics_plugin.c,
libcsupport/src/malloc_statistics_helpers.c,
libcsupport/src/malloc_walk.c, libcsupport/src/realloc.c,
libmisc/shell/main_perioduse.c: New files.
Diffstat (limited to 'cpukit/libmisc')
-rw-r--r-- | cpukit/libmisc/Makefile.am | 12 | ||||
-rw-r--r-- | cpukit/libmisc/shell/main_mallocinfo.c | 17 | ||||
-rw-r--r-- | cpukit/libmisc/shell/main_perioduse.c | 45 | ||||
-rw-r--r-- | cpukit/libmisc/shell/shellconfig.h | 6 |
4 files changed, 67 insertions, 13 deletions
diff --git a/cpukit/libmisc/Makefile.am b/cpukit/libmisc/Makefile.am index 984bcaf8c9..19679c53d4 100644 --- a/cpukit/libmisc/Makefile.am +++ b/cpukit/libmisc/Makefile.am @@ -77,12 +77,12 @@ libshell_a_SOURCES = shell/cat_file.c shell/cmds.c shell/internal.h \ shell/main_mdump.c shell/main_medit.c shell/main_mfill.c \ shell/main_mkdir.c shell/main_mount.c $(shell_mount_fs) \ shell/main_mount_msdos.c shell/main_mmove.c shell/main_msdosfmt.c \ - shell/main_mwdump.c shell/main_pwd.c shell/main_rm.c shell/main_rmdir.c \ - shell/main_stackuse.c shell/main_tty.c shell/main_umask.c \ - shell/main_unmount.c shell/main_blksync.c shell/main_whoami.c \ - shell/shell.c shell/shell_cmdset.c shell/shellconfig.c \ - shell/shellconfig.h shell/shell.h shell/shell_makeargs.c \ - shell/str2int.c shell/write_file.c + shell/main_mwdump.c shell/main_perioduse.c shell/main_pwd.c \ + shell/main_rm.c shell/main_rmdir.c shell/main_stackuse.c \ + shell/main_tty.c shell/main_umask.c shell/main_unmount.c \ + shell/main_blksync.c shell/main_whoami.c shell/shell.c \ + shell/shell_cmdset.c shell/shellconfig.c shell/shellconfig.h \ + shell/shell.h shell/shell_makeargs.c shell/str2int.c shell/write_file.c endif EXTRA_DIST += shell/README diff --git a/cpukit/libmisc/shell/main_mallocinfo.c b/cpukit/libmisc/shell/main_mallocinfo.c index 689a022073..fa3c239ba4 100644 --- a/cpukit/libmisc/shell/main_mallocinfo.c +++ b/cpukit/libmisc/shell/main_mallocinfo.c @@ -18,6 +18,7 @@ #include <inttypes.h> #include <rtems.h> +#include <rtems/malloc.h> #include <rtems/shell.h> #include "internal.h" @@ -39,8 +40,8 @@ static void printit( } int rtems_shell_main_malloc_info( - int argc, - char * argv[] + int argc, + char *argv[] ) { if ( argc == 2 ) { @@ -51,19 +52,21 @@ int rtems_shell_main_malloc_info( printit( "free", &info.Free ); printit( "used", &info.Used ); return 0; - } else if ( !strcmp( argv[1], "dump" ) ) { - extern void malloc_dump(); - malloc_dump(); + } else if ( !strcmp( argv[1], "stats" ) ) { + malloc_report_statistics_with_plugin( + stdout, + (rtems_printk_plugin_t) fprintf + ); return 0; } } - fprintf( stderr, "subcommands info or dump\n" ); + fprintf( stderr, "subcommands info or stats\n" ); return -1; } rtems_shell_cmd_t rtems_shell_MALLOC_INFO_Command = { "malloc", /* name */ - "[info|dump]", /* usage */ + "[info|stats]", /* usage */ "mem", /* topic */ rtems_shell_main_malloc_info, /* command */ NULL, /* alias */ diff --git a/cpukit/libmisc/shell/main_perioduse.c b/cpukit/libmisc/shell/main_perioduse.c new file mode 100644 index 0000000000..349e168cd4 --- /dev/null +++ b/cpukit/libmisc/shell/main_perioduse.c @@ -0,0 +1,45 @@ +/* + * perioduse Command Implementation + * + * COPYRIGHT (c) 1989-2007. + * 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.com/license/LICENSE. + * + * $Id$ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <stdio.h> + +#include <rtems.h> +#include <rtems/shell.h> +#include "internal.h" + +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 { + rtems_rate_monotonic_report_statistics_with_plugin( + stdout, + (rtems_printk_plugin_t)fprintf + ); + } + return 0; +} + +rtems_shell_cmd_t rtems_shell_PERIODUSE_Command = { + "perioduse", /* name */ + "[-r] print or reset per period usage", /* usage */ + "rtems", /* topic */ + rtems_shell_main_perioduse, /* command */ + NULL, /* alias */ + NULL /* next */ +}; diff --git a/cpukit/libmisc/shell/shellconfig.h b/cpukit/libmisc/shell/shellconfig.h index 0309b1d573..1596c10ca9 100644 --- a/cpukit/libmisc/shell/shellconfig.h +++ b/cpukit/libmisc/shell/shellconfig.h @@ -51,6 +51,7 @@ extern rtems_shell_cmd_t rtems_shell_BLKSYNC_Command; extern rtems_shell_cmd_t rtems_shell_CPUUSE_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_MALLOC_INFO_Command; extern rtems_shell_cmd_t *rtems_shell_Initial_commands[]; @@ -275,6 +276,11 @@ extern rtems_shell_filesystems_t *rtems_shell_Mount_filesystems[]; defined(CONFIGURE_SHELL_COMMAND_STACKUSE) &rtems_shell_STACKUSE_Command, #endif + #if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \ + !defined(CONFIGURE_SHELL_NO_COMMAND_PERIODUSE)) || \ + defined(CONFIGURE_SHELL_COMMAND_PERIODUSE) + &rtems_shell_PERIODUSE_Command, + #endif /* * Malloc family commands |