diff options
Diffstat (limited to 'klibc/klibc/syslog.c')
-rw-r--r-- | klibc/klibc/syslog.c | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/klibc/klibc/syslog.c b/klibc/klibc/syslog.c deleted file mode 100644 index 0cd296ab85..0000000000 --- a/klibc/klibc/syslog.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * syslog.c - * - * Issue syslog messages via the kernel printk queue. - */ - -#include <stdio.h> -#include <string.h> -#include <stdarg.h> -#include <syslog.h> -#include <unistd.h> -#include <fcntl.h> - -/* Maximum size for a kernel message */ -#define BUFLEN 1024 - -/* Logging node */ -#define LOGDEV "/dev/kmsg" - -/* Max length of ID string */ -#define MAXID 31 /* MAXID+5 must be < BUFLEN */ - -int __syslog_fd = -1; -static char id[MAXID+1]; -static int syslog_flags = 0; - -void openlog(const char *ident, int option, int facility) -{ - int fd; - - (void)option; (void)facility; /* Unused */ - - if ( __syslog_fd == -1 ) { - __syslog_fd = fd = open(LOGDEV, O_WRONLY); - if ( fd == -1 ) - return; - fcntl(fd, F_SETFD, (long)FD_CLOEXEC); - } - - syslog_flags = option; - - strncpy(id, ident?ident:"", MAXID); -} - -void vsyslog(int prio, const char *format, va_list ap) -{ - char buf[BUFLEN]; - int len; - int fd; - - if ( __syslog_fd == -1 ) - openlog(NULL, 0, 0); - - buf[0] = '<'; - buf[1] = LOG_PRI(prio)+'0'; - buf[2] = '>'; - len = 3; - - if ( syslog_flags & LOG_PID ) - len += sprintf(buf+3, "%s[%u]: ", id, getpid()); - else if ( *id ) - len += sprintf(buf+3, "%s: ", id); - - len += vsnprintf(buf+len, BUFLEN-len, format, ap); - - if ( len > BUFLEN-1 ) len = BUFLEN-1; - if (buf[len-1] != '\n') - buf[len++] = '\n'; - - fd = __syslog_fd; - if ( fd == -1 ) - fd = 2; /* Failed to open log, write to stderr */ - - write(fd, buf, len); - - if ( syslog_flags & LOG_PERROR ) - _fwrite(buf+3, len-3, stderr); -} - -void syslog(int prio, const char *format, ...) -{ - va_list ap; - - va_start(ap, format); - vsyslog(prio, format, ap); - va_end(ap); -} |