/**************************************************************************** * apps/include/netutils/telnetd.h * * Copyright (C) 2007, 2011-2012, 2015, 2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * 3. Neither the name Gregory Nutt nor the names of its contributors may be * used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************/ #ifndef __APPS_INCLUDE_NETUTILS_TELNETD_H #define __APPS_INCLUDE_NETUTILS_TELNETD_H /**************************************************************************** * Included Files ****************************************************************************/ #include /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ /* CONFIG_TELNETD_CONSOLE - Use the first Telnet session as the default * console. */ /**************************************************************************** * Public Types ****************************************************************************/ /* An instance of the struct telnetd_config_s structure must be passed to * telnetd_start in order to configure the new Telnet daemon. */ struct telnetd_config_s { /* These fields describe the telnet daemon */ uint8_t d_priority; /* The execution priority of the Telnet daemon task */ size_t d_stacksize; /* The stack size needed by the Telnet daemon task */ /* These fields describe the network connection */ uint16_t d_port; /* The port to listen on (in network byte order) */ sa_family_t d_family; /* Address family */ /* These fields describe the priority of each thread created by the Telnet * daemon. */ uint8_t t_priority; /* The execution priority of the spawned task, */ size_t t_stacksize; /* The stack size needed by the spawned task */ main_t t_entry; /* The entrypoint of the task to spawn when a new * connection is accepted. */ }; /**************************************************************************** * Public Function Prototypes ****************************************************************************/ #ifdef __cplusplus #define EXTERN extern "C" extern "C" { #else #define EXTERN extern #endif /**************************************************************************** * Name: telnetd_start * * Description: * Start the Telnet daemon. * * Parameters: * config A pointer to a configuration structure that characterizes the * Telnet daemon. This configuration structure may be defined * on the caller's stack because it is not retained by the * daemon. * * Return: * The process ID (pid) of the new Telnet daemon is returned on * success; A negated errno is returned if the daemon was not successfully * started. * ****************************************************************************/ int telnetd_start(FAR struct telnetd_config_s *config); #undef EXTERN #ifdef __cplusplus } #endif #endif /* __APPS_INCLUDE_NETUTILS_TELNETD_H */