diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-08-02 00:42:46 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-08-02 00:42:46 +0000 |
commit | 6913926a9621d7aa92c89a44d7946290d299dcde (patch) | |
tree | f5f5fb874369d5379c1bdd728e0789c499e7ce81 /nuttx/include | |
parent | 20324504d5997b2ddad85ec3bfa91544c09edd2a (diff) | |
download | px4-firmware-6913926a9621d7aa92c89a44d7946290d299dcde.tar.gz px4-firmware-6913926a9621d7aa92c89a44d7946290d299dcde.tar.bz2 px4-firmware-6913926a9621d7aa92c89a44d7946290d299dcde.zip |
Move RAMLOG driver to drivers/syslog; Add ability to output debug information to any character device or file
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4996 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/include')
-rw-r--r-- | nuttx/include/nuttx/ramlog.h | 26 | ||||
-rw-r--r-- | nuttx/include/nuttx/syslog.h | 131 |
2 files changed, 138 insertions, 19 deletions
diff --git a/nuttx/include/nuttx/ramlog.h b/nuttx/include/nuttx/ramlog.h index c2c75e067..d5a37ba30 100644 --- a/nuttx/include/nuttx/ramlog.h +++ b/nuttx/include/nuttx/ramlog.h @@ -54,6 +54,7 @@ ****************************************************************************/ #include <nuttx/config.h> +#include <nuttx/syslog.h> #ifdef CONFIG_RAMLOG @@ -90,6 +91,10 @@ # undef CONFIG_RAMLOG_SYSLOG #endif +#if defined(CONFIG_RAMLOG_SYSLOG) && !defined(CONFIG_SYSLOG_DEVPATH) +# define CONFIG_SYSLOG_DEVPATH "/dev/ramlog" +#endif + #ifndef CONFIG_RAMLOG_NPOLLWAITERS # define CONFIG_RAMLOG_NPOLLWAITERS 4 #endif @@ -167,7 +172,7 @@ EXTERN int ramlog_register(FAR const char *devpath, FAR char *buffer, * Mostly likely this path will be /dev/console. * * If CONFIG_RAMLOG_SYSLOG is also defined, then the same RAM logging - * device is also registered at /dev/syslog + * device is also registered at CONFIG_SYSLOG_DEVPATH * ****************************************************************************/ @@ -180,7 +185,7 @@ EXTERN int ramlog_consoleinit(void); * * Description: * Create the RAM logging device and register it at the specified path. - * Mostly likely this path will be /dev/syslog + * Mostly likely this path will be CONFIG_SYSLOG_DEVPATH * * If CONFIG_RAMLOG_CONSOLE is also defined, then this functionality is * performed when ramlog_consoleinit() is called. @@ -191,23 +196,6 @@ EXTERN int ramlog_consoleinit(void); EXTERN int ramlog_sysloginit(void); #endif -/**************************************************************************** - * Name: ramlog - * - * Description: - * This is the low-level system logging interface. The debugging/syslogging - * interfaces are lib_rawprintf() and lib_lowprinf(). The difference is - * the lib_rawprintf() writes to fd=1 (stdout) and lib_lowprintf() uses - * a lower level interface that works from interrupt handlers. This - * function is a a low-level interface used to implement lib_lowprintf() - * when CONFIG_RAMLOG_SYSLOG=y and CONFIG_SYSLOG=ramlog - * - ****************************************************************************/ - -#if defined(CONFIG_RAMLOG_CONSOLE) || defined(CONFIG_RAMLOG_SYSLOG) -EXTERN int ramlog_putc(int ch); -#endif - #undef EXTERN #ifdef __cplusplus } diff --git a/nuttx/include/nuttx/syslog.h b/nuttx/include/nuttx/syslog.h new file mode 100644 index 000000000..73aa3c553 --- /dev/null +++ b/nuttx/include/nuttx/syslog.h @@ -0,0 +1,131 @@ +/**************************************************************************** + * include/nuttx/syslog.h + * The NuttX SYSLOGing interface + * + * Copyright (C) 2012 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 __INCLUDE_NUTTX_SYSLOG_H +#define __INCLUDE_NUTTX_SYSLOG_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +/**************************************************************************** + * Pre-Processor Definitions + ****************************************************************************/ +/* Configuration ************************************************************/ +/* CONFIG_SYSLOG - Enables generic system logging features. + * CONFIG_SYSLOG_DEVPATH - The full path to the system logging device + * + * In addition, some SYSLOG device must also be enabled that will provide + * the syslog_putc() function. As of this writing, there are two SYSLOG + * devices avaiable: + * + * 1. A RAM SYSLOGing device that will log data into a circular buffer + * that can be dumped using the NSH dmesg command. This device is + * described in the include/nuttx/ramlog.h header file. + * + * 2. And a generic character device that may be used as the SYSLOG. The + * generic device interfaces are described in this file. + * + * CONFIG_SYSLOG_CHAR - Enable the generic character device for the SYSLOG. + * The full path to the SYSLOG device is provided by CONFIG_SYSLOG_DEVPATH. + * A valid character device must exist at this path. It will by opened + * by syslog_initialize. + * + * NOTE: No more than one SYSLOG device should be configured. + */ + +#ifndef CONFIG_SYSLOG +# undef CONFIG_SYSLOG_CHAR +#endif + +#if defined(CONFIG_SYSLOG_CHAR) && !defined(CONFIG_SYSLOG_DEVPATH) +# define CONFIG_SYSLOG_DEVPATH "/dev/ttyS1" +#endif + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#ifndef __ASSEMBLY__ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" { +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ +/**************************************************************************** + * Name: syslog_initialize + * + * Description: + * Initialize to use the character device at CONFIG_SYSLOG_DEVPATH as the + * SYSLOG. + * + ****************************************************************************/ + +#ifdef CONFIG_SYSLOG_CHAR +EXTERN int syslog_initialize(void); +#endif + +/**************************************************************************** + * Name: syslog_putc + * + * Description: + * This is the low-level system logging interface. The debugging/syslogging + * interfaces are lib_rawprintf() and lib_lowprinf(). The difference is + * the lib_rawprintf() writes to fd=1 (stdout) and lib_lowprintf() uses + * a lower level interface that works from interrupt handlers. This + * function is a a low-level interface used to implement lib_lowprintf(). + * + ****************************************************************************/ + +#ifdef CONFIG_SYSLOG +EXTERN int syslog_putc(int ch); +#endif + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __INCLUDE_NUTTX_SYSLOG_H */ |