diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-10-08 19:08:26 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-10-08 19:08:26 -0600 |
commit | ed717b37b0161e4989f04ae3f7f75df3f66724b5 (patch) | |
tree | 8ee1b4e2de4c1ef933b7b0b84c8d55938f531a53 /nuttx/libc | |
parent | f21b58a5486e00a067ab193427cbc91f9abca17c (diff) | |
download | px4-nuttx-ed717b37b0161e4989f04ae3f7f75df3f66724b5.tar.gz px4-nuttx-ed717b37b0161e4989f04ae3f7f75df3f66724b5.tar.bz2 px4-nuttx-ed717b37b0161e4989f04ae3f7f75df3f66724b5.zip |
Implement setlogmask(); move some syslog logic from libc/syslog to fs/syslog
Diffstat (limited to 'nuttx/libc')
-rw-r--r-- | nuttx/libc/lib_internal.h | 22 | ||||
-rw-r--r-- | nuttx/libc/stdio/lib_libnoflush.c | 1 | ||||
-rw-r--r-- | nuttx/libc/syslog/Make.defs | 8 | ||||
-rw-r--r-- | nuttx/libc/syslog/lib_lowsyslog.c | 51 | ||||
-rw-r--r-- | nuttx/libc/syslog/lib_syslog.c | 76 | ||||
-rw-r--r-- | nuttx/libc/syslog/lib_syslogenable.c | 73 | ||||
-rw-r--r-- | nuttx/libc/syslog/lib_syslogstream.c | 122 | ||||
-rw-r--r-- | nuttx/libc/syslog/syslog.h | 81 |
8 files changed, 25 insertions, 409 deletions
diff --git a/nuttx/libc/lib_internal.h b/nuttx/libc/lib_internal.h index b6518da6d..a9f8a3fbc 100644 --- a/nuttx/libc/lib_internal.h +++ b/nuttx/libc/lib_internal.h @@ -148,28 +148,6 @@ void stream_semtake(FAR struct streamlist *list); void stream_semgive(FAR struct streamlist *list); #endif -/* Defined in lib_libnoflush.c */ - -#ifdef CONFIG_STDIO_LINEBUFFER -int lib_noflush(FAR struct lib_outstream_s *this); -#endif - -/* Defined in lib_libsnoflush.c */ - -#ifdef CONFIG_STDIO_LINEBUFFER -int lib_snoflush(FAR struct lib_sostream_s *this); -#endif - -/* Defined in lib_libsprintf.c */ - -int lib_sprintf(FAR struct lib_outstream_s *obj, - const char *fmt, ...); - -/* Defined lib_libvsprintf.c */ - -int lib_vsprintf(FAR struct lib_outstream_s *obj, - FAR const char *src, va_list ap); - /* Defined in lib_dtoa.c */ #ifdef CONFIG_LIBC_FLOATINGPOINT diff --git a/nuttx/libc/stdio/lib_libnoflush.c b/nuttx/libc/stdio/lib_libnoflush.c index 076f8a17e..eafe63977 100644 --- a/nuttx/libc/stdio/lib_libnoflush.c +++ b/nuttx/libc/stdio/lib_libnoflush.c @@ -45,6 +45,7 @@ #include <errno.h> #include <nuttx/fs/fs.h> +#include <nuttx/streams.h> #include "lib_internal.h" diff --git a/nuttx/libc/syslog/Make.defs b/nuttx/libc/syslog/Make.defs index fe6e620ed..9df5c3228 100644 --- a/nuttx/libc/syslog/Make.defs +++ b/nuttx/libc/syslog/Make.defs @@ -37,14 +37,6 @@ CSRCS += lib_syslog.c lib_lowsyslog.c -ifeq ($(CONFIG_SYSLOG),y) -CSRCS += lib_syslogstream.c -endif - -ifeq ($(CONFIG_SYSLOG_ENABLE),y) -CSRCS += lib_syslogenable.c -endif - # Add the syslog directory to the build DEPPATH += --dep-path syslog diff --git a/nuttx/libc/syslog/lib_lowsyslog.c b/nuttx/libc/syslog/lib_lowsyslog.c index f7287c517..53de47aba 100644 --- a/nuttx/libc/syslog/lib_lowsyslog.c +++ b/nuttx/libc/syslog/lib_lowsyslog.c @@ -39,14 +39,10 @@ #include <nuttx/config.h> -#include <stdio.h> -#include <debug.h> +#include <stdarg.h> +#include <syslog.h> -#include "lib_internal.h" - -/* This interface can only be used from within the kernel */ - -#if !defined(CONFIG_BUILD_PROTECTED) || defined(__KERNEL__) +#if defined(CONFIG_ARCH_LOWPUTC) || defined(CONFIG_SYSLOG) /**************************************************************************** * Pre-processor Definitions @@ -77,33 +73,17 @@ ****************************************************************************/ /**************************************************************************** - * Private Variables + * Private Data ****************************************************************************/ /**************************************************************************** - * Public Functions + * Private Functions ****************************************************************************/ /**************************************************************************** - * Name: lowvsyslog + * Public Functions ****************************************************************************/ -#if defined(CONFIG_ARCH_LOWPUTC) || defined(CONFIG_SYSLOG) - -int lowvsyslog(int priority, FAR const char *fmt, va_list ap) -{ - struct lib_outstream_s stream; - - /* Wrap the stdout in a stream object and let lib_vsprintf do the work. */ - -#ifdef CONFIG_SYSLOG - lib_syslogstream((FAR struct lib_outstream_s *)&stream); -#else - lib_lowoutstream((FAR struct lib_outstream_s *)&stream); -#endif - return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap); -} - /**************************************************************************** * Name: lowsyslog ****************************************************************************/ @@ -111,20 +91,15 @@ int lowvsyslog(int priority, FAR const char *fmt, va_list ap) int lowsyslog(int priority, FAR const char *fmt, ...) { va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, fmt); - ret = lowvsyslog(priority, fmt, ap); - va_end(ap); - } + int ret; + + /* Let lowvsyslog do the work */ + + va_start(ap, fmt); + ret = lowvsyslog(priority, fmt, ap); + va_end(ap); return ret; } #endif /* CONFIG_ARCH_LOWPUTC || CONFIG_SYSLOG */ -#endif /* __KERNEL__ */ diff --git a/nuttx/libc/syslog/lib_syslog.c b/nuttx/libc/syslog/lib_syslog.c index 21993ecc4..16655a28c 100644 --- a/nuttx/libc/syslog/lib_syslog.c +++ b/nuttx/libc/syslog/lib_syslog.c @@ -39,23 +39,13 @@ #include <nuttx/config.h> -#include <stdio.h> +#include <stdarg.h> #include <syslog.h> -#include "lib_internal.h" -#include "syslog/syslog.h" - /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -/* Some output destinations are only available from within the kernel */ - -#if defined(CONFIG_BUILD_PROTECTED) && !defined(__KERNEL__) -# undef CONFIG_SYSLOG -# undef CONFIG_ARCH_LOWPUTC -#endif - /**************************************************************************** * Private Type Declarations ****************************************************************************/ @@ -81,57 +71,17 @@ ****************************************************************************/ /**************************************************************************** - * Private Variables + * Private Data ****************************************************************************/ /**************************************************************************** - * Public Functions + * Private Functions ****************************************************************************/ /**************************************************************************** - * Name: vsyslog + * Public Functions ****************************************************************************/ -int vsyslog(int priority, FAR const char *fmt, va_list ap) -{ -#if defined(CONFIG_SYSLOG) - - struct lib_outstream_s stream; - - /* Wrap the low-level output in a stream object and let lib_vsprintf - * do the work. - */ - - lib_syslogstream((FAR struct lib_outstream_s *)&stream); - return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap); - -#elif CONFIG_NFILE_DESCRIPTORS > 0 - - struct lib_rawoutstream_s rawoutstream; - - /* Wrap the stdout in a stream object and let lib_vsprintf - * do the work. - */ - - lib_rawoutstream(&rawoutstream, 1); - return lib_vsprintf(&rawoutstream.public, fmt, ap); - -#elif defined(CONFIG_ARCH_LOWPUTC) - - struct lib_outstream_s stream; - - /* Wrap the low-level output in a stream object and let lib_vsprintf - * do the work. - */ - - lib_lowoutstream((FAR struct lib_outstream_s *)&stream); - return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap); - -#else - return 0; -#endif -} - /**************************************************************************** * Name: syslog ****************************************************************************/ @@ -139,17 +89,13 @@ int vsyslog(int priority, FAR const char *fmt, va_list ap) int syslog(int priority, FAR const char *fmt, ...) { va_list ap; - int ret; - -#ifdef CONFIG_SYSLOG_ENABLE - ret = 0; - if (g_syslogenable) -#endif - { - va_start(ap, fmt); - ret = vsyslog(priority, fmt, ap); - va_end(ap); - } + int ret; + + /* Let vsyslog do the work */ + + va_start(ap, fmt); + ret = vsyslog(priority, fmt, ap); + va_end(ap); return ret; } diff --git a/nuttx/libc/syslog/lib_syslogenable.c b/nuttx/libc/syslog/lib_syslogenable.c deleted file mode 100644 index adba5b708..000000000 --- a/nuttx/libc/syslog/lib_syslogenable.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * libc/syslog/lib_syslogenable.c - * - * Copyright (C) 2007-2009, 2011-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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdbool.h> - -#include "lib_internal.h" - -#ifdef CONFIG_SYSLOG_ENABLE - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/* Debug output is initially disabled */ - -bool g_syslogenable; - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: syslog_enable - * - * Description: - * Enable or disable debug output. - * - ****************************************************************************/ - -void syslog_enable(bool enable) -{ - g_syslogenable = enable; -} - -#endif /* CONFIG_SYSLOG_ENABLE */ diff --git a/nuttx/libc/syslog/lib_syslogstream.c b/nuttx/libc/syslog/lib_syslogstream.c deleted file mode 100644 index 7d485e74c..000000000 --- a/nuttx/libc/syslog/lib_syslogstream.c +++ /dev/null @@ -1,122 +0,0 @@ -/**************************************************************************** - * libc/syslog/lib_syslogstream.c - * - * 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. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <unistd.h> -#include <assert.h> -#include <errno.h> - -#include <nuttx/syslog/syslog.h> - -#include "lib_internal.h" -#include "syslog/syslog.h" - -#ifdef CONFIG_SYSLOG - -/**************************************************************************** - * Pre-processor definition - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: syslogstream_putc - ****************************************************************************/ - -static void syslogstream_putc(FAR struct lib_outstream_s *this, int ch) -{ - int ret; - - /* Try writing until the write was successful or until an irrecoverable - * error occurs. - */ - - do - { - /* Write the character to the supported logging device. On failure, - * syslog_putc returns EOF with the errno value set; - */ - - ret = syslog_putc(ch); - if (ret != EOF) - { - this->nput++; - return; - } - - /* The special errno value -EINTR means that syslog_putc() was - * awakened by a signal. This is not a real error and must be - * ignored in this context. - */ - } - while (errno == -EINTR); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lib_syslogstream - * - * Description: - * Initializes a stream for use with the configured syslog interface. - * - * Input parameters: - * lowoutstream - User allocated, uninitialized instance of struct - * lib_lowoutstream_s to be initialized. - * - * Returned Value: - * None (User allocated instance initialized). - * - ****************************************************************************/ - -void lib_syslogstream(FAR struct lib_outstream_s *stream) -{ - stream->put = syslogstream_putc; -#ifdef CONFIG_STDIO_LINEBUFFER - stream->flush = lib_noflush; -#endif - stream->nput = 0; -} - -#endif /* CONFIG_SYSLOG */ diff --git a/nuttx/libc/syslog/syslog.h b/nuttx/libc/syslog/syslog.h deleted file mode 100644 index 6f9cb5ffa..000000000 --- a/nuttx/libc/syslog/syslog.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** - * libc/syslog/syslog.h - * - * Copyright (C) 2014 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 __LIBC_SYSLOG_SYSLOG_H -#define __LIBC_SYSLOG_SYSLOG_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Public Types - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -#undef EXTERN -#if defined(__cplusplus) -#define EXTERN extern "C" -extern "C" -{ -#else -#define EXTERN extern -#endif - -/* Debug output is initially disabled */ - -#ifdef CONFIG_SYSLOG_ENABLE -EXTERN bool g_syslogenable; -#endif - -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ - -#undef EXTERN -#if defined(__cplusplus) -} -#endif - -#endif /* __LIBC_SYSLOG_SYSLOG_H */ |