1#ifndef _SYSLOG_H
  2#define _SYSLOG_H
  3
  4#ifdef __cplusplus
  5extern "C" {
  6#endif
  7
  8#include <features.h>
  9
 10#define LOG_EMERG   0
 11#define LOG_ALERT   1
 12#define LOG_CRIT    2
 13#define LOG_ERR     3
 14#define LOG_WARNING 4
 15#define LOG_NOTICE  5
 16#define LOG_INFO    6
 17#define LOG_DEBUG   7
 18
 19#define LOG_PRIMASK 7
 20#define LOG_PRI(p) ((p)&LOG_PRIMASK)
 21#define	LOG_MAKEPRI(f, p) ((f)|(p))
 22
 23#define LOG_MASK(p) (1<<(p))
 24#define LOG_UPTO(p) ((1<<((p)+1))-1)
 25
 26#define LOG_KERN     (0<<3)
 27#define LOG_USER     (1<<3)
 28#define LOG_MAIL     (2<<3)
 29#define LOG_DAEMON   (3<<3)
 30#define LOG_AUTH     (4<<3)
 31#define LOG_SYSLOG   (5<<3)
 32#define LOG_LPR      (6<<3)
 33#define LOG_NEWS     (7<<3)
 34#define LOG_UUCP     (8<<3)
 35#define LOG_CRON     (9<<3)
 36#define	LOG_AUTHPRIV (10<<3)
 37#define	LOG_FTP      (11<<3)
 38
 39#define LOG_LOCAL0   (16<<3)
 40#define LOG_LOCAL1   (17<<3)
 41#define LOG_LOCAL2   (18<<3)
 42#define LOG_LOCAL3   (19<<3)
 43#define LOG_LOCAL4   (20<<3)
 44#define LOG_LOCAL5   (21<<3)
 45#define LOG_LOCAL6   (22<<3)
 46#define LOG_LOCAL7   (23<<3)
 47
 48#define LOG_NFACILITIES 24
 49#define LOG_FACMASK 0x3f8
 50#define LOG_FAC(p) (((p)&LOG_FACMASK)>>3)
 51
 52#define LOG_PID    0x01
 53#define LOG_CONS   0x02
 54#define LOG_ODELAY 0x04
 55#define LOG_NDELAY 0x08
 56#define LOG_NOWAIT 0x10
 57#define LOG_PERROR 0x20
 58
 59void closelog (void);
 60void openlog (const char *, int, int);
 61int setlogmask (int);
 62void syslog (int, const char *, ...);
 63
 64#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 65#define _PATH_LOG "/dev/log"
 66#define __NEED_va_list
 67#include <bits/alltypes.h>
 68void vsyslog (int, const char *, va_list);
 69#if defined(SYSLOG_NAMES)
 70#define	INTERNAL_NOPRI 0x10
 71#define	INTERNAL_MARK (LOG_NFACILITIES<<3)
 72typedef struct {
 73	char *c_name;
 74	int c_val;
 75} CODE;
 76#define prioritynames ((CODE *)(const CODE []){ \
 77	{ "alert", LOG_ALERT }, { "crit", LOG_CRIT }, { "debug", LOG_DEBUG }, \
 78	{ "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \
 79	{ "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \
 80	{ "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \
 81	{ "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { 0, -1 } })
 82#define facilitynames ((CODE *)(const CODE []){ \
 83	{ "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \
 84	{ "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \
 85	{ "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, \
 86	{ "mark", INTERNAL_MARK }, { "news", LOG_NEWS }, \
 87	{ "security", LOG_AUTH }, { "syslog", LOG_SYSLOG }, \
 88	{ "user", LOG_USER }, { "uucp", LOG_UUCP }, \
 89	{ "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \
 90	{ "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \
 91	{ "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \
 92	{ "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { 0, -1 } })
 93#endif
 94#endif
 95
 96#ifdef __cplusplus
 97}
 98#endif
 99
100#endif