From 2eeb648c35eef0a378470f3cca523963978ffd09 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Mon, 17 Dec 2007 00:12:01 +0000 Subject: 2007-12-17 Chris Johns * 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. --- cpukit/libmisc/shell/shell.h | 92 ++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 34 deletions(-) (limited to 'cpukit/libmisc/shell/shell.h') 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 #include #include +#include +#include #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 } -- cgit v1.2.3