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