[BACK]Return to syslog.h CVS log [TXT][DIR] Up to [local] / sys / sys

Annotation of sys/sys/syslog.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: syslog.h,v 1.12 2006/01/06 18:53:06 millert Exp $     */
                      2: /*     $NetBSD: syslog.h,v 1.14 1996/04/03 20:46:44 christos Exp $     */
                      3:
                      4: /*
                      5:  * Copyright (c) 1982, 1986, 1988, 1993
                      6:  *     The Regents of the University of California.  All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. Neither the name of the University nor the names of its contributors
                     17:  *    may be used to endorse or promote products derived from this software
                     18:  *    without specific prior written permission.
                     19:  *
                     20:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     21:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     22:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     23:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     24:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     25:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     26:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     27:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     28:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     29:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     30:  * SUCH DAMAGE.
                     31:  *
                     32:  *     @(#)syslog.h    8.1 (Berkeley) 6/2/93
                     33:  */
                     34:
                     35: #ifndef _SYS_SYSLOG_H_
                     36: #define _SYS_SYSLOG_H_
                     37:
                     38: #define        _PATH_LOG       "/dev/log"
                     39:
                     40: /*
                     41:  * priorities/facilities are encoded into a single 32-bit quantity, where the
                     42:  * bottom 3 bits are the priority (0-7) and the top 28 bits are the facility
                     43:  * (0-big number).  Both the priorities and the facilities map roughly
                     44:  * one-to-one to strings in the syslogd(8) source code.  This mapping is
                     45:  * included in this file.
                     46:  *
                     47:  * priorities (these are ordered)
                     48:  */
                     49: #define        LOG_EMERG       0       /* system is unusable */
                     50: #define        LOG_ALERT       1       /* action must be taken immediately */
                     51: #define        LOG_CRIT        2       /* critical conditions */
                     52: #define        LOG_ERR         3       /* error conditions */
                     53: #define        LOG_WARNING     4       /* warning conditions */
                     54: #define        LOG_NOTICE      5       /* normal but significant condition */
                     55: #define        LOG_INFO        6       /* informational */
                     56: #define        LOG_DEBUG       7       /* debug-level messages */
                     57:
                     58: #define        LOG_PRIMASK     0x07    /* mask to extract priority part (internal) */
                     59:                                /* extract priority */
                     60: #define        LOG_PRI(p)      ((p) & LOG_PRIMASK)
                     61: #define        LOG_MAKEPRI(fac, pri)   (((fac) << 3) | (pri))
                     62:
                     63: #ifdef SYSLOG_NAMES
                     64: #define        INTERNAL_NOPRI  0x10    /* the "no priority" priority */
                     65:                                /* mark "facility" */
                     66: #define        INTERNAL_MARK   LOG_MAKEPRI(LOG_NFACILITIES, 0)
                     67: typedef struct _code {
                     68:        char    *c_name;
                     69:        int     c_val;
                     70: } CODE;
                     71:
                     72: CODE prioritynames[] = {
                     73:        { "alert",      LOG_ALERT },
                     74:        { "crit",       LOG_CRIT },
                     75:        { "debug",      LOG_DEBUG },
                     76:        { "emerg",      LOG_EMERG },
                     77:        { "err",        LOG_ERR },
                     78:        { "error",      LOG_ERR },              /* DEPRECATED */
                     79:        { "info",       LOG_INFO },
                     80:        { "none",       INTERNAL_NOPRI },       /* INTERNAL */
                     81:        { "notice",     LOG_NOTICE },
                     82:        { "panic",      LOG_EMERG },            /* DEPRECATED */
                     83:        { "warn",       LOG_WARNING },          /* DEPRECATED */
                     84:        { "warning",    LOG_WARNING },
                     85:        { NULL,         -1 },
                     86: };
                     87: #endif
                     88:
                     89: /* facility codes */
                     90: #define        LOG_KERN        (0<<3)  /* kernel messages */
                     91: #define        LOG_USER        (1<<3)  /* random user-level messages */
                     92: #define        LOG_MAIL        (2<<3)  /* mail system */
                     93: #define        LOG_DAEMON      (3<<3)  /* system daemons */
                     94: #define        LOG_AUTH        (4<<3)  /* security/authorization messages */
                     95: #define        LOG_SYSLOG      (5<<3)  /* messages generated internally by syslogd */
                     96: #define        LOG_LPR         (6<<3)  /* line printer subsystem */
                     97: #define        LOG_NEWS        (7<<3)  /* network news subsystem */
                     98: #define        LOG_UUCP        (8<<3)  /* UUCP subsystem */
                     99: #define        LOG_CRON        (9<<3)  /* clock daemon */
                    100: #define        LOG_AUTHPRIV    (10<<3) /* security/authorization messages (private) */
                    101: #define        LOG_FTP         (11<<3) /* ftp daemon */
                    102:
                    103:        /* other codes through 15 reserved for system use */
                    104: #define        LOG_LOCAL0      (16<<3) /* reserved for local use */
                    105: #define        LOG_LOCAL1      (17<<3) /* reserved for local use */
                    106: #define        LOG_LOCAL2      (18<<3) /* reserved for local use */
                    107: #define        LOG_LOCAL3      (19<<3) /* reserved for local use */
                    108: #define        LOG_LOCAL4      (20<<3) /* reserved for local use */
                    109: #define        LOG_LOCAL5      (21<<3) /* reserved for local use */
                    110: #define        LOG_LOCAL6      (22<<3) /* reserved for local use */
                    111: #define        LOG_LOCAL7      (23<<3) /* reserved for local use */
                    112:
                    113: #define        LOG_NFACILITIES 24      /* current number of facilities */
                    114: #define        LOG_FACMASK     0x03f8  /* mask to extract facility part */
                    115:                                /* facility of pri */
                    116: #define        LOG_FAC(p)      (((p) & LOG_FACMASK) >> 3)
                    117:
                    118: #ifdef SYSLOG_NAMES
                    119: CODE facilitynames[] = {
                    120:        { "auth",       LOG_AUTH },
                    121:        { "authpriv",   LOG_AUTHPRIV },
                    122:        { "cron",       LOG_CRON },
                    123:        { "daemon",     LOG_DAEMON },
                    124:        { "ftp",        LOG_FTP },
                    125:        { "kern",       LOG_KERN },
                    126:        { "lpr",        LOG_LPR },
                    127:        { "mail",       LOG_MAIL },
                    128:        { "mark",       INTERNAL_MARK },        /* INTERNAL */
                    129:        { "news",       LOG_NEWS },
                    130:        { "security",   LOG_AUTH },             /* DEPRECATED */
                    131:        { "syslog",     LOG_SYSLOG },
                    132:        { "user",       LOG_USER },
                    133:        { "uucp",       LOG_UUCP },
                    134:        { "local0",     LOG_LOCAL0 },
                    135:        { "local1",     LOG_LOCAL1 },
                    136:        { "local2",     LOG_LOCAL2 },
                    137:        { "local3",     LOG_LOCAL3 },
                    138:        { "local4",     LOG_LOCAL4 },
                    139:        { "local5",     LOG_LOCAL5 },
                    140:        { "local6",     LOG_LOCAL6 },
                    141:        { "local7",     LOG_LOCAL7 },
                    142:        { NULL,         -1 },
                    143: };
                    144: #endif
                    145:
                    146: /* Used by reentrant functions */
                    147:
                    148: struct syslog_data {
                    149:        int     log_file;
                    150:        int     connected;
                    151:        int     opened;
                    152:        int     log_stat;
                    153:        const char      *log_tag;
                    154:        int     log_fac;
                    155:        int     log_mask;
                    156: };
                    157:
                    158: #define SYSLOG_DATA_INIT {-1, 0, 0, 0, (const char *)0, LOG_USER, 0xff}
                    159:
                    160: #ifdef _KERNEL
                    161: #define        LOG_PRINTF      -1      /* pseudo-priority to indicate use of printf */
                    162: #endif
                    163:
                    164: /*
                    165:  * arguments to setlogmask.
                    166:  */
                    167: #define        LOG_MASK(pri)   (1 << (pri))            /* mask for one priority */
                    168: #define        LOG_UPTO(pri)   ((1 << ((pri)+1)) - 1)  /* all priorities through pri */
                    169:
                    170: /*
                    171:  * Option flags for openlog.
                    172:  *
                    173:  * LOG_ODELAY no longer does anything.
                    174:  * LOG_NDELAY is the inverse of what it used to be.
                    175:  */
                    176: #define        LOG_PID         0x01    /* log the pid with each message */
                    177: #define        LOG_CONS        0x02    /* log on the console if errors in sending */
                    178: #define        LOG_ODELAY      0x04    /* delay open until first syslog() (default) */
                    179: #define        LOG_NDELAY      0x08    /* don't delay open */
                    180: #define        LOG_NOWAIT      0x10    /* don't wait for console forks: DEPRECATED */
                    181: #define        LOG_PERROR      0x20    /* log to stderr as well */
                    182:
                    183: #ifndef _KERNEL
                    184:
                    185: /*
                    186:  * Don't use va_list in the vsyslog() prototype.   Va_list is typedef'd in two
                    187:  * places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one
                    188:  * of them here we may collide with the utility's includes.  It's unreasonable
                    189:  * for utilities to have to include one of them to include syslog.h, so we get
                    190:  * __va_list from <machine/_types.h> and use it.
                    191:  */
                    192: #include <sys/cdefs.h>
                    193: #include <machine/_types.h>
                    194:
                    195: __BEGIN_DECLS
                    196: void   closelog(void);
                    197: void   openlog(const char *, int, int);
                    198: int    setlogmask(int);
                    199: void   syslog(int, const char *, ...)
                    200:     __attribute__((__format__(__syslog__,2,3)));
                    201: void   vsyslog(int, const char *, __va_list);
                    202: void   closelog_r(struct syslog_data *);
                    203: void   openlog_r(const char *, int, int, struct syslog_data *);
                    204: int    setlogmask_r(int, struct syslog_data *);
                    205: void   syslog_r(int, struct syslog_data *, const char *, ...)
                    206:      __attribute__((__format__(__syslog__,3,4)));
                    207: void   vsyslog_r(int, struct syslog_data *, const char *, __va_list);
                    208: __END_DECLS
                    209:
                    210: #else /* !_KERNEL */
                    211:
                    212: void   logpri(int);
                    213: void   log(int, const char *, ...)
                    214:     __attribute__((__format__(__kprintf__,2,3)));
                    215: int    addlog(const char *, ...)
                    216:     __attribute__((__format__(__kprintf__,1,2)));
                    217: void   logwakeup(void);
                    218:
                    219: #endif /* !_KERNEL */
                    220: #endif /* !_SYS_SYSLOG_H_ */
                    221:

CVSweb