From 54a577d44fc467221d6e7d831bd6f9c1d88849c5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 4 May 2016 13:04:42 +0200 Subject: subr_prf.c: Port to RTEMS --- rtemsbsd/rtems/syslog.c | 125 ++---------------------------------------------- 1 file changed, 4 insertions(+), 121 deletions(-) (limited to 'rtemsbsd/rtems/syslog.c') diff --git a/rtemsbsd/rtems/syslog.c b/rtemsbsd/rtems/syslog.c index d8274e09..76162563 100644 --- a/rtemsbsd/rtems/syslog.c +++ b/rtemsbsd/rtems/syslog.c @@ -7,7 +7,7 @@ */ /* - * Copyright (c) 2014 embedded brains GmbH. All rights reserved. + * Copyright (c) 2014, 2016 embedded brains GmbH. All rights reserved. * * embedded brains GmbH * Dornierstr. 4 @@ -37,46 +37,9 @@ * SUCH DAMAGE. */ -#include -#include - #include -#include -#include -#include -#include - -typedef struct { - int mask; -} rtems_bsd_syslog_context; - -/* FIXME: This should be thread specific */ -static rtems_bsd_syslog_context rtems_bsd_syslog_instance = { - .mask = LOG_UPTO(LOG_DEBUG) -}; - -static const char * const rtems_bsd_syslog_priorities[] = { - [LOG_EMERG] = "emerg", - [LOG_ALERT] = "alert", - [LOG_CRIT] = "crit", - [LOG_ERR] = "err", - [LOG_WARNING] = "warning", - [LOG_NOTICE] = "notice", - [LOG_INFO] = "info", - [LOG_DEBUG] = "debug" -}; - -static rtems_bsd_syslog_context * -rtems_bsd_syslog_get_context(void) -{ - return &rtems_bsd_syslog_instance; -} -static void -rtems_bsd_syslog_format_buffer_overflow(void) -{ - fputs("err: syslog: format buffer overflow\n", stderr); -} +#include void syslog(int priority, const char *format, ...) @@ -91,83 +54,8 @@ syslog(int priority, const char *format, ...) void vsyslog(int priority, const char *format, va_list ap) { - rtems_bsd_syslog_context *ctx = rtems_bsd_syslog_get_context(); - int pri = LOG_PRI(priority); - char fmt[128]; - char buf[128]; - const char *src; - char *dst; - size_t rem; - char *m; - int n; - size_t len; - - if ((LOG_MASK(pri) & ctx->mask) == 0) { - return; - } - - /* Expand the %m in the format string and add a newline character */ - - src = format; - dst = &fmt[0]; - rem = sizeof(fmt) - 2; - - while ((m = strstr(src, "%m")) != NULL) { - size_t c = m - src; - - if (c > rem) { - rtems_bsd_syslog_format_buffer_overflow(); - return; - } - memcpy(dst, src, c); - dst += c; - src += c + 2; - rem -= c; - - n = sniprintf(dst, rem, "%s", strerror(errno)); - if (n > rem || n < 0) { - rtems_bsd_syslog_format_buffer_overflow(); - return; - } - - dst += (size_t) n; - rem -= (size_t) n; - } - - len = strlen(src); - if (len > rem) { - rtems_bsd_syslog_format_buffer_overflow(); - return; - } - - memcpy(dst, src, len); - dst += len; - dst[0] = '\n'; - dst[1] = '\0'; - - /* Print into buffer */ - - dst = &buf[0]; - rem = sizeof(buf) - 1; - - n = sniprintf(dst, rem, "%s: ", rtems_bsd_syslog_priorities[pri]); - if (n <= rem) { - dst += (size_t) n; - rem -= (size_t) n; - } - - n = sniprintf(dst, rem, "%s: ", rtems_bsd_program_get_name()); - if (n <= rem) { - dst += (size_t) n; - rem -= (size_t) n; - } - - vsniprintf(dst, rem, &fmt[0], ap); - - /* Write in one rush */ - - fputs(&buf[0], stderr); + rtems_bsd_vprintf(priority, format, ap); } void @@ -185,10 +73,5 @@ closelog(void) int setlogmask(int mask) { - rtems_bsd_syslog_context *ctx = rtems_bsd_syslog_get_context(); - int cur = ctx->mask; - - ctx->mask = mask & LOG_UPTO(LOG_DEBUG); - - return cur; + /* TODO */ } -- cgit v1.2.3