1df930be7Sderaadt /* 2df930be7Sderaadt * Copyright (c) 1990 Jan-Simon Pendry 3df930be7Sderaadt * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 4df930be7Sderaadt * Copyright (c) 1990, 1993 5df930be7Sderaadt * The Regents of the University of California. All rights reserved. 6df930be7Sderaadt * 7df930be7Sderaadt * This code is derived from software contributed to Berkeley by 8df930be7Sderaadt * Jan-Simon Pendry at Imperial College, London. 9df930be7Sderaadt * 10df930be7Sderaadt * Redistribution and use in source and binary forms, with or without 11df930be7Sderaadt * modification, are permitted provided that the following conditions 12df930be7Sderaadt * are met: 13df930be7Sderaadt * 1. Redistributions of source code must retain the above copyright 14df930be7Sderaadt * notice, this list of conditions and the following disclaimer. 15df930be7Sderaadt * 2. Redistributions in binary form must reproduce the above copyright 16df930be7Sderaadt * notice, this list of conditions and the following disclaimer in the 17df930be7Sderaadt * documentation and/or other materials provided with the distribution. 1829295d1cSmillert * 3. Neither the name of the University nor the names of its contributors 19df930be7Sderaadt * may be used to endorse or promote products derived from this software 20df930be7Sderaadt * without specific prior written permission. 21df930be7Sderaadt * 22df930be7Sderaadt * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23df930be7Sderaadt * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24df930be7Sderaadt * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25df930be7Sderaadt * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26df930be7Sderaadt * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27df930be7Sderaadt * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28df930be7Sderaadt * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29df930be7Sderaadt * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30df930be7Sderaadt * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31df930be7Sderaadt * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32df930be7Sderaadt * SUCH DAMAGE. 33df930be7Sderaadt * 34df930be7Sderaadt * from: @(#)config.h 8.1 (Berkeley) 6/6/93 35*8b668fe1Smmcc * $Id: config.h,v 1.12 2015/12/11 04:26:01 mmcc Exp $ 36df930be7Sderaadt */ 37df930be7Sderaadt 38df930be7Sderaadt /* 39df930be7Sderaadt * Pick up target dependent definitions 40df930be7Sderaadt */ 41df930be7Sderaadt #include <sys/types.h> 42df930be7Sderaadt #include <sys/time.h> 4329db5df3Sguenther #include <errno.h> 4429db5df3Sguenther #include <stdio.h> 45df930be7Sderaadt 46df930be7Sderaadt #define clocktime() (clock_valid ? clock_valid : time(&clock_valid)) 47df930be7Sderaadt extern time_t clock_valid; /* Clock needs recalculating */ 48df930be7Sderaadt 499ad2d6d5Spvalchev extern char *__progname; 50df930be7Sderaadt extern char hostname[]; /* "kiska" */ 5199b53731Sderaadt extern pid_t mypid; /* Current process id */ 52df930be7Sderaadt 53df930be7Sderaadt extern int syslogging; /* Really using syslog */ 54df930be7Sderaadt extern FILE *logfp; /* Log file */ 55df930be7Sderaadt extern int xlog_level; /* Logging level */ 56df930be7Sderaadt extern int xlog_level_init; 57df930be7Sderaadt 58df930be7Sderaadt extern int orig_umask; /* umask() on startup */ 59df930be7Sderaadt 60df930be7Sderaadt #define XLOG_FATAL 0x0001 61df930be7Sderaadt #define XLOG_ERROR 0x0002 62df930be7Sderaadt #define XLOG_USER 0x0004 63df930be7Sderaadt #define XLOG_WARNING 0x0008 64df930be7Sderaadt #define XLOG_INFO 0x0010 65df930be7Sderaadt #define XLOG_DEBUG 0x0020 66df930be7Sderaadt #define XLOG_MAP 0x0040 67df930be7Sderaadt #define XLOG_STATS 0x0080 68df930be7Sderaadt 69df930be7Sderaadt #define XLOG_DEFSTR "all,nomap,nostats" /* Default log options */ 70df930be7Sderaadt #define XLOG_ALL (XLOG_FATAL|XLOG_ERROR|XLOG_USER|XLOG_WARNING|XLOG_INFO|XLOG_MAP|XLOG_STATS) 71df930be7Sderaadt 72df930be7Sderaadt #ifdef DEBUG 73df930be7Sderaadt #define D_ALL (~0) 74df930be7Sderaadt 75df930be7Sderaadt #define Debug(x) if (!(debug_flags & (x))) ; else 76df930be7Sderaadt #define dlog Debug(D_FULL) dplog 77df930be7Sderaadt #endif /* DEBUG */ 78df930be7Sderaadt 79df930be7Sderaadt /* 80df930be7Sderaadt * Option tables 81df930be7Sderaadt */ 82df930be7Sderaadt struct opt_tab { 83df930be7Sderaadt char *opt; 84df930be7Sderaadt int flag; 85df930be7Sderaadt }; 86df930be7Sderaadt 87df930be7Sderaadt extern struct opt_tab xlog_opt[]; 88df930be7Sderaadt 899ad2d6d5Spvalchev extern int cmdoption(char *, struct opt_tab *, int *); 909ad2d6d5Spvalchev extern void going_down(int); 91df930be7Sderaadt #ifdef DEBUG 929ad2d6d5Spvalchev #define dplog(fmt, args...) plog(XLOG_DEBUG, fmt, ## args) 93df930be7Sderaadt #endif /* DEBUG */ 9457a9081fSguenther extern void plog(int, const char *, ...) 9557a9081fSguenther __attribute__((__format__ (syslog, 2, 3))); 969ad2d6d5Spvalchev extern void show_opts(int ch, struct opt_tab *); 97a252900eSguenther __dead void xmallocfailure(void); 98a252900eSguenther extern void *xmalloc(size_t); 99a252900eSguenther extern void *xreallocarray(void *, size_t, size_t); 100