1 /* $Id: flowd-common.h,v 1.1 2005/10/13 11:27:44 djm Exp $ */ 2 3 /* 4 * Copyright (c) 2004,2005 Damien Miller <djm@mindrot.org> 5 * 6 * Permission to use, copy, modify, and distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #ifndef _FLOWD_COMMON_H 20 #define _FLOWD_COMMON_H 21 22 #include "flowd-config.h" 23 24 #if defined(HAVE_SYS_CDEFS_H) 25 # include <sys/cdefs.h> 26 #endif 27 #if defined(HAVE_SYS_TIME_H) 28 # include <sys/time.h> 29 #endif 30 31 #include <sys/types.h> 32 #include <sys/poll.h> 33 #include <unistd.h> 34 35 #if defined(HAVE_TIME_H) 36 # include <time.h> 37 #endif 38 #if defined(HAVE_PATHS_H) 39 # include <paths.h> 40 #endif 41 #if defined(HAVE_STRINGS_H) 42 # include <strings.h> 43 #endif 44 #if defined(HAVE_INTTYPES_H) 45 # include <inttypes.h> 46 #endif 47 #if defined(HAVE_STDINT_H) 48 # include <stdint.h> 49 #endif 50 #if defined(HAVE_ENDIAN_H) 51 # include <endian.h> 52 #endif 53 54 #ifndef RCSID 55 # define RCSID(msg) \ 56 static /**/const char *const flowd_rcsid[] = \ 57 { (const char *)flowd_rcsid, "\100(#)" msg } 58 #endif 59 60 #if defined(__GNUC__) 61 # ifndef __dead 62 # define __dead __attribute__((__noreturn__)) 63 # endif 64 # ifndef __packed 65 # define __packed __attribute__((__packed__)) 66 # endif 67 #endif 68 69 /* Prototypes for absent friends */ 70 #ifndef HAVE_CLOSEFROM 71 void closefrom(int); 72 #endif 73 #ifndef HAVE_STRLCAT 74 size_t strlcat(char *, const char *, size_t); 75 #endif 76 #ifndef HAVE_STRLCPY 77 size_t strlcpy(char *, const char *, size_t); 78 #endif 79 #ifndef HAVE_SETPROCTITLE 80 void compat_init_setproctitle(int, char ***); 81 void setproctitle(const char *, ...); 82 #endif 83 #ifndef HAVE_DAEMON 84 int daemon(int nochdir, int noclose); 85 #endif 86 87 #ifndef INFTIM 88 # define INFTIM (-1) 89 #endif 90 91 #ifndef _PATH_DEVNULL 92 # define _PATH_DEVNULL "/dev/null" 93 #endif 94 95 #if !defined(HAVE_INT8_T) && defined(OUR_CFG_INT8_T) 96 typedef OUR_CFG_INT8_T int8_t; 97 #endif 98 #if !defined(HAVE_INT16_T) && defined(OUR_CFG_INT16_T) 99 typedef OUR_CFG_INT16_T int16_t; 100 #endif 101 #if !defined(HAVE_INT32_T) && defined(OUR_CFG_INT32_T) 102 typedef OUR_CFG_INT32_T int32_t; 103 #endif 104 #if !defined(HAVE_INT64_T) && defined(OUR_CFG_INT64_T) 105 typedef OUR_CFG_INT64_T int64_t; 106 #endif 107 #if !defined(HAVE_U_INT8_T) && defined(OUR_CFG_U_INT8_T) 108 typedef OUR_CFG_U_INT8_T u_int8_t; 109 #endif 110 #if !defined(HAVE_U_INT16_T) && defined(OUR_CFG_U_INT16_T) 111 typedef OUR_CFG_U_INT16_T u_int16_t; 112 #endif 113 #if !defined(HAVE_U_INT32_T) && defined(OUR_CFG_U_INT32_T) 114 typedef OUR_CFG_U_INT32_T u_int32_t; 115 #endif 116 #if !defined(HAVE_U_INT64_T) && defined(OUR_CFG_U_INT64_T) 117 typedef OUR_CFG_U_INT64_T u_int64_t; 118 #endif 119 #if !defined(HAVE_U_INT) 120 typedef unsigned int u_int; 121 #endif 122 123 #endif /* _FLOWD_COMMON_H */ 124