Logo Search packages:      
Sourcecode: labrea version File versions  Download package

syslog.h

#ifdef WIN32
/* -/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
 . Copyright (c) 2001 Michael Davis <mike@datanerds.net>
 . All rights reserved.
 .
 . Redistribution and use in source and binary forms, with or without
 . modification, are permitted provided that the following conditions
 . are met:
 .
 . 1. Redistributions of source code must retain the above copyright
 .    notice, this list of conditions and the following disclaimer.
 .
 . 2. Redistributions in binary form must reproduce the above copyright
 .    notice, this list of conditions and the following disclaimer in the
 .    documentation and/or other materials provided with the distribution.
 .
 . 3. The name of author may not be used to endorse or promote products
 .    derived from this software without specific prior written permission.
 .
 . THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
 . INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 . AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 . THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 . EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 . PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 . OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 . WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 . OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 . ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 . -\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\ */
 
/*    $OpenBSD: syslog.h,v 1.5 1998/02/10 18:41:57 deraadt Exp $  */
/*    $NetBSD: syslog.h,v 1.14 1996/04/03 20:46:44 christos Exp $ */

/*
 * Copyright (c) 1982, 1986, 1988, 1993
 *    The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    This product includes software developed by the University of
 *    California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *    @(#)syslog.h      8.1 (Berkeley) 6/2/93
 */

#define     _PATH_LOG   "/dev/log"

/*
 * priorities/facilities are encoded into a single 32-bit quantity, where the
 * bottom 3 bits are the priority (0-7) and the top 28 bits are the facility
 * (0-big number).  Both the priorities and the facilities map roughly
 * one-to-one to strings in the syslogd(8) source code.  This mapping is
 * included in this file.
 *
 * priorities (these are ordered)
 */
#define     LOG_EMERG   0     /* system is unusable */
#define     LOG_ALERT   1     /* action must be taken immediately */
#define     LOG_CRIT    2     /* critical conditions */
#define     LOG_ERR           3     /* error conditions */
#define     LOG_WARNING 4     /* warning conditions */
#define     LOG_NOTICE  5     /* normal but significant condition */
#define     LOG_INFO    6     /* informational */
#define     LOG_DEBUG   7     /* debug-level messages */

#define     LOG_PRIMASK 0x07  /* mask to extract priority part (internal) */
                        /* extract priority */
#define     LOG_PRI(p)  ((p) & LOG_PRIMASK)
#define     LOG_MAKEPRI(fac, pri)   (((fac) << 3) | (pri))

#ifdef SYSLOG_NAMES
#define     INTERNAL_NOPRI    0x10  /* the "no priority" priority */
                        /* mark "facility" */
#define     INTERNAL_MARK     LOG_MAKEPRI(LOG_NFACILITIES, 0)
typedef struct _code {
      char  *c_name;
      int   c_val;
} CODE;

CODE prioritynames[] = {
      { "alert",  LOG_ALERT },
      { "crit",   LOG_CRIT },
      { "debug",  LOG_DEBUG },
      { "emerg",  LOG_EMERG },
      { "err",    LOG_ERR },
      { "error",  LOG_ERR },        /* DEPRECATED */
      { "info",   LOG_INFO },
      { "none",   INTERNAL_NOPRI }, /* INTERNAL */
      { "notice", LOG_NOTICE },
      { "panic",  LOG_EMERG },            /* DEPRECATED */
      { "warn",   LOG_WARNING },          /* DEPRECATED */
      { "warning",      LOG_WARNING },
      { NULL,           -1 },
};
#endif

/* facility codes */
#define     LOG_KERN    (0<<3)      /* kernel messages */
#define     LOG_USER    (1<<3)      /* random user-level messages */
#define     LOG_MAIL    (2<<3)      /* mail system */
#define     LOG_DAEMON  (3<<3)      /* system daemons */
#define     LOG_AUTH    (4<<3)      /* security/authorization messages */
#define     LOG_SYSLOG  (5<<3)      /* messages generated internally by syslogd */
#define     LOG_LPR           (6<<3)      /* line printer subsystem */
#define     LOG_NEWS    (7<<3)      /* network news subsystem */
#define     LOG_UUCP    (8<<3)      /* UUCP subsystem */
#define     LOG_CRON    (9<<3)      /* clock daemon */
#define     LOG_AUTHPRIV      (10<<3)     /* security/authorization messages (private) */
#define     LOG_FTP           (11<<3)     /* ftp daemon */

      /* other codes through 15 reserved for system use */
#define     LOG_LOCAL0  (16<<3)     /* reserved for local use */
#define     LOG_LOCAL1  (17<<3)     /* reserved for local use */
#define     LOG_LOCAL2  (18<<3)     /* reserved for local use */
#define     LOG_LOCAL3  (19<<3)     /* reserved for local use */
#define     LOG_LOCAL4  (20<<3)     /* reserved for local use */
#define     LOG_LOCAL5  (21<<3)     /* reserved for local use */
#define     LOG_LOCAL6  (22<<3)     /* reserved for local use */
#define     LOG_LOCAL7  (23<<3)     /* reserved for local use */

#define     LOG_NFACILITIES   24    /* current number of facilities */
#define     LOG_FACMASK 0x03f8      /* mask to extract facility part */
                        /* facility of pri */
#define     LOG_FAC(p)  (((p) & LOG_FACMASK) >> 3)

#ifdef SYSLOG_NAMES
CODE facilitynames[] = {
      { "auth",   LOG_AUTH },
      { "authpriv",     LOG_AUTHPRIV },
      { "cron",   LOG_CRON },
      { "daemon", LOG_DAEMON },
      { "ftp",    LOG_FTP },
      { "kern",   LOG_KERN },
      { "lpr",    LOG_LPR },
      { "mail",   LOG_MAIL },
      { "mark",   INTERNAL_MARK },  /* INTERNAL */
      { "news",   LOG_NEWS },
      { "security",     LOG_AUTH },       /* DEPRECATED */
      { "syslog", LOG_SYSLOG },
      { "user",   LOG_USER },
      { "uucp",   LOG_UUCP },
      { "local0", LOG_LOCAL0 },
      { "local1", LOG_LOCAL1 },
      { "local2", LOG_LOCAL2 },
      { "local3", LOG_LOCAL3 },
      { "local4", LOG_LOCAL4 },
      { "local5", LOG_LOCAL5 },
      { "local6", LOG_LOCAL6 },
      { "local7", LOG_LOCAL7 },
      { NULL,           -1 },
};
#endif

#ifdef _KERNEL
#define     LOG_PRINTF  -1    /* pseudo-priority to indicate use of printf */
#endif

/*
 * arguments to setlogmask.
 */
#define     LOG_MASK(pri)     (1 << (pri))            /* mask for one priority */
#define     LOG_UPTO(pri)     ((1 << ((pri)+1)) - 1)  /* all priorities through pri */

/*
 * Option flags for openlog.
 *
 * LOG_ODELAY no longer does anything.
 * LOG_NDELAY is the inverse of what it used to be.
 */
#define     LOG_PID           0x01  /* log the pid with each message */
#define     LOG_CONS    0x02  /* log on the console if errors in sending */
#define     LOG_ODELAY  0x04  /* delay open until first syslog() (default) */
#define     LOG_NDELAY  0x08  /* don't delay open */
#define     LOG_NOWAIT  0x10  /* don't wait for console forks: DEPRECATED */
#define     LOG_PERROR  0x20  /* log to stderr as well */

#ifndef _KERNEL

/*
 * Don't use va_list in the vsyslog() prototype.   Va_list is typedef'd in two
 * places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one
 * of them here we may collide with the utility's includes.  It's unreasonable
 * for utilities to have to include one of them to include syslog.h, so we get
 * _BSD_VA_LIST_ from <machine/ansi.h> and use it.
 */
#ifndef WIN32
#include <machine/ansi.h>
#include <sys/cdefs.h>
#endif

/* L Gordon 2002-9-2 fix for cygwin/mingw: need stdarg.h for va_list and friends */
#ifdef WIN32
#include <stdarg.h>
void AddEventSource(char *);
void syslog(int, char *, ...);
void vsyslog(int, char *, va_list);
void openlog(char *, int, int);
void closelog(void);
unsigned long resolve_host(char *);
#else
__BEGIN_DECLS
void  closelog __P((void));
void  openlog __P((const char *, int, int));
int   setlogmask __P((int));
void  syslog __P((int, const char *, ...))
    __attribute__((__format__(__printf__,2,3)));
void  vsyslog __P((int, const char *, _BSD_VA_LIST_));
__END_DECLS
#endif

#else /* !_KERNEL */

void  logpri __P((int));
void  log __P((int, const char *, ...))
    __kprintf_attribute__((__format__(__kprintf__,2,3)));
int   addlog __P((const char *, ...))
    __kprintf_attribute__((__format__(__kprintf__,1,2)));
void  logwakeup __P((void));

#endif /* !_KERNEL */
#endif

Generated by  Doxygen 1.6.0   Back to index