RTEMS: cpukit/include/rtems/shell.h File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions | Variables
shell.h File Reference

Instantatiate a New Terminal Shell. More...

`#include <sys/types.h>`
`#include <sys/stat.h>`
`#include <rtems.h>`
`#include <stdio.h>`
`#include <termios.h>`
`#include <rtems/fs.h>`
`#include <rtems/libio.h>`
`#include <rtems/chain.h>`

Go to the source code of this file.

## Data Structures
struct | rtems_shell_cmd_tt
struct | rtems_shell_alias_t
struct | rtems_shell_topic_tt
struct | rtems_shell_env_t
struct | rtems_shell_filesystems_tt

## Macros
#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_topic_tt | rtems_shell_topic_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_t * | rtems_shell_lookup_cmd (const char *cmd)
rtems_shell_cmd_t * | rtems_shell_add_cmd_struct (rtems_shell_cmd_t *shell_cmd)
rtems_shell_cmd_t * | rtems_shell_add_cmd (const char *cmd, const char *topic, const char *usage, rtems_shell_command_t command)
rtems_shell_cmd_t * | rtems_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)
rtems_shell_topic_t * | rtems_shell_lookup_topic (const char *topic)
bool | rtems_shell_can_see_cmd (const rtems_shell_cmd_t *shell_cmd)
int | rtems_shell_execute_cmd (const char *cmd, int argc, char *argv[])
void | rtems_shell_init_environment (void)
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)
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)
bool | rtems_shell_main_loop (rtems_shell_env_t *rtems_shell_env)
rtems_shell_env_t * | rtems_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)
int | rtems_shell_libc_mounter (const char *driver, const char *path, rtems_shell_filesystems_t *fs, rtems_filesystem_options_t options)
void | rtems_shell_mount_add_fsys (rtems_shell_filesystems_t *fs)
void | rtems_shell_mount_del_fsys (rtems_shell_filesystems_t *fs)
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.
rtems_status_code | rtems_shell_wait_for_explicit_input (int fd, int timeout_in_seconds, rtems_shell_wait_for_input_notification notification, void *notification_arg, int desired_input)
| Waits for explicit input.
int | rtems_shell_main_monitor (int argc, char **argv)
int | rtems_shell_main_mv (int argc, char *argv[])
int | rtems_shell_main_cp (int argc, char *argv[])
int | rtems_shell_main_rm (int argc, char *argv[])

## Variables
const rtems_shell_env_t | rtems_global_shell_env

## Detailed Description

Instantatiate a New Terminal Shell.

## Function Documentation

## ◆ rtems_shell_get_prompt()

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_env | is the shell execution environment
  [in] | prompt | is a pointer to a string buffer area
  [in] | size | is 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_shell_init()

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_name | Name of the shell task.
  task_stacksize | The size of the stack. If 0 the default size is used.
  task_priority | The priority the shell runs at.
  forever | Repeat logins.
  wait | Caller should block until shell exits.
  login_check | User login check function, NULL disables login checks.

## ◆ rtems_shell_libc_mounter()

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] | driver | The path to the driver.
  [in] | path | The path to mount on.
  [in] | fs | The file system definition.
  [in] | options | Special file system options.

## ◆ rtems_shell_mount_add_fsys()

void rtems_shell_mount_add_fsys | ( | rtems_shell_filesystems_t * | fs | ) |

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

Parameters

  [in] | fs | The file system mount data.

## ◆ rtems_shell_mount_del_fsys()

void rtems_shell_mount_del_fsys | ( | rtems_shell_filesystems_t * | fs | ) |

Delete file system mount configuration from the mount command.

Parameters

  [in] | fs | The file system mount data to remove.

## ◆ rtems_shell_script()

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_name | Name of the shell task.
  task_stacksize | The size of the stack. If 0 the default size is used.
  task_priority | The priority the shell runs at.
  input | The file of commands. Can be 'stdin' to use stdin.
  output | The output file to write commands to. Can be 'stdout', 'stderr' or '/dev/null'.
  output_append | Append the output to the file or truncate the file. Create if it does not exist.
  wait | Wait for the script to finish.

## ◆ rtems_shell_wait_for_explicit_input()

rtems_status_code rtems_shell_wait_for_explicit_input | ( | int | fd,
|  | int | timeout_in_seconds,
|  | rtems_shell_wait_for_input_notification | notification,
|  | void * | notification_arg,
|  | int | desired_input
| ) |  |

Waits for explicit input.

Parameters

  desired_input | An explicit unsigned character to wait for or -1 to accept any input.

Return values

  RTEMS_SUCCESSFUL | Input detected.
  RTEMS_TIMEOUT | Timeout expired.
  RTEMS_UNSATISFIED | Cannot change or restore termios attributes.

## ◆ rtems_shell_wait_for_input()

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_SUCCESSFUL | Input detected.
  RTEMS_TIMEOUT | Timeout expired.
  RTEMS_UNSATISFIED | Cannot change or restore termios attributes.