RTEMS CPU Kit with SuperCore  4.10.99.0
Data Structures | Defines | Typedefs | Functions | Variables
rtems/shell.h File Reference

Instantatiate a New Terminal Shell. More...

#include <rtems.h>
#include <stdio.h>
#include <termios.h>
#include <rtems/fs.h>
#include <rtems/libio.h>
#include <rtems/chain.h>
Include dependency graph for shell.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rtems_shell_cmd_tt
struct  rtems_shell_alias_t
struct  rtems_shell_env_t
 Private environment associated with each shell instance. More...
struct  rtems_shell_filesystems_tt

Defines

#define RTEMS_SHELL_KEYS_EXTENDED   (0x8000)
#define RTEMS_SHELL_KEYS_NORMAL_MASK   (0x00ff)
#define RTEMS_SHELL_KEYS_INS   (0)
#define RTEMS_SHELL_KEYS_DEL   (1)
#define RTEMS_SHELL_KEYS_UARROW   (2)
#define RTEMS_SHELL_KEYS_DARROW   (3)
#define RTEMS_SHELL_KEYS_LARROW   (4)
#define RTEMS_SHELL_KEYS_RARROW   (5)
#define RTEMS_SHELL_KEYS_HOME   (6)
#define RTEMS_SHELL_KEYS_END   (7)
#define RTEMS_SHELL_KEYS_F1   (8)
#define RTEMS_SHELL_KEYS_F2   (9)
#define RTEMS_SHELL_KEYS_F3   (10)
#define RTEMS_SHELL_KEYS_F4   (11)
#define RTEMS_SHELL_KEYS_F5   (12)
#define RTEMS_SHELL_KEYS_F6   (13)
#define RTEMS_SHELL_KEYS_F7   (14)
#define RTEMS_SHELL_KEYS_F8   (15)
#define RTEMS_SHELL_KEYS_F9   (16)
#define RTEMS_SHELL_KEYS_F10   (17)

Typedefs

typedef bool(* rtems_shell_login_check_t )(const char *, const char *)
typedef int(* rtems_shell_command_t )(int argc, char **argv)
typedef struct rtems_shell_cmd_tt rtems_shell_cmd_t
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)
typedef void(* rtems_shell_wait_for_input_notification )(int fd, int seconds_remaining, void *arg)

Functions

bool rtems_shell_login_prompt (FILE *in, FILE *out, const char *device, rtems_shell_login_check_t check)
bool rtems_shell_login_check (const char *user, const char *passphrase)
unsigned int rtems_shell_getchar (FILE *in)
rtems_shell_cmd_trtems_shell_lookup_cmd (const char *cmd)
rtems_shell_cmd_trtems_shell_add_cmd_struct (rtems_shell_cmd_t *shell_cmd)
rtems_shell_cmd_trtems_shell_add_cmd (const char *cmd, const char *topic, const char *usage, rtems_shell_command_t command)
rtems_shell_cmd_trtems_shell_alias_cmd (const char *cmd, const char *alias)
int rtems_shell_make_args (char *commandLine, int *argc_p, char **argv_p, int max_args)
int rtems_shell_cat_file (FILE *out, const char *name)
void rtems_shell_write_file (const char *name, const char *content)
int rtems_shell_script_file (int argc, char **argv)
rtems_status_code rtems_shell_init (const char *task_name, size_t task_stacksize, rtems_task_priority task_priority, const char *devname, bool forever, bool wait, rtems_shell_login_check_t login_check)
 Initialise the shell creating tasks to login and run the shell sessions.
rtems_status_code rtems_shell_script (const char *task_name, size_t task_stacksize, rtems_task_priority task_priority, const char *input, const char *output, bool output_append, bool wait, bool echo)
 Run a shell script creating a shell tasks to execute the command under.
bool rtems_shell_main_loop (rtems_shell_env_t *rtems_shell_env)
rtems_shell_env_trtems_shell_get_current_env (void)
void rtems_shell_dup_current_env (rtems_shell_env_t *)
void rtems_shell_get_prompt (rtems_shell_env_t *shell_env, char *prompt, size_t size)
 This method dynamically builds the command line prompt string and places it in prompt.
int rtems_shell_libc_mounter (const char *driver, const char *path, rtems_shell_filesystems_t *fs, rtems_filesystem_options_t options)
 Helper for the mount command.
void rtems_shell_mount_add_fsys (rtems_shell_filesystems_t *fs)
 Add a new file system mount configuration to the mount command.
void rtems_shell_mount_del_fsys (rtems_shell_filesystems_t *fs)
 Delete file system mount configuration from the mount command.
rtems_status_code rtems_shell_wait_for_input (int fd, int timeout_in_seconds, rtems_shell_wait_for_input_notification notification, void *notification_arg)
 Waits for input.
int rtems_shell_main_monitor (int argc, char **argv)

Variables

const rtems_shell_env_t rtems_global_shell_env

Detailed Description

Instantatiate a New Terminal Shell.


Function Documentation

void rtems_shell_get_prompt ( rtems_shell_env_t shell_env,
char *  prompt,
size_t  size 
)

This method dynamically builds the command line prompt string and places it in prompt.

Parameters:
[in]shell_envis the shell execution environment
[in]promptis a pointer to a string buffer area
[in]sizeis length of the prompt buffer area
Returns:
This method fills in the memory pointed to by prompt.
Note:
An application specific implementation can be provided by the user.
rtems_status_code rtems_shell_init ( const char *  task_name,
size_t  task_stacksize,
rtems_task_priority  task_priority,
const char *  devname,
bool  forever,
bool  wait,
rtems_shell_login_check_t  login_check 
)

Initialise the shell creating tasks to login and run the shell sessions.

Parameters:
task_nameName of the shell task.
task_stacksizeThe size of the stack. If 0 the default size is used.
task_priorityThe priority the shell runs at.
foreverRepeat logins.
waitCaller should block until shell exits.
login_checkUser login check function, NULL disables login checks.
int rtems_shell_libc_mounter ( const char *  driver,
const char *  path,
rtems_shell_filesystems_t fs,
rtems_filesystem_options_t  options 
)

Helper for the mount command.

Parameters:
[in]driverThe path to the driver.
[in]pathThe path to mount on.
[in]fsThe file system definition.
[in]optionsSpecial file system options.
void rtems_shell_mount_add_fsys ( rtems_shell_filesystems_t fs)

Add a new file system mount configuration to the mount command.

Parameters:
[in]fsThe file system mount data.
void rtems_shell_mount_del_fsys ( rtems_shell_filesystems_t fs)

Delete file system mount configuration from the mount command.

Parameters:
[in]fsThe file system mount data to remove.
rtems_status_code rtems_shell_script ( const char *  task_name,
size_t  task_stacksize,
rtems_task_priority  task_priority,
const char *  input,
const char *  output,
bool  output_append,
bool  wait,
bool  echo 
)

Run a shell script creating a shell tasks to execute the command under.

Parameters:
task_nameName of the shell task.
task_stacksizeThe size of the stack. If 0 the default size is used.
task_priorityThe priority the shell runs at.
inputThe file of commands. Can be 'stdin' to use stdin.
outputThe output file to write commands to. Can be 'stdout', 'stderr' or '/dev/null'.
output_appendAppend the output to the file or truncate the file. Create if it does not exist.
waitWait for the script to finish.
rtems_status_code rtems_shell_wait_for_input ( int  fd,
int  timeout_in_seconds,
rtems_shell_wait_for_input_notification  notification,
void *  notification_arg 
)

Waits for input.

Return values:
RTEMS_SUCCESSFULInput detected.
RTEMS_TIMEOUTTimeout expired.
RTEMS_UNSATISFIEDCannot change or restore termios attributes.