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 82b15cb3dSCy Schubert #include <ntp_types.h> /* u_int32 type */ 92b15cb3dSCy Schubert 10c0b746e5SOllivier Robert #ifdef VMS 11c0b746e5SOllivier Robert extern void msyslog(); 129034852cSGleb Smirnoff 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; 212b15cb3dSCy Schubert extern int msyslog_term; /* duplicate to stdout/err */ 222b15cb3dSCy Schubert extern int msyslog_term_pid; 232b15cb3dSCy Schubert extern int msyslog_include_timestamp; 242b15cb3dSCy Schubert extern FILE * syslog_file; /* if syslogit is FALSE, log to 252b15cb3dSCy Schubert this file and not syslog */ 262b15cb3dSCy Schubert extern char * syslog_fname; 272b15cb3dSCy Schubert 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 */ 71c0b746e5SOllivier Robert #define NLOG_SYNCINFO 0x00001000 /* sync info log events */ 72c0b746e5SOllivier Robert #define NLOG_SYNCEVENT 0x00002000 /* sync events */ 73c0b746e5SOllivier Robert #define NLOG_SYNCSTATUS 0x00004000 /* sync status (sync/unsync) */ 74c0b746e5SOllivier Robert #define NLOG_SYNCSTATIST 0x00008000 /* sync statistics output */ 75c0b746e5SOllivier Robert 762b15cb3dSCy Schubert extern u_int32 ntp_syslogmask; 772b15cb3dSCy Schubert 782b15cb3dSCy Schubert #define NLOG(bits) if (ntp_syslogmask & (bits)) 792b15cb3dSCy Schubert 802b15cb3dSCy Schubert #define LOGIF(nlog_suffix, msl_args) \ 812b15cb3dSCy Schubert do { \ 822b15cb3dSCy Schubert NLOG(NLOG_##nlog_suffix) /* like "if (...) */ \ 832b15cb3dSCy Schubert msyslog msl_args; \ 842b15cb3dSCy Schubert } while (FALSE) 85c0b746e5SOllivier Robert 86*2d4e511cSCy Schubert extern int change_iobufs(int how); 87*2d4e511cSCy Schubert /* how: 0->unbuffered, 1->linebuffer, 2->full */ 88*2d4e511cSCy Schubert 89c0b746e5SOllivier Robert #endif /* NTP_SYSLOG_H */ 90