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)<<3)|(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
101