#ifndef _SYSLOG_H
#define _SYSLOG_H

#ifdef __cplusplus
extern "C" {
#endif

#include <features.h>

#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 7
#define LOG_PRI(p) ((p)&LOG_PRIMASK)
#define LOG_MAKEPRI(f, p) (((f) << 3) | (p))

#define LOG_MASK(p) (1 << (p))
#define LOG_UPTO(p) ((1 << ((p) + 1)) - 1)

#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 0x3f8
#define LOG_FAC(p) (((p)&LOG_FACMASK) >> 3)

#define LOG_PID 0x01
#define LOG_CONS 0x02
#define LOG_ODELAY 0x04
#define LOG_NDELAY 0x08
#define LOG_NOWAIT 0x10
#define LOG_PERROR 0x20

void closelog(void);
void openlog(const char*, int, int);
int setlogmask(int);
void syslog(int, const char*, ...);

#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#define _PATH_LOG "/dev/log"
#define __NEED_va_list
#include <bits/alltypes.h>
void vsyslog(int, const char*, va_list);
#if defined(SYSLOG_NAMES)
#define INTERNAL_NOPRI 0x10
#define INTERNAL_MARK (LOG_NFACILITIES << 3)
typedef struct {
  char* c_name;
  int c_val;
} CODE;
#define prioritynames                              \
  ((CODE*)(const CODE[]){{"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}, \
                         {0, -1}})
#define facilitynames                                \
  ((CODE*)(const CODE[]){{"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},     \
                         {0, -1}})
#endif
#endif

#ifdef __cplusplus
}
#endif

#endif
