#ifndef _SYS_SYSLOG_H_
#define _SYS_SYSLOG_H_
#include <sys/cdefs.h>
#include <sys/featuretest.h>
#include <sys/ansi.h>
#include <sys/stdarg.h>
#define _PATH_LOG "/var/run/log"
#define LOG_EMERG 0
#define LOG_ALERT 1
#define LOG_CRIT 2
#define LOG_ERR 3
#define LOG_WARNING 4
#define LOG_NOTICE 5
#define LOG_INFO 6
#define LOG_DEBUG 7
#define LOG_PRIMASK 0x07
#define LOG_PRI(p) ((p) & LOG_PRIMASK)
#ifdef SYSLOG_NAMES
#define INTERNAL_NOPRI 0x10
#define INTERNAL_MARK (LOG_NFACILITIES<<3)
typedef struct _code {
const char *c_name;
int c_val;
} CODE;
CODE prioritynames[] = {
{ "alert", LOG_ALERT },
{ "crit", LOG_CRIT },
{ "debug", LOG_DEBUG },
{ "emerg", LOG_EMERG },
{ "err", LOG_ERR },
{ "error", LOG_ERR },
{ "info", LOG_INFO },
{ "none", INTERNAL_NOPRI },
{ "notice", LOG_NOTICE },
{ "panic", LOG_EMERG },
{ "warn", LOG_WARNING },
{ "warning", LOG_WARNING },
{ NULL, -1 }
};
#endif
#define LOG_KERN (0<<3)
#define LOG_USER (1<<3)
#define LOG_MAIL (2<<3)
#define LOG_DAEMON (3<<3)
#define LOG_AUTH (4<<3)
#define LOG_SYSLOG (5<<3)
#define LOG_LPR (6<<3)
#define LOG_NEWS (7<<3)
#define LOG_UUCP (8<<3)
#define LOG_CRON (9<<3)
#define LOG_AUTHPRIV (10<<3)
#define LOG_FTP (11<<3)
#define LOG_LOCAL0 (16<<3)
#define LOG_LOCAL1 (17<<3)
#define LOG_LOCAL2 (18<<3)
#define LOG_LOCAL3 (19<<3)
#define LOG_LOCAL4 (20<<3)
#define LOG_LOCAL5 (21<<3)
#define LOG_LOCAL6 (22<<3)
#define LOG_LOCAL7 (23<<3)
#define LOG_NFACILITIES 24
#define LOG_FACMASK 0x03f8
#define LOG_FAC(p) (((p) & LOG_FACMASK) >> 3)
#ifdef SYSLOG_NAMES
CODE facilitynames[] = {
{ "auth", LOG_AUTH },
{ "authpriv", LOG_AUTHPRIV },
{ "cron", LOG_CRON },
{ "daemon", LOG_DAEMON },
{ "ftp", LOG_FTP },
{ "kern", LOG_KERN },
{ "lpr", LOG_LPR },
{ "mail", LOG_MAIL },
{ "mark", INTERNAL_MARK },
{ "news", LOG_NEWS },
{ "security", LOG_AUTH },
{ "syslog", LOG_SYSLOG },
{ "user", LOG_USER },
{ "uucp", LOG_UUCP },
{ "local0", LOG_LOCAL0 },
{ "local1", LOG_LOCAL1 },
{ "local2", LOG_LOCAL2 },
{ "local3", LOG_LOCAL3 },
{ "local4", LOG_LOCAL4 },
{ "local5", LOG_LOCAL5 },
{ "local6", LOG_LOCAL6 },
{ "local7", LOG_LOCAL7 },
{ NULL, -1 }
};
#endif
#ifdef _KERNEL
#define LOG_PRINTF -1
#endif
#define LOG_MASK(pri) (1 << (pri))
#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1)
#define LOG_PID 0x01
#define LOG_CONS 0x02
#define LOG_ODELAY 0x04
#define LOG_NDELAY 0x08
#define LOG_NOWAIT 0x10
#define LOG_PERROR 0x20
#define LOG_PTRIM 0x40
#define LOG_NLOG 0x80
#ifndef _KERNEL
struct syslog_data {
int log_version;
int log_file;
int log_connected;
int log_opened;
int log_stat;
const char *log_tag;
char log_hostname[256];
int log_fac;
int log_mask;
};
#define SYSLOG_DATA_INIT { \
.log_version = 1, \
.log_file = -1, \
.log_connected = 0, \
.log_opened = 0, \
.log_stat = 0, \
.log_tag = 0, \
.log_hostname = { '\0' }, \
.log_fac = LOG_USER, \
.log_mask = 0xff, \
}
__BEGIN_DECLS
void closelog(void);
void openlog(const char *, int, int);
int setlogmask(int);
void syslog(int, const char *, ...) __sysloglike(2, 3);
#if defined(_NETBSD_SOURCE)
void vsyslog(int, const char *, __va_list) __sysloglike(2, 0);
#ifndef __LIBC12_SOURCE__
void closelog_r(struct syslog_data *) __RENAME(__closelog_r60);
void openlog_r(const char *, int, int, struct syslog_data *)
__RENAME(__openlog_r60);
int setlogmask_r(int, struct syslog_data *) __RENAME(__setlogmask_r60);
void syslog_r(int, struct syslog_data *, const char *, ...)
__RENAME(__syslog_r60) __sysloglike(3, 4);
void vsyslog_r(int, struct syslog_data *, const char *, __va_list)
__RENAME(__vsyslog_r60) __sysloglike(3, 0);
void syslogp_r(int, struct syslog_data *, const char *, const char *,
const char *, ...) __RENAME(__syslogp_r60) __sysloglike(5, 6);
void vsyslogp_r(int, struct syslog_data *, const char *, const char *,
const char *, __va_list) __RENAME(__vsyslogp_r60) __sysloglike(5, 0);
void syslog_ss(int, struct syslog_data *, const char *, ...)
__RENAME(__syslog_ss60) __sysloglike(3, 4);
void vsyslog_ss(int, struct syslog_data *, const char *, va_list)
__RENAME(__vsyslog_ss60) __sysloglike(3, 0);
void syslogp_ss(int, struct syslog_data *, const char *, const char *,
const char *, ...) __RENAME(__syslogp_ss60) __sysloglike(5, 0);
void vsyslogp_ss(int, struct syslog_data *, const char *, const char *,
const char *, va_list) __RENAME(__vsyslogp_ss60) __sysloglike(5, 0);
#endif
void syslogp(int, const char *, const char *, const char *, ...)
__sysloglike(4, 5);
void vsyslogp(int, const char *, const char *, const char *, __va_list)
__sysloglike(4, 0);
#endif
__END_DECLS
#else
void logpri(int);
void log(int, const char *, ...) __printflike(2, 3);
void vlog(int, const char *, __va_list) __printflike(2, 0);
void addlog(const char *, ...) __printflike(1, 2);
void logwakeup(void);
#endif
#endif