Files
rtems/cpukit/libmisc/shell/shellconfig.h
Chris Johns eb649786c8 2009-10-08 Chris Johns <chrisj@rtems.org>
* Makefile.am, preinstall.am: Added statvfs.h.
        * libcsupport/Makefile.am: Add statvfs.c.
        * libcsupport/include/sys/statvfs.h, libcsupport/src/statvfs.c:
        New.
        * libcsupport/include/rtems/libio.h: Add a file system handler for
        the statvfs call.
        * libfs/src/devfs/devfs_init.c, libfs/src/dosfs/msdos_init.c,
        libfs/src/imfs/imfs_init.c, libfs/src/nfsclient/src/nfs.c: Set the
        statvfs handler to NULL.
        * include/rtems/fs.h: Add a second node access field for the RFS
        file system to hold a directory offset while the existing field
        holds the inode number. This save a rescan of the directory when
        working with directories.
        * libblock/include/rtems/bdbuf.h: Added references and user fields
        to the buffer descriptor.
        * libblock/src/bdbuf.c: Added dynamic buffer support for different
        block sizes. Fixed a number of bugs.
        * libblock/src/blkdev.c: Release the disk device on an error.
        * libblock/src/diskdevs.c: Set the block size to the media block
        size during initialisation of the disk device.
        * libblock/src/flashdisk.c, libblock/src/nvdisk.c,
        libblock/src/ramdisk.c: Updated the drivers to handle variable
        block sizes.
        * libfs/src/dosfs/fat.c, libfs/src/dosfs/fat.h: Release any
        buffers when an error occurs. The FAT buffer layer hangs onto a
        single buffer while mounted. This should be fixed.
        * sapi/inline/rtems/chain.inl: Added rtems_chain_set_off_chain,
        rtems_chain_is_node_off_chain, and rtems_chain_previous.
        * score/inline/rtems/score/chain.inl: Added _Chain_Set_off_chain,
        and _Chain_Is_node_off_chain.
        * libmisc/shell/main_ln.c, libmisc/shell/main_mknod.c,
        libmisc/shell/mknod-pack_dev.c, libmisc/shell/mknod-pack_dev.h:
        New shell commands.
        * libmisc/Makefile.am, libmisc/shell/shellconfig.h: Added ln and
        mknod commands.
        * libmisc/shell/hexdump-display.c: Fixed the reopen bug which
        showed up as a free with a bad pointer.
        * libmisc/shell/main_mount.c: List the user adding file system
        when listing the available file systems to mount.
        * libmisc/shell/utils-cp.c: Remove the fixed static copy buffer
        and use a large dynamic buffer.
        * score/inline/rtems/score/address.inl, score/src/coremsgsubmit.c,
        score/src/objectallocate.c, score/src/objectfree.c: Remove
        warnings.
2009-10-08 07:07:36 +00:00

443 lines
15 KiB
C

/*
* RTEMS Shell Command Set Configuration
*
* 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$
*/
#ifndef _RTEMS_SHELL_CONFIG_h
#define _RTEMS_SHELL_CONFIG_h
#include <rtems/shell.h>
/*
* Externs for all command definition structures
*/
extern rtems_shell_cmd_t rtems_shell_HELP_Command;
extern rtems_shell_cmd_t rtems_shell_ALIAS_Command;
extern rtems_shell_cmd_t rtems_shell_TIME_Command;
extern rtems_shell_cmd_t rtems_shell_LOGOFF_Command;
extern rtems_shell_cmd_t rtems_shell_MDUMP_Command;
extern rtems_shell_cmd_t rtems_shell_WDUMP_Command;
extern rtems_shell_cmd_t rtems_shell_MEDIT_Command;
extern rtems_shell_cmd_t rtems_shell_MFILL_Command;
extern rtems_shell_cmd_t rtems_shell_MMOVE_Command;
extern rtems_shell_cmd_t rtems_shell_JOEL_Command;
extern rtems_shell_cmd_t rtems_shell_DATE_Command;
extern rtems_shell_cmd_t rtems_shell_ECHO_Command;
extern rtems_shell_cmd_t rtems_shell_SLEEP_Command;
extern rtems_shell_cmd_t rtems_shell_ID_Command;
extern rtems_shell_cmd_t rtems_shell_TTY_Command;
extern rtems_shell_cmd_t rtems_shell_WHOAMI_Command;
extern rtems_shell_cmd_t rtems_shell_CP_Command;
extern rtems_shell_cmd_t rtems_shell_PWD_Command;
extern rtems_shell_cmd_t rtems_shell_LS_Command;
extern rtems_shell_cmd_t rtems_shell_CHDIR_Command;
extern rtems_shell_cmd_t rtems_shell_MKDIR_Command;
extern rtems_shell_cmd_t rtems_shell_RMDIR_Command;
extern rtems_shell_cmd_t rtems_shell_CHROOT_Command;
extern rtems_shell_cmd_t rtems_shell_CHMOD_Command;
extern rtems_shell_cmd_t rtems_shell_CAT_Command;
extern rtems_shell_cmd_t rtems_shell_MSDOSFMT_Command;
extern rtems_shell_cmd_t rtems_shell_MV_Command;
extern rtems_shell_cmd_t rtems_shell_RM_Command;
extern rtems_shell_cmd_t rtems_shell_LN_Command;
extern rtems_shell_cmd_t rtems_shell_MKNOD_Command;
extern rtems_shell_cmd_t rtems_shell_UMASK_Command;
extern rtems_shell_cmd_t rtems_shell_MOUNT_Command;
extern rtems_shell_cmd_t rtems_shell_UNMOUNT_Command;
extern rtems_shell_cmd_t rtems_shell_BLKSYNC_Command;
extern rtems_shell_cmd_t rtems_shell_FDISK_Command;
extern rtems_shell_cmd_t rtems_shell_DD_Command;
extern rtems_shell_cmd_t rtems_shell_HEXDUMP_Command;
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_STACKUSE_Command;
extern rtems_shell_cmd_t rtems_shell_PERIODUSE_Command;
extern rtems_shell_cmd_t rtems_shell_WKSPACE_INFO_Command;
extern rtems_shell_cmd_t rtems_shell_MALLOC_INFO_Command;
#if RTEMS_NETWORKING
extern rtems_shell_cmd_t rtems_shell_IFCONFIG_Command;
extern rtems_shell_cmd_t rtems_shell_ROUTE_Command;
extern rtems_shell_cmd_t rtems_shell_NETSTATS_Command;
#endif
extern rtems_shell_cmd_t *rtems_shell_Initial_commands[];
/*
* Extern for alias commands
*/
extern rtems_shell_alias_t rtems_shell_DIR_Alias;
extern rtems_shell_alias_t rtems_shell_CD_Alias;
extern rtems_shell_alias_t rtems_shell_EXIT_Alias;
extern rtems_shell_alias_t *rtems_shell_Initial_aliases[];
/*
* Externs for mount command helpers
*/
extern rtems_shell_filesystems_t rtems_shell_Mount_MSDOS;
extern rtems_shell_filesystems_t rtems_shell_Mount_TFTP;
extern rtems_shell_filesystems_t rtems_shell_Mount_FTP;
extern rtems_shell_filesystems_t rtems_shell_Mount_NFS;
extern rtems_shell_filesystems_t *rtems_shell_Mount_filesystems[];
/*
* If we are configured to alias a command, then make sure the underlying
* command is configured.
*/
#if !defined(CONFIGURE_SHELL_COMMANDS_ALL)
#if defined(CONFIGURE_SHELL_COMMANDS_DIR) && \
!defined(CONFIGURE_SHELL_COMMANDS_LS)
#define CONFIGURE_SHELL_COMMAND_LS
#endif
#if defined(CONFIGURE_SHELL_COMMANDS_CD) && \
!defined(CONFIGURE_SHELL_COMMANDS_CHDIR)
#define CONFIGURE_SHELL_COMMAND_CHDIR
#endif
#if defined(CONFIGURE_SHELL_COMMANDS_EXIT) && \
!defined(CONFIGURE_SHELL_COMMANDS_LOGOFF)
#define CONFIGURE_SHELL_COMMAND_LOGOFF
#endif
#endif
#if defined(CONFIGURE_SHELL_COMMANDS_INIT)
rtems_shell_alias_t *rtems_shell_Initial_aliases[] = {
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_DIR)) || \
defined(CONFIGURE_SHELL_COMMAND_DIR)
&rtems_shell_DIR_Alias,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CD)) || \
defined(CONFIGURE_SHELL_COMMAND_CD)
&rtems_shell_CD_Alias,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_EXIT)) || \
defined(CONFIGURE_SHELL_COMMAND_EXIT)
&rtems_shell_EXIT_Alias,
#endif
/*
* User defined shell aliases
*/
#if defined(CONFIGURE_SHELL_USER_ALIASES)
CONFIGURE_SHELL_USER_ALIASES,
#endif
NULL
};
rtems_shell_cmd_t *rtems_shell_Initial_commands[] = {
/*
* General comamnds that should be present
*/
&rtems_shell_HELP_Command,
&rtems_shell_ALIAS_Command,
&rtems_shell_TIME_Command,
/*
* Common commands that can be optional
*/
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_JOEL)) || \
defined(CONFIGURE_SHELL_COMMAND_JOEL)
&rtems_shell_JOEL_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_DATE)) || \
defined(CONFIGURE_SHELL_COMMAND_DATE)
&rtems_shell_DATE_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_ECHO)) || \
defined(CONFIGURE_SHELL_COMMAND_ECHO)
&rtems_shell_ECHO_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_SLEEP)) || \
defined(CONFIGURE_SHELL_COMMAND_SLEEP)
&rtems_shell_SLEEP_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_ID)) || \
defined(CONFIGURE_SHELL_COMMAND_ID)
&rtems_shell_ID_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_TTY)) || \
defined(CONFIGURE_SHELL_COMMAND_TTY)
&rtems_shell_TTY_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_WHOAMI)) || \
defined(CONFIGURE_SHELL_COMMAND_WHOAMI)
&rtems_shell_WHOAMI_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_LOGOFF)) || \
defined(CONFIGURE_SHELL_COMMAND_LOGOFF)
&rtems_shell_LOGOFF_Command,
#endif
/*
* Memory printing/modification family commands
*/
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MDUMP)) || \
defined(CONFIGURE_SHELL_COMMAND_MDUMP)
&rtems_shell_MDUMP_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_WDUMP)) || \
defined(CONFIGURE_SHELL_COMMAND_WDUMP)
&rtems_shell_WDUMP_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MEDIT)) || \
defined(CONFIGURE_SHELL_COMMAND_MEDIT)
&rtems_shell_MEDIT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MFILL)) || \
defined(CONFIGURE_SHELL_COMMAND_MFILL)
&rtems_shell_MFILL_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MMOVE)) || \
defined(CONFIGURE_SHELL_COMMAND_MMOVE)
&rtems_shell_MMOVE_Command,
#endif
/*
* File and directory commands
*/
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CP)) || \
defined(CONFIGURE_SHELL_COMMAND_CP)
&rtems_shell_CP_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_PWD)) || \
defined(CONFIGURE_SHELL_COMMAND_PWD)
&rtems_shell_PWD_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_LS)) || \
defined(CONFIGURE_SHELL_COMMAND_LS)
&rtems_shell_LS_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CHDIR)) || \
defined(CONFIGURE_SHELL_COMMAND_CHDIR)
&rtems_shell_CHDIR_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MKDIR)) || \
defined(CONFIGURE_SHELL_COMMAND_MKDIR)
&rtems_shell_MKDIR_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_RMDIR)) || \
defined(CONFIGURE_SHELL_COMMAND_RMDIR)
&rtems_shell_RMDIR_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CHROOT)) || \
defined(CONFIGURE_SHELL_COMMAND_CHROOT)
&rtems_shell_CHROOT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CHMOD)) || \
defined(CONFIGURE_SHELL_COMMAND_CHMOD)
&rtems_shell_CHMOD_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CAT)) || \
defined(CONFIGURE_SHELL_COMMAND_CAT)
&rtems_shell_CAT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MSDOSFMT)) || \
defined(CONFIGURE_SHELL_COMMAND_MSDOSFMT)
&rtems_shell_MSDOSFMT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MV)) || \
defined(CONFIGURE_SHELL_COMMAND_MV)
&rtems_shell_MV_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_RM)) || \
defined(CONFIGURE_SHELL_COMMAND_RM)
&rtems_shell_RM_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_LN)) || \
defined(CONFIGURE_SHELL_COMMAND_LN)
&rtems_shell_LN_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MKNOD)) || \
defined(CONFIGURE_SHELL_COMMAND_MKNOD)
&rtems_shell_MKNOD_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_UMASK)) || \
defined(CONFIGURE_SHELL_COMMAND_UMASK)
&rtems_shell_UMASK_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MOUNT)) || \
defined(CONFIGURE_SHELL_COMMAND_MOUNT)
&rtems_shell_MOUNT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_UNMOUNT)) || \
defined(CONFIGURE_SHELL_COMMAND_UNMOUNT)
&rtems_shell_UNMOUNT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_BLKSYNC)) || \
defined(CONFIGURE_SHELL_COMMAND_BLKSYNC)
&rtems_shell_BLKSYNC_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_FDISK)) || \
defined(CONFIGURE_SHELL_COMMAND_FDISK)
&rtems_shell_FDISK_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_DD)) || \
defined(CONFIGURE_SHELL_COMMAND_DD)
&rtems_shell_DD_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_HEXDUMP)) || \
defined(CONFIGURE_SHELL_COMMAND_HEXDUMP)
&rtems_shell_HEXDUMP_Command,
#endif
/*
* RTEMS Related commands
*/
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_HALT)) || \
defined(CONFIGURE_SHELL_COMMAND_HALT)
&rtems_shell_HALT_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_CPUUSE)) || \
defined(CONFIGURE_SHELL_COMMAND_CPUUSE)
&rtems_shell_CPUUSE_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_STACKUSE)) || \
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
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_WKSPACE_INFO)) || \
defined(CONFIGURE_SHELL_COMMAND_WKSPACE_INFO)
&rtems_shell_WKSPACE_INFO_Command,
#endif
/*
* Malloc family commands
*/
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_MALLOC_INFO)) || \
defined(CONFIGURE_SHELL_COMMAND_MALLOC_INFO)
&rtems_shell_MALLOC_INFO_Command,
#endif
/*
* Network related commands
*/
#if RTEMS_NETWORKING
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL_NETWORKING) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_IFCONFIG)) || \
defined(CONFIGURE_SHELL_COMMAND_IFCONFIG)
&rtems_shell_IFCONFIG_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL_NETWORKING) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_ROUTE)) || \
defined(CONFIGURE_SHELL_COMMAND_ROUTE)
&rtems_shell_ROUTE_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL_NETWORKING) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_NETSTATS)) || \
defined(CONFIGURE_SHELL_COMMAND_NETSTATS)
&rtems_shell_NETSTATS_Command,
#endif
#endif
/* Miscanellous shell commands */
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) \
&& !defined(CONFIGURE_SHELL_NO_COMMAND_RTC)) \
|| defined(CONFIGURE_SHELL_COMMAND_RTC)
&rtems_shell_RTC_Command,
#endif
/*
* User defined shell commands
*/
#if defined(CONFIGURE_SHELL_USER_COMMANDS)
CONFIGURE_SHELL_USER_COMMANDS,
#endif
NULL
};
/*
* The mount command's support file system types.
*/
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_COMMAND_NO_MOUNT)) || \
defined(CONFIGURE_SHELL_COMMAND_MOUNT)
rtems_shell_filesystems_t *rtems_shell_Mount_filesystems[] = {
#if defined(CONFIGURE_SHELL_MOUNT_MSDOS)
&rtems_shell_Mount_MSDOS,
#endif
#if RTEMS_NETWORKING
#if defined(CONFIGURE_SHELL_MOUNT_TFTP)
&rtems_shell_Mount_TFTP,
#endif
#if defined(CONFIGURE_SHELL_MOUNT_FTP)
&rtems_shell_Mount_FTP,
#endif
#if defined(CONFIGURE_SHELL_MOUNT_NFS)
&rtems_shell_Mount_NFS,
#endif
#endif
NULL
};
#endif
#endif
#endif