xref: /freebsd/contrib/ntp/include/ntp_syslog.h (revision 224ba2bd)
1c0b746e5SOllivier Robert /*
2c0b746e5SOllivier Robert  * A hack for platforms which require specially built syslog facilities
3c0b746e5SOllivier Robert  */
4c0b746e5SOllivier Robert 
5c0b746e5SOllivier Robert #ifndef NTP_SYSLOG_H
6c0b746e5SOllivier Robert #define NTP_SYSLOG_H
7c0b746e5SOllivier Robert 
8c0b746e5SOllivier Robert #include <ntp_types.h>		/* u_int32 type */
9c0b746e5SOllivier Robert 
10c0b746e5SOllivier Robert #ifdef VMS
11c0b746e5SOllivier Robert extern void msyslog();
12c0b746e5SOllivier Robert extern void mvsyslog();
13c0b746e5SOllivier Robert #else
14c0b746e5SOllivier Robert # ifndef SYS_VXWORKS
15c0b746e5SOllivier Robert #  include <syslog.h>
16c0b746e5SOllivier Robert # endif
17c0b746e5SOllivier Robert #endif /* VMS */
18c0b746e5SOllivier Robert #include <stdio.h>
19c0b746e5SOllivier Robert 
20c0b746e5SOllivier Robert extern int	syslogit;
21c0b746e5SOllivier Robert extern int	msyslog_term;	/* duplicate to stdout/err */
22c0b746e5SOllivier Robert extern int	msyslog_term_pid;
23c0b746e5SOllivier Robert extern int	msyslog_include_timestamp;
24c0b746e5SOllivier Robert extern FILE *	syslog_file;	/* if syslogit is FALSE, log to
25c0b746e5SOllivier Robert 				   this file and not syslog */
26c0b746e5SOllivier Robert extern char *	syslog_fname;
27c0b746e5SOllivier Robert extern char *	syslog_abs_fname;
28c0b746e5SOllivier Robert 
29c0b746e5SOllivier Robert #if defined(VMS) || defined (SYS_VXWORKS)
30c0b746e5SOllivier Robert #define	LOG_EMERG	0	/* system is unusable */
31c0b746e5SOllivier Robert #define	LOG_ALERT	1	/* action must be taken immediately */
32c0b746e5SOllivier Robert #define	LOG_CRIT	2	/* critical conditions */
33c0b746e5SOllivier Robert #define	LOG_ERR		3	/* error conditions */
34c0b746e5SOllivier Robert #define	LOG_WARNING	4	/* warning conditions */
35c0b746e5SOllivier Robert #define	LOG_NOTICE	5	/* normal but signification condition */
36c0b746e5SOllivier Robert #define	LOG_INFO	6	/* informational */
37c0b746e5SOllivier Robert #define	LOG_DEBUG	7	/* debug-level messages */
38c0b746e5SOllivier Robert #endif /* VMS || VXWORKS */
39c0b746e5SOllivier Robert 
40c0b746e5SOllivier Robert /*
41c0b746e5SOllivier Robert  * syslog output control
42c0b746e5SOllivier Robert  */
43c0b746e5SOllivier Robert #define NLOG_INFO		0x00000001
44c0b746e5SOllivier Robert #define NLOG_EVENT		0x00000002
45c0b746e5SOllivier Robert #define NLOG_STATUS		0x00000004
46c0b746e5SOllivier Robert #define NLOG_STATIST		0x00000008
47c0b746e5SOllivier Robert 
48c0b746e5SOllivier Robert #define NLOG_OSYS			 0 /* offset for system flags */
49c0b746e5SOllivier Robert #define NLOG_SYSMASK		0x0000000F /* system log events */
50c0b746e5SOllivier Robert #define NLOG_SYSINFO		0x00000001 /* system info log events */
51c0b746e5SOllivier Robert #define NLOG_SYSEVENT		0x00000002 /* system events */
52c0b746e5SOllivier Robert #define NLOG_SYSSTATUS		0x00000004 /* system status (sync/unsync) */
53c0b746e5SOllivier Robert #define NLOG_SYSSTATIST		0x00000008 /* system statistics output */
54c0b746e5SOllivier Robert 
55c0b746e5SOllivier Robert #define NLOG_OPEER			 4 /* offset for peer flags */
56c0b746e5SOllivier Robert #define NLOG_PEERMASK		0x000000F0 /* peer log events */
57c0b746e5SOllivier Robert #define NLOG_PEERINFO		0x00000010 /* peer info log events */
58c0b746e5SOllivier Robert #define NLOG_PEEREVENT		0x00000020 /* peer events */
59c0b746e5SOllivier Robert #define NLOG_PEERSTATUS		0x00000040 /* peer status (sync/unsync) */
60c0b746e5SOllivier Robert #define NLOG_PEERSTATIST	0x00000080 /* peer statistics output */
61c0b746e5SOllivier Robert 
62c0b746e5SOllivier Robert #define NLOG_OCLOCK			 8 /* offset for clock flags */
63c0b746e5SOllivier Robert #define NLOG_CLOCKMASK		0x00000F00 /* clock log events */
64c0b746e5SOllivier Robert #define NLOG_CLOCKINFO		0x00000100 /* clock info log events */
65c0b746e5SOllivier Robert #define NLOG_CLOCKEVENT		0x00000200 /* clock events */
66c0b746e5SOllivier Robert #define NLOG_CLOCKSTATUS	0x00000400 /* clock status (sync/unsync) */
67c0b746e5SOllivier Robert #define NLOG_CLOCKSTATIST	0x00000800 /* clock statistics output */
68c0b746e5SOllivier Robert 
69c0b746e5SOllivier Robert #define NLOG_OSYNC			12 /* offset for sync flags */
70c0b746e5SOllivier Robert #define NLOG_SYNCMASK		0x0000F000 /* sync log events */
71 #define NLOG_SYNCINFO		0x00001000 /* sync info log events */
72 #define NLOG_SYNCEVENT		0x00002000 /* sync events */
73 #define NLOG_SYNCSTATUS		0x00004000 /* sync status (sync/unsync) */
74 #define NLOG_SYNCSTATIST	0x00008000 /* sync statistics output */
75 
76 extern u_int32 ntp_syslogmask;
77 
78 #define NLOG(bits)	if (ntp_syslogmask & (bits))
79 
80 #define LOGIF(nlog_suffix, msl_args)				\
81 do {								\
82 	NLOG(NLOG_##nlog_suffix)	/* like "if (...) */	\
83 		msyslog msl_args;				\
84 } while (FALSE)
85 
86 extern int change_iobufs(int how);
87 /* how: 0->unbuffered, 1->linebuffer, 2->full */
88 
89 #endif /* NTP_SYSLOG_H */
90