From e586588471333cbd381437bbe1ae0a4cbced8a96 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 17 Dec 2007 22:37:29 +0000 Subject: 2007-12-17 Joel Sherrill * libmisc/Makefile.am, libmisc/shell/shellconfig.h: Add malloc command with info and dump as replacement for older command. Fix what looked like a typo for mount sub-commands. * libmisc/shell/main_mallocinfo.c: New file. * libmisc/shell/main_mallocdump.c: Removed. --- cpukit/ChangeLog | 8 ++++ cpukit/libmisc/Makefile.am | 2 +- cpukit/libmisc/shell/main_mallocdump.c | 42 -------------------- cpukit/libmisc/shell/main_mallocinfo.c | 72 ++++++++++++++++++++++++++++++++++ cpukit/libmisc/shell/shellconfig.h | 12 +++--- 5 files changed, 87 insertions(+), 49 deletions(-) delete mode 100644 cpukit/libmisc/shell/main_mallocdump.c create mode 100644 cpukit/libmisc/shell/main_mallocinfo.c diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 4de9f66330..d553c289c8 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,11 @@ +2007-12-17 Joel Sherrill + + * libmisc/Makefile.am, libmisc/shell/shellconfig.h: Add malloc command + with info and dump as replacement for older command. Fix what looked + like a typo for mount sub-commands. + * libmisc/shell/main_mallocinfo.c: New file. + * libmisc/shell/main_mallocdump.c: Removed. + 2007-12-17 Joel Sherrill * libcsupport/Makefile.am, libcsupport/src/mallocfreespace.c: Add diff --git a/cpukit/libmisc/Makefile.am b/cpukit/libmisc/Makefile.am index fbd78e3052..984bcaf8c9 100644 --- a/cpukit/libmisc/Makefile.am +++ b/cpukit/libmisc/Makefile.am @@ -73,7 +73,7 @@ libshell_a_SOURCES = shell/cat_file.c shell/cmds.c shell/internal.h \ shell/main_chdir.c shell/main_chmod.c shell/main_chroot.c \ shell/main_cpuuse.c shell/main_date.c shell/main_dir.c \ shell/main_exit.c shell/main_help.c shell/main_id.c \ - shell/main_logoff.c shell/main_ls.c shell/main_mallocdump.c \ + shell/main_logoff.c shell/main_ls.c shell/main_mallocinfo.c \ 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 \ diff --git a/cpukit/libmisc/shell/main_mallocdump.c b/cpukit/libmisc/shell/main_mallocdump.c deleted file mode 100644 index 44411770f3..0000000000 --- a/cpukit/libmisc/shell/main_mallocdump.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * MALLOC_DUMP Shell Command Implmentation - * - * Author: Fernando RUIZ CASAS - * Work: fernando.ruiz@ctv.es - * Home: correo@fernando-ruiz.com - * - * 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 -#include -#include "internal.h" - -/*----------------------------------------------------------------------------*/ -int rtems_shell_main_malloc_dump(int argc,char * argv[]) { - #ifdef MALLOC_STATS /* /rtems/s/src/lib/libc/malloc.c */ - void malloc_dump(void); - malloc_dump(); - #else - fprintf(stdout, "No malloc dump built into RTEMS\n"); - #endif - return 0; -} - -rtems_shell_cmd_t rtems_Shell_MALLOC_DUMP_Command = { - "malloc", /* name */ - "mem show memory malloc'ed", /* usage */ - "mem", /* topic */ - rtems_shell_main_malloc_dump, /* command */ - NULL, /* alias */ - NULL /* next */ -}; - diff --git a/cpukit/libmisc/shell/main_mallocinfo.c b/cpukit/libmisc/shell/main_mallocinfo.c new file mode 100644 index 0000000000..a7dd4f858f --- /dev/null +++ b/cpukit/libmisc/shell/main_mallocinfo.c @@ -0,0 +1,72 @@ +/* + * MALLOC_INFO Shell Command Implmentation + * + * 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 + +#include +#include +#include "internal.h" + +extern int malloc_info( region_information_block * ); + +static void printit( + const char *c, + Heap_Information *h +) +{ + printf( + "Number of %s blocks: %" PRId32 "\n" + "Largest %s block: %" PRId32 "\n" + "Total bytes %s: %" PRId32 "\n", + c, h->number, + c, h->largest, + c, h->total + ); +} + +int rtems_shell_main_malloc_info( + int argc, + char * argv[] +) +{ + if ( argc == 2 ) { + if ( !strcmp( argv[1], "info" ) ) { + region_information_block info; + + malloc_info( &info ); + printit( "free", &info.Free ); + printit( "used", &info.Used ); + return 0; + } else if ( !strcmp( argv[1], "dump" ) ) { + extern void malloc_dump(); + malloc_dump(); + return 0; + } + } + fprintf( stderr, "subcommands info or dump\n" ); + return -1; +} + +rtems_shell_cmd_t rtems_Shell_MALLOC_INFO_Command = { + "malloc", /* name */ + "[info|dump]", /* usage */ + "mem", /* topic */ + rtems_shell_main_malloc_info, /* command */ + NULL, /* alias */ + NULL /* next */ +}; + diff --git a/cpukit/libmisc/shell/shellconfig.h b/cpukit/libmisc/shell/shellconfig.h index aa7cf7c2f3..5c113be7f2 100644 --- a/cpukit/libmisc/shell/shellconfig.h +++ b/cpukit/libmisc/shell/shellconfig.h @@ -51,7 +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_MALLOC_DUMP_Command; +extern rtems_shell_cmd_t rtems_Shell_MALLOC_INFO_Command; extern rtems_shell_cmd_t *rtems_Shell_Initial_commands[]; @@ -280,9 +280,9 @@ extern rtems_shell_filesystems_t *rtems_Shell_Mount_filesystems[]; * Malloc family commands */ #if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \ - !defined(CONFIGURE_SHELL_COMMAND_MALLOC_DUMP)) || \ - defined(CONFIGURE_SHELL_COMMAND_MALLOC_DUMP) - &rtems_Shell_MALLOC_DUMP_Command, + !defined(CONFIGURE_SHELL_COMMAND_MALLOC_INFO)) || \ + defined(CONFIGURE_SHELL_COMMAND_MALLOC_INFO) + &rtems_Shell_MALLOC_INFO_Command, #endif /* @@ -298,8 +298,8 @@ extern rtems_shell_filesystems_t *rtems_Shell_Mount_filesystems[]; * The mount command's support file system types. */ #if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \ - !defined(CONFIGURE_SHELL_COMMAND_MALLOC_DUMP)) || \ - defined(CONFIGURE_SHELL_COMMAND_MALLOC_DUMP) + !defined(CONFIGURE_SHELL_COMMAND_MOUNT)) || \ + defined(CONFIGURE_SHELL_COMMAND_UNMOUNT) rtems_shell_filesystems_t *rtems_Shell_Mount_filesystems[] = { #if defined(CONFIGURE_SHELL_MOUNT_MSDOS) &rtems_Shell_Mount_MSDOS, -- cgit v1.2.3