1570af302Sopenharmony_ci#ifndef _SYSLOG_H
2570af302Sopenharmony_ci#define _SYSLOG_H
3570af302Sopenharmony_ci
4570af302Sopenharmony_ci#ifdef __cplusplus
5570af302Sopenharmony_ciextern "C" {
6570af302Sopenharmony_ci#endif
7570af302Sopenharmony_ci
8570af302Sopenharmony_ci#include <features.h>
9570af302Sopenharmony_ci
10570af302Sopenharmony_ci#define LOG_EMERG   0
11570af302Sopenharmony_ci#define LOG_ALERT   1
12570af302Sopenharmony_ci#define LOG_CRIT    2
13570af302Sopenharmony_ci#define LOG_ERR     3
14570af302Sopenharmony_ci#define LOG_WARNING 4
15570af302Sopenharmony_ci#define LOG_NOTICE  5
16570af302Sopenharmony_ci#define LOG_INFO    6
17570af302Sopenharmony_ci#define LOG_DEBUG   7
18570af302Sopenharmony_ci
19570af302Sopenharmony_ci#define LOG_PRIMASK 7
20570af302Sopenharmony_ci#define LOG_PRI(p) ((p)&LOG_PRIMASK)
21570af302Sopenharmony_ci#define	LOG_MAKEPRI(f, p) (((f)<<3)|(p))
22570af302Sopenharmony_ci
23570af302Sopenharmony_ci#define LOG_MASK(p) (1<<(p))
24570af302Sopenharmony_ci#define LOG_UPTO(p) ((1<<((p)+1))-1)
25570af302Sopenharmony_ci
26570af302Sopenharmony_ci#define LOG_KERN     (0<<3)
27570af302Sopenharmony_ci#define LOG_USER     (1<<3)
28570af302Sopenharmony_ci#define LOG_MAIL     (2<<3)
29570af302Sopenharmony_ci#define LOG_DAEMON   (3<<3)
30570af302Sopenharmony_ci#define LOG_AUTH     (4<<3)
31570af302Sopenharmony_ci#define LOG_SYSLOG   (5<<3)
32570af302Sopenharmony_ci#define LOG_LPR      (6<<3)
33570af302Sopenharmony_ci#define LOG_NEWS     (7<<3)
34570af302Sopenharmony_ci#define LOG_UUCP     (8<<3)
35570af302Sopenharmony_ci#define LOG_CRON     (9<<3)
36570af302Sopenharmony_ci#define	LOG_AUTHPRIV (10<<3)
37570af302Sopenharmony_ci#define	LOG_FTP      (11<<3)
38570af302Sopenharmony_ci
39570af302Sopenharmony_ci#define LOG_LOCAL0   (16<<3)
40570af302Sopenharmony_ci#define LOG_LOCAL1   (17<<3)
41570af302Sopenharmony_ci#define LOG_LOCAL2   (18<<3)
42570af302Sopenharmony_ci#define LOG_LOCAL3   (19<<3)
43570af302Sopenharmony_ci#define LOG_LOCAL4   (20<<3)
44570af302Sopenharmony_ci#define LOG_LOCAL5   (21<<3)
45570af302Sopenharmony_ci#define LOG_LOCAL6   (22<<3)
46570af302Sopenharmony_ci#define LOG_LOCAL7   (23<<3)
47570af302Sopenharmony_ci
48570af302Sopenharmony_ci#define LOG_NFACILITIES 24
49570af302Sopenharmony_ci#define LOG_FACMASK 0x3f8
50570af302Sopenharmony_ci#define LOG_FAC(p) (((p)&LOG_FACMASK)>>3)
51570af302Sopenharmony_ci
52570af302Sopenharmony_ci#define LOG_PID    0x01
53570af302Sopenharmony_ci#define LOG_CONS   0x02
54570af302Sopenharmony_ci#define LOG_ODELAY 0x04
55570af302Sopenharmony_ci#define LOG_NDELAY 0x08
56570af302Sopenharmony_ci#define LOG_NOWAIT 0x10
57570af302Sopenharmony_ci#define LOG_PERROR 0x20
58570af302Sopenharmony_ci
59570af302Sopenharmony_civoid closelog (void);
60570af302Sopenharmony_civoid openlog (const char *, int, int);
61570af302Sopenharmony_ciint setlogmask (int);
62570af302Sopenharmony_civoid syslog (int, const char *, ...);
63570af302Sopenharmony_ci
64570af302Sopenharmony_ci#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
65570af302Sopenharmony_ci#define _PATH_LOG "/dev/log"
66570af302Sopenharmony_ci#define __NEED_va_list
67570af302Sopenharmony_ci#include <bits/alltypes.h>
68570af302Sopenharmony_civoid vsyslog (int, const char *, va_list);
69570af302Sopenharmony_ci#if defined(SYSLOG_NAMES)
70570af302Sopenharmony_ci#define	INTERNAL_NOPRI 0x10
71570af302Sopenharmony_ci#define	INTERNAL_MARK (LOG_NFACILITIES<<3)
72570af302Sopenharmony_citypedef struct {
73570af302Sopenharmony_ci	char *c_name;
74570af302Sopenharmony_ci	int c_val;
75570af302Sopenharmony_ci} CODE;
76570af302Sopenharmony_ci#define prioritynames ((CODE *)(const CODE []){ \
77570af302Sopenharmony_ci	{ "alert", LOG_ALERT }, { "crit", LOG_CRIT }, { "debug", LOG_DEBUG }, \
78570af302Sopenharmony_ci	{ "emerg", LOG_EMERG }, { "err", LOG_ERR }, { "error", LOG_ERR }, \
79570af302Sopenharmony_ci	{ "info", LOG_INFO }, { "none", INTERNAL_NOPRI }, \
80570af302Sopenharmony_ci	{ "notice", LOG_NOTICE }, { "panic", LOG_EMERG }, \
81570af302Sopenharmony_ci	{ "warn", LOG_WARNING }, { "warning", LOG_WARNING }, { 0, -1 } })
82570af302Sopenharmony_ci#define facilitynames ((CODE *)(const CODE []){ \
83570af302Sopenharmony_ci	{ "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, \
84570af302Sopenharmony_ci	{ "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, \
85570af302Sopenharmony_ci	{ "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, \
86570af302Sopenharmony_ci	{ "mark", INTERNAL_MARK }, { "news", LOG_NEWS }, \
87570af302Sopenharmony_ci	{ "security", LOG_AUTH }, { "syslog", LOG_SYSLOG }, \
88570af302Sopenharmony_ci	{ "user", LOG_USER }, { "uucp", LOG_UUCP }, \
89570af302Sopenharmony_ci	{ "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, \
90570af302Sopenharmony_ci	{ "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, \
91570af302Sopenharmony_ci	{ "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, \
92570af302Sopenharmony_ci	{ "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { 0, -1 } })
93570af302Sopenharmony_ci#endif
94570af302Sopenharmony_ci#endif
95570af302Sopenharmony_ci
96570af302Sopenharmony_ci#ifdef __cplusplus
97570af302Sopenharmony_ci}
98570af302Sopenharmony_ci#endif
99570af302Sopenharmony_ci
100570af302Sopenharmony_ci#endif
101