diff options
Diffstat (limited to 'services/telnetd/include/rtems')
-rw-r--r-- | services/telnetd/include/rtems/pty.h | 68 | ||||
-rw-r--r-- | services/telnetd/include/rtems/telnetd.h | 110 |
2 files changed, 178 insertions, 0 deletions
diff --git a/services/telnetd/include/rtems/pty.h b/services/telnetd/include/rtems/pty.h new file mode 100644 index 00000000..1d86294c --- /dev/null +++ b/services/telnetd/include/rtems/pty.h @@ -0,0 +1,68 @@ +/* + * /dev/ptyXX (A first version for pseudo-terminals) + * + * Author: Fernando RUIZ CASAS (fernando.ruiz@ctv.es) + * May 2001 + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _RTEMS_PTY_H +#define _RTEMS_PTY_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <rtems.h> + +/* Number of ptys to setup */ +extern size_t rtems_pty_maximum_ptys; + +/* Return the devname for a free pty slot. + * If no slot available (socket>=0) + * then the socket argument is closed + */ +char * rtems_pty_get(int socket); + + +/* OBSOLETE */ +#define get_pty rtems_pty_get + +rtems_device_driver pty_initialize( + rtems_device_major_number major, + rtems_device_minor_number minor, + void *arg); +rtems_device_driver pty_open( + rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg); +rtems_device_driver pty_close( + rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg); +rtems_device_driver pty_read( + rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg); +rtems_device_driver pty_write( + rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg); +rtems_device_driver pty_control( + rtems_device_major_number major, + rtems_device_minor_number minor, + void * arg); + + +#define PTY_DRIVER_TABLE_ENTRY \ + { pty_initialize , pty_open , pty_close , \ + pty_read , pty_write , pty_control } + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/services/telnetd/include/rtems/telnetd.h b/services/telnetd/include/rtems/telnetd.h new file mode 100644 index 00000000..a2ebcb7c --- /dev/null +++ b/services/telnetd/include/rtems/telnetd.h @@ -0,0 +1,110 @@ +/* + * Original Author: Fernando RUIZ CASAS (fernando.ruiz@ctv.es) + * May 2001 + * Reworked by Till Straumann and .h overhauled by Joel Sherrill. + * + * Copyright (c) 2009 embedded brains GmbH and others. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * D-82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifndef _RTEMS_TELNETD_H +#define _RTEMS_TELNETD_H + +#include <rtems.h> +#include <rtems/shell.h> + +#ifdef __cplusplus +extern "C" { +#endif + +bool rtems_telnetd_login_check( + const char *user, + const char *passphrase +); + +/** + * @brief Telnet command type. + */ +typedef void (*rtems_telnetd_command)( + char * /* device name */, + void * /* arg */ +); + +/** + * @brief Telnet configuration structure. + */ +typedef struct { + /** + * @brief Function invoked for each Telnet connection. + * + * The first parameter contains the device name. The second parameter + * contains the argument pointer of this configuration table. + */ + rtems_telnetd_command command; + + /** + * @brief Argument for command function. + */ + void *arg; + + /** + * @brief Task priority. + * + * If this parameter is equal to zero, then the priority of network task is + * used or 100 if this priority is less than two. + */ + rtems_task_priority priority; + + /** + * @brief Task stack size. + */ + size_t stack_size; + + /** + * @brief Login check function. + * + * Method used for login checks. Use @c NULL to disable a login check. + */ + rtems_shell_login_check_t login_check; + + /** + * @brief Keep standard IO of the caller. + * + * Telnet takes over the standard input, output and error associated with + * task, if this parameter is set to @c true. In this case, it will @b not + * listen on any sockets. When this parameter is @c false, Telnet will + * create other tasks for the shell which listen on sockets. + */ + bool keep_stdio; +} rtems_telnetd_config_table; + +/** + * @brief Telnet configuration. + * + * The application must provide this configuration table. It is used by + * rtems_telnetd_initialize() to configure the Telnet subsystem. Do not modify + * the entries after the intialization since it is used internally. + */ +extern rtems_telnetd_config_table rtems_telnetd_config; + +/** + * @brief Initializes the Telnet subsystem. + * + * Uses the application provided @ref rtems_telnetd_config configuration table. + */ +rtems_status_code rtems_telnetd_initialize(void); + +#ifdef __cplusplus +} +#endif + +#endif |