summaryrefslogtreecommitdiff
path: root/nuttx/libc
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-10-08 19:08:26 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-10-08 19:08:26 -0600
commited717b37b0161e4989f04ae3f7f75df3f66724b5 (patch)
tree8ee1b4e2de4c1ef933b7b0b84c8d55938f531a53 /nuttx/libc
parentf21b58a5486e00a067ab193427cbc91f9abca17c (diff)
downloadnuttx-ed717b37b0161e4989f04ae3f7f75df3f66724b5.tar.gz
nuttx-ed717b37b0161e4989f04ae3f7f75df3f66724b5.tar.bz2
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.h22
-rw-r--r--nuttx/libc/stdio/lib_libnoflush.c1
-rw-r--r--nuttx/libc/syslog/Make.defs8
-rw-r--r--nuttx/libc/syslog/lib_lowsyslog.c51
-rw-r--r--nuttx/libc/syslog/lib_syslog.c76
-rw-r--r--nuttx/libc/syslog/lib_syslogenable.c73
-rw-r--r--nuttx/libc/syslog/lib_syslogstream.c122
-rw-r--r--nuttx/libc/syslog/syslog.h81
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 */