diff options
author | px4dev <px4@purgatory.org> | 2013-02-06 21:38:33 -0800 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2013-02-06 21:38:33 -0800 |
commit | d573cca61bd3e377a1c03abc36f88c3886b21e59 (patch) | |
tree | c8ffec75806b46658bbe707d16b6eb45008981ca /apps/include | |
parent | 3e5cd26777aa209d6568036d43b33b543a364bee (diff) | |
parent | 049c93446561c6ad3e59183c139f3916230ddee5 (diff) | |
download | px4-firmware-d573cca61bd3e377a1c03abc36f88c3886b21e59.tar.gz px4-firmware-d573cca61bd3e377a1c03abc36f88c3886b21e59.tar.bz2 px4-firmware-d573cca61bd3e377a1c03abc36f88c3886b21e59.zip |
Merge commit '049c93446561c6ad3e59183c139f3916230ddee5' into nuttx-merge-5596
This merges NuttX 6.25 with one post-release bugfix.
Diffstat (limited to 'apps/include')
-rw-r--r-- | apps/include/nsh.h | 71 | ||||
-rw-r--r-- | apps/include/usbmonitor.h | 96 |
2 files changed, 154 insertions, 13 deletions
diff --git a/apps/include/nsh.h b/apps/include/nsh.h index 4b5a3cd31..8e469a555 100644 --- a/apps/include/nsh.h +++ b/apps/include/nsh.h @@ -1,7 +1,7 @@ /**************************************************************************** * apps/include/nsh.h * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <gnutt@nuttx.org> * * Redistribution and use in source and binary forms, with or without @@ -45,6 +45,31 @@ /**************************************************************************** * Pre-Processor Definitions ****************************************************************************/ +/* If a USB device is selected for the NSH console then we need to handle some + * special start-up conditions. + */ + +#undef HAVE_USB_CONSOLE +#if defined(CONFIG_USBDEV) + +/* Check for a PL2303 serial console. Use console device "/dev/console". */ + +# if defined(CONFIG_PL2303) && defined(CONFIG_PL2303_CONSOLE) +# define HAVE_USB_CONSOLE 1 + +/* Check for a CDC/ACM serial console. Use console device "/dev/console". */ + +# elif defined(CONFIG_CDCACM) && defined(CONFIG_CDCACM_CONSOLE) +# define HAVE_USB_CONSOLE 1 + +/* Check for a generic USB console. In this case, the USB console device + * must be provided in CONFIG_NSH_CONDEV. + */ + +# elif defined(CONFIG_NSH_USBCONSOLE) +# define HAVE_USB_CONSOLE 1 +# endif +#endif #if CONFIG_RR_INTERVAL > 0 # define SCHED_NSH SCHED_RR @@ -58,7 +83,8 @@ #ifdef __cplusplus #define EXTERN extern "C" -extern "C" { +extern "C" +{ #else #define EXTERN extern #endif @@ -83,35 +109,54 @@ extern "C" { * ****************************************************************************/ -EXTERN void nsh_initialize(void); +void nsh_initialize(void); /**************************************************************************** * Name: nsh_consolemain * * Description: * This interfaces maybe to called or started with task_start to start a - * single an NSH instance that operates on stdin and stdout (/dev/console). - * This function does not return. + * single an NSH instance that operates on stdin and stdout. This + * function does not return. * + * This function handles generic /dev/console character devices, or + * special USB console devices. The USB console requires some special + * operations to handle the cases where the session is lost when the + * USB device is unplugged and restarted when the USB device is plugged + * in again. + * * Input Parameters: - * Standard task start-up arguements. These are not used. argc may be + * Standard task start-up arguments. These are not used. argc may be * zero and argv may be NULL. * * Returned Values: * This function does not normally return. exit() is usually called to * terminate the NSH session. This function will return in the event of - * an error. In that case, a nonzero value is returned (1). + * an error. In that case, a nonzero value is returned (EXIT_FAILURE=1). * ****************************************************************************/ -EXTERN int nsh_consolemain(int argc, char *argv[]); +int nsh_consolemain(int argc, char *argv[]); -/* nsh_telnetstart() starts a telnet daemon that will allow multiple - * NSH connections via telnet. This function returns immediately after - * the daemon has been started. - */ +/**************************************************************************** + * Name: nsh_telnetstart + * + * Description: + * nsh_telnetstart() starts the Telnet daemon that will allow multiple + * NSH connections via Telnet. This function returns immediately after + * the daemon has been started. + * + * Input Parameters: + * None. All of the properties of the Telnet daemon are controlled by + * NuttX configuration setting. + * + * Returned Values: + * The task ID of the Telnet daemon was successfully started. A negated + * errno value will be returned on failure. + * + ****************************************************************************/ -EXTERN int nsh_telnetstart(void); +int nsh_telnetstart(void); #undef EXTERN #ifdef __cplusplus diff --git a/apps/include/usbmonitor.h b/apps/include/usbmonitor.h new file mode 100644 index 000000000..01fa060b0 --- /dev/null +++ b/apps/include/usbmonitor.h @@ -0,0 +1,96 @@ +/**************************************************************************** + * apps/include/usbmonitor.h + * + * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * 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 NuttX 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_USBMONITOR_H +#define __APPS_INCLUDE_USBMONITOR_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +#ifdef CONFIG_SYSTEM_USBMONITOR + +/**************************************************************************** + * Pre-Processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +/**************************************************************************** + * Name: usbmon_start and usbmon_stop + * + * Start and top the USB monitor daemon. These are normally controlled + * from the USB command line, but the ability to control these + * programmatically is also helpful (for example, so that the daemon is + * running before NSH starts). + * + * Input Parameters: + * Standard task parameters. These can be called or spawned. Since the + * return almost immediately, it is fine to just call the functions. The + * parameters are not used so you can pass 0 and NULL, respectivley; this + * is done this way so that these functions can be NSH builtin + * applications. + * + * Returned values: + * Standard task return values (zero meaning success). + * + **************************************************************************/ + +int usbmonitor_start(int argc, char **argv); +int usbmonitor_stop(int argc, char **argv); + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* CONFIG_SYSTEM_USBMONITOR */ +#endif /* __APPS_INCLUDE_USBMONITOR_H */ |