diff options
author | Chris Johns <chrisj@rtems.org> | 2007-12-17 00:12:01 +0000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2007-12-17 00:12:01 +0000 |
commit | 2eeb648c35eef0a378470f3cca523963978ffd09 (patch) | |
tree | 1c9ad13fdbf0117c6c953979da82cad8daf48d76 /cpukit/libmisc/shell/shell.h | |
parent | 2007-12-16 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-2eeb648c35eef0a378470f3cca523963978ffd09.tar.bz2 |
2007-12-17 Chris Johns <chrisj@rtems.org>
* libnetworking/rtems/tftp.h: Provide a decl to the TFTP file
system opts table.
* libnetworking/rtems/ftpfs.h: Provide a decl to the FTP file
system opts table.
* libmisc/Makefile.am: Add the mount command and supporting files.
* libmisc/preinstall.am: Rebuilt.
* libmisc/shell/cat_file.c, libmisc/shell/cmds.c,
libmisc/shell/main_alias.c, libmisc/shell/main_cat.c,
libmisc/shell/main_cd.c, libmisc/shell/main_chdir.c,
libmisc/shell/main_chmod.c, libmisc/shell/main_chroot.c,
libmisc/shell/main_cpuuse.c, libmisc/shell/main_date.c,
libmisc/shell/main_dir.c, libmisc/shell/main_exit.c,
libmisc/shell/main_help.c, libmisc/shell/main_id.c,
libmisc/shell/main_logoff.c, libmisc/shell/main_ls.c,
libmisc/shell/main_mallocdump.c, libmisc/shell/main_mdump.c,
libmisc/shell/main_medit.c, libmisc/shell/main_mfill.c,
libmisc/shell/main_mkdir.c, libmisc/shell/main_mmove.c,
libmisc/shell/main_mwdump.c, libmisc/shell/main_pwd.c,
libmisc/shell/main_rm.c, libmisc/shell/main_rmdir.c,
libmisc/shell/main_stackuse.c, libmisc/shell/main_tty.c,
libmisc/shell/main_umask.c, libmisc/shell/main_whoami.c,
libmisc/shell/shell.c, libmisc/shell/shell_cmdset.c,
libmisc/shell/shell_makeargs.c, libmisc/shell/str2int.c,
libmisc/shell/write_file.c: Move all shell_* types, variables and
functions to rtems_shell_* to avoid namespace clashes with
applications. The is an RTEMS shell after all.
* libmisc/shell/shell.h, libmisc/shell/internal.h,
libmisc/shell/shellconfig.h: Move all shell_* types, variables and
functions to rtems_shell_* to avoid namespace clashes with
applications. Add the mount command supporting types.
* libmisc/shell/main_mount.c, libmisc/shell/main_mount_ftp.c,
libmisc/shell/main_mount_msdos.c, libmisc/shell/main_mount_nfs.c,
libmisc/shell/main_mount_tftp.c: New.
Diffstat (limited to 'cpukit/libmisc/shell/shell.h')
-rw-r--r-- | cpukit/libmisc/shell/shell.h | 92 |
1 files changed, 58 insertions, 34 deletions
diff --git a/cpukit/libmisc/shell/shell.h b/cpukit/libmisc/shell/shell.h index 19e1d97917..fbaf1165ac 100644 --- a/cpukit/libmisc/shell/shell.h +++ b/cpukit/libmisc/shell/shell.h @@ -11,69 +11,71 @@ * HOME: correo@fernando-ruiz.com * * Thanks at: - * Chris John + * Chris Johns * * $Id$ */ -#ifndef __SHELL_H__ -#define __SHELL_H__ +#ifndef __RTEMS_SHELL_H__ +#define __RTEMS_SHELL_H__ #include <rtems.h> #include <stdio.h> #include <termios.h> +#include <rtems/fs.h> +#include <rtems/libio.h> #ifdef __cplusplus extern "C" { #endif -typedef int (*shell_command_t)(int argc,char * argv[]); +typedef int (*rtems_shell_command_t)(int argc,char * argv[]); -struct shell_cmd_tt; -typedef struct shell_cmd_tt shell_cmd_t; +struct rtems_shell_cmd_tt; +typedef struct rtems_shell_cmd_tt rtems_shell_cmd_t; -struct shell_cmd_tt { - char *name; - char *usage; - char *topic; - shell_command_t command; - shell_cmd_t *alias; - shell_cmd_t *next; +struct rtems_shell_cmd_tt { + char *name; + char *usage; + char *topic; + rtems_shell_command_t command; + rtems_shell_cmd_t *alias; + rtems_shell_cmd_t *next; }; typedef struct { char *name; char *alias; -} shell_alias_t; +} rtems_shell_alias_t; -shell_cmd_t * shell_lookup_cmd(char * cmd); +rtems_shell_cmd_t * rtems_shell_lookup_cmd(char * cmd); -shell_cmd_t *shell_add_cmd_struct( - shell_cmd_t *shell_cmd +rtems_shell_cmd_t *rtems_shell_add_cmd_struct( + rtems_shell_cmd_t *shell_cmd ); -shell_cmd_t * shell_add_cmd( - char *cmd, - char *topic, - char *usage, - shell_command_t command +rtems_shell_cmd_t * rtems_shell_add_cmd( + char *cmd, + char *topic, + char *usage, + rtems_shell_command_t command ); -shell_cmd_t * shell_alias_cmd( +rtems_shell_cmd_t * rtems_shell_alias_cmd( char *cmd, char *alias ); -int shell_make_args( +int rtems_shell_make_args( char *commandLine, int *argc_p, char **argv_p, int max_args ); -int shell_scanline(char * line,int size,FILE * in,FILE * out) ; -void cat_file(FILE * out,char *name); -void write_file(char *name,char * content); +int rtems_shell_scanline(char * line,int size,FILE * in,FILE * out) ; +void rtems_shell_cat_file(FILE * out,char *name); +void rtems_shell_write_file(char *name,char * content); /** * Initialise the shell creating tasks to login and run the shell @@ -90,7 +92,7 @@ void write_file(char *name,char * content); * needs to adjust the termios for its use but it should assume the * settings are set by the user for things like baudrate etc. */ -rtems_status_code shell_init( +rtems_status_code rtems_shell_init( char *task_name, uint32_t task_stacksize, /*0 default*/ rtems_task_priority task_priority, @@ -103,7 +105,7 @@ rtems_status_code shell_init( * Things that are useful to external entities developing commands and plugging * them in. */ -int str2int(char * s); +int rtems_shell_str2int(char * s); typedef struct { rtems_name magic; /* 'S','E','N','V': Shell Environment */ @@ -115,14 +117,36 @@ typedef struct { int forever ; /* repeat login */ int errorlevel; uintptr_t mdump_addr; -} shell_env_t; +} rtems_shell_env_t; -rtems_boolean shell_shell_loop( - shell_env_t *shell_env +rtems_boolean rtems_shell_shell_loop( + rtems_shell_env_t *rtems_shell_env ); -extern shell_env_t global_shell_env; -extern shell_env_t *current_shell_env; +extern rtems_shell_env_t rtems_global_shell_env; +extern rtems_shell_env_t *rtems_current_shell_env; + +/* + * The types of file systems we can mount. We have them broken out + * out like this so they can be configured by shellconfig.h. The + * mount command needs special treatment due to some file systems + * being dependent on the network stack and some not. If we had + * all possible file systems being included it would force the + * networking stack into the applcation and this may not be + * required. + */ +struct rtems_shell_filesystems_tt; +typedef struct rtems_shell_filesystems_tt rtems_shell_filesystems_t; +typedef int (*rtems_shell_filesystems_mounter_t)(const char* driver, + const char* path, + rtems_shell_filesystems_t* fs, + rtems_filesystem_options_t options); +struct rtems_shell_filesystems_tt { + const char* name; + int driver_needed; + rtems_filesystem_operations_table* fs_ops; + rtems_shell_filesystems_mounter_t mounter; +}; #ifdef __cplusplus } |