16#ifndef __RTEMS_SHELL_H__
17#define __RTEMS_SHELL_H__
36#define RTEMS_SHELL_KEYS_EXTENDED (0x8000)
37#define RTEMS_SHELL_KEYS_NORMAL_MASK (0x00ff)
38#define RTEMS_SHELL_KEYS_INS (0)
39#define RTEMS_SHELL_KEYS_DEL (1)
40#define RTEMS_SHELL_KEYS_UARROW (2)
41#define RTEMS_SHELL_KEYS_DARROW (3)
42#define RTEMS_SHELL_KEYS_LARROW (4)
43#define RTEMS_SHELL_KEYS_RARROW (5)
44#define RTEMS_SHELL_KEYS_HOME (6)
45#define RTEMS_SHELL_KEYS_END (7)
46#define RTEMS_SHELL_KEYS_F1 (8)
47#define RTEMS_SHELL_KEYS_F2 (9)
48#define RTEMS_SHELL_KEYS_F3 (10)
49#define RTEMS_SHELL_KEYS_F4 (11)
50#define RTEMS_SHELL_KEYS_F5 (12)
51#define RTEMS_SHELL_KEYS_F6 (13)
52#define RTEMS_SHELL_KEYS_F7 (14)
53#define RTEMS_SHELL_KEYS_F8 (15)
54#define RTEMS_SHELL_KEYS_F9 (16)
55#define RTEMS_SHELL_KEYS_F10 (17)
57typedef bool (*rtems_shell_login_check_t)(
62extern bool rtems_shell_login_prompt(
66 rtems_shell_login_check_t check
69extern bool rtems_shell_login_check(
71 const char *passphrase
74typedef int (*rtems_shell_command_t)(
int argc,
char **argv);
83 rtems_shell_command_t command;
108extern unsigned int rtems_shell_getchar(FILE *in);
120 rtems_shell_command_t command
128extern int rtems_shell_make_args(
139extern bool rtems_shell_can_see_cmd(
143extern int rtems_shell_execute_cmd(
144 const char *cmd,
int argc,
char *argv[]
151extern void rtems_shell_init_environment(
155extern int rtems_shell_cat_file(
160extern void rtems_shell_write_file(
165extern int rtems_shell_script_file(
183 const char *task_name,
184 size_t task_stacksize,
189 rtems_shell_login_check_t login_check
206 const char *task_name,
207 size_t task_stacksize,
224 const char *taskname;
238 rtems_shell_login_check_t login_check;
253bool rtems_shell_main_loop(
279 FILE *line_editor_output
299typedef int (*rtems_shell_filesystems_mounter_t)(
311 rtems_shell_filesystems_mounter_t mounter;
362typedef void (*rtems_shell_wait_for_input_notification)(
364 int seconds_remaining,
377 int timeout_in_seconds,
378 rtems_shell_wait_for_input_notification notification,
379 void *notification_arg
394 int timeout_in_seconds,
395 rtems_shell_wait_for_input_notification notification,
396 void *notification_arg,
400extern int rtems_shell_main_monitor(
int argc,
char **argv);
406int rtems_shell_main_mv(
int argc,
char *argv[]);
407int rtems_shell_main_cp(
int argc,
char *argv[]);
408int rtems_shell_main_rm(
int argc,
char *argv[]);
This header file provides the Chains API.
rtems_filesystem_options_t
File system options.
Definition: libio.h:1666
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
uint32_t rtems_name
This type represents Classic API object names.
Definition: types.h:226
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition: types.h:257
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
This header file defines the RTEMS Classic API.
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.
Definition: shell-wait-for-input.c:83
int rtems_shell_libc_mounter(const char *driver, const char *path, rtems_shell_filesystems_t *fs, rtems_filesystem_options_t options)
bool rtems_shell_run_main_loop(rtems_shell_env_t *shell_env, bool interactive, FILE *line_editor_output)
Runs the shell main loop.
Definition: shell.c:1192
void rtems_shell_mount_add_fsys(rtems_shell_filesystems_t *fs)
void rtems_shell_get_prompt(rtems_shell_env_t *shell_env, char *prompt, size_t size)
Definition: shell_getprompt.c:31
void rtems_shell_mount_del_fsys(rtems_shell_filesystems_t *fs)
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)
Definition: shell.c:1448
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)
Definition: shell.c:1479
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.
Definition: shell-wait-for-input.c:50
This structure represents a chain node.
Definition: chain.h:78
File system operations table.
Definition: libio.h:489
gid_t gid
The real and effective GID of the shell task in case no login check is present.
Definition: shell.h:250
uid_t uid
The real and effective UID of the shell task in case no login check is present.
Definition: shell.h:244
rtems_name magic
Definition: shell.h:221