17 #ifndef __RTEMS_SHELL_H__ 18 #define __RTEMS_SHELL_H__ 20 #include <sys/types.h> 37 #define RTEMS_SHELL_KEYS_EXTENDED (0x8000) 38 #define RTEMS_SHELL_KEYS_NORMAL_MASK (0x00ff) 39 #define RTEMS_SHELL_KEYS_INS (0) 40 #define RTEMS_SHELL_KEYS_DEL (1) 41 #define RTEMS_SHELL_KEYS_UARROW (2) 42 #define RTEMS_SHELL_KEYS_DARROW (3) 43 #define RTEMS_SHELL_KEYS_LARROW (4) 44 #define RTEMS_SHELL_KEYS_RARROW (5) 45 #define RTEMS_SHELL_KEYS_HOME (6) 46 #define RTEMS_SHELL_KEYS_END (7) 47 #define RTEMS_SHELL_KEYS_F1 (8) 48 #define RTEMS_SHELL_KEYS_F2 (9) 49 #define RTEMS_SHELL_KEYS_F3 (10) 50 #define RTEMS_SHELL_KEYS_F4 (11) 51 #define RTEMS_SHELL_KEYS_F5 (12) 52 #define RTEMS_SHELL_KEYS_F6 (13) 53 #define RTEMS_SHELL_KEYS_F7 (14) 54 #define RTEMS_SHELL_KEYS_F8 (15) 55 #define RTEMS_SHELL_KEYS_F9 (16) 56 #define RTEMS_SHELL_KEYS_F10 (17) 58 typedef bool (*rtems_shell_login_check_t)(
63 extern bool rtems_shell_login_prompt(
67 rtems_shell_login_check_t check
70 extern bool rtems_shell_login_check(
72 const char *passphrase
75 typedef int (*rtems_shell_command_t)(
int argc,
char **argv);
84 rtems_shell_command_t command;
109 extern unsigned int rtems_shell_getchar(FILE *in);
121 rtems_shell_command_t command
129 extern int rtems_shell_make_args(
140 extern bool rtems_shell_can_see_cmd(
144 extern int rtems_shell_execute_cmd(
145 const char *cmd,
int argc,
char *argv[]
152 extern void rtems_shell_init_environment(
156 extern int rtems_shell_cat_file(
161 extern void rtems_shell_write_file(
166 extern int rtems_shell_script_file(
184 const char *task_name,
185 size_t task_stacksize,
190 rtems_shell_login_check_t login_check
207 const char *task_name,
208 size_t task_stacksize,
225 const char *taskname;
239 rtems_shell_login_check_t login_check;
254 bool rtems_shell_main_loop(
275 typedef int (*rtems_shell_filesystems_mounter_t)(
287 rtems_shell_filesystems_mounter_t mounter;
338 typedef void (*rtems_shell_wait_for_input_notification)(
340 int seconds_remaining,
353 int timeout_in_seconds,
354 rtems_shell_wait_for_input_notification notification,
355 void *notification_arg
370 int timeout_in_seconds,
371 rtems_shell_wait_for_input_notification notification,
372 void *notification_arg,
376 extern int rtems_shell_main_monitor(
int argc,
char **argv);
382 int rtems_shell_main_mv(
int argc,
char *argv[]);
383 int rtems_shell_main_cp(
int argc,
char *argv[]);
384 int rtems_shell_main_rm(
int argc,
char *argv[]);
uid_t uid
The real and effective UID of the shell task in case no login check is present.
Definition: shell.h:245
int rtems_shell_libc_mounter(const char *driver, const char *path, rtems_shell_filesystems_t *fs, rtems_filesystem_options_t options)
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
rtems_filesystem_options_t
File system options.
Definition: libio.h:1647
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:1250
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:1217
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:89
Definition: rtemscompat1.h:15
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:56
rtems_status_code
Classic API Status.
Definition: status.h:43
void rtems_shell_get_prompt(rtems_shell_env_t *shell_env, char *prompt, size_t size)
Definition: shell_getprompt.c:31
gid_t gid
The real and effective GID of the shell task in case no login check is present.
Definition: shell.h:251
File system operations table.
Definition: libio.h:472
void rtems_shell_mount_add_fsys(rtems_shell_filesystems_t *fs)
rtems_name magic
Definition: shell.h:222
void rtems_shell_mount_del_fsys(rtems_shell_filesystems_t *fs)
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
unsigned size
Definition: tte.h:74
uint32_t rtems_task_priority
Definition: tasks.h:55