1 /* 2 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6 7 /* 8 * Copyright (C) 2005-2008 Internet Systems Consortium, Inc. ("ISC") 9 * Copyright (C) 2001 Internet Software Consortium. 10 * 11 * Permission to use, copy, modify, and/or distribute this software for any 12 * purpose with or without fee is hereby granted, provided that the above 13 * copyright notice and this permission notice appear in all copies. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 16 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 17 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 18 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 19 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 20 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 21 * PERFORMANCE OF THIS SOFTWARE. 22 */ 23 24 /* $Id: port_before.h.in,v 1.31 2008/02/28 05:36:10 marka Exp $ */ 25 26 #ifndef port_before_h 27 #define port_before_h 28 /* Solaris-specific changes */ 29 #include "sunw_port_before.h" 30 #include <config.h> 31 32 #ifdef NEED_SUN4PROTOS 33 #define _PARAMS(x) x 34 #endif 35 36 struct group; /* silence warning */ 37 struct passwd; /* silence warning */ 38 struct timeval; /* silence warning */ 39 struct timezone; /* silence warning */ 40 41 #ifdef HAVE_SYS_TIMERS_H 42 #include <sys/timers.h> 43 #endif 44 #include <limits.h> 45 46 #ifdef ISC_PLATFORM_NEEDTIMESPEC 47 #include <time.h> /* For time_t */ 48 struct timespec { 49 time_t tv_sec; /* seconds */ 50 long tv_nsec; /* nanoseconds */ 51 }; 52 #endif 53 #ifndef HAVE_MEMMOVE 54 #define memmove(a,b,c) bcopy(b,a,c) 55 #endif 56 57 #undef WANT_IRS_GR 58 #undef WANT_IRS_NIS 59 #undef WANT_IRS_PW 60 61 #define BSD_COMP 1 62 #define USE_POLL 1 63 #define HAVE_MD5 1 64 #define SOLARIS2 1 65 66 /* DO_PTHREADS is conditionally defined in sunw_port_before.h 67 * #define DO_PTHREADS 1 */ 68 #define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups 69 #define GETNETBYADDR_ADDR_T long 70 #define SETPWENT_VOID 1 71 #define SETGRENT_VOID 1 72 73 #define NET_R_ARGS char *buf, int buflen 74 #define NET_R_BAD NULL 75 #define NET_R_COPY buf, buflen 76 #define NET_R_COPY_ARGS NET_R_ARGS 77 #define NET_R_END_RESULT(x) /*empty*/ 78 #define NET_R_END_RETURN void 79 #undef NET_R_ENT_ARGS /*empty*/ 80 #define NET_R_OK nptr 81 #define NET_R_RETURN struct netent * 82 #undef NET_R_SET_RESULT /*empty*/ 83 #undef NET_R_SETANSWER 84 #define NET_R_SET_RETURN void 85 #undef NETENT_DATA 86 87 #define GROUP_R_RETURN struct group * 88 #define GROUP_R_SET_RETURN void 89 #undef GROUP_R_SET_RESULT /*empty*/ 90 #define GROUP_R_END_RETURN void 91 #define GROUP_R_END_RESULT(x) /*empty*/ 92 #define GROUP_R_ARGS char *buf, int buflen 93 #define GROUP_R_ENT_ARGS void 94 #define GROUP_R_OK gptr 95 #define GROUP_R_BAD NULL 96 97 #define HOST_R_ARGS char *buf, int buflen, int *h_errnop 98 #define HOST_R_BAD NULL 99 #define HOST_R_COPY buf, buflen 100 #define HOST_R_COPY_ARGS char *buf, int buflen 101 #define HOST_R_END_RESULT(x) /*empty*/ 102 #define HOST_R_END_RETURN void 103 #undef HOST_R_ENT_ARGS /*empty*/ 104 #define HOST_R_ERRNO *h_errnop = h_errno 105 #define HOST_R_OK hptr 106 #define HOST_R_RETURN struct hostent * 107 #undef HOST_R_SETANSWER 108 #undef HOST_R_SET_RESULT 109 #define HOST_R_SET_RETURN void 110 #undef HOSTENT_DATA 111 112 #define NGR_R_ARGS char *buf, int buflen 113 #define NGR_R_BAD (0) 114 #define NGR_R_COPY buf, buflen 115 #define NGR_R_COPY_ARGS NGR_R_ARGS 116 #define NGR_R_CONST 117 #define NGR_R_END_RESULT(x) /*empty*/ 118 #define NGR_R_END_RETURN void 119 #undef NGR_R_END_ARGS /*empty*/ 120 #define NGR_R_OK 1 121 #define NGR_R_RETURN int 122 #define NGR_R_SET_CONST const 123 #undef NGR_R_SET_RESULT /*empty*/ 124 #define NGR_R_SET_RETURN void 125 #undef NGR_R_SET_ARGS 126 127 128 #if !defined(NGR_R_SET_ARGS) && defined(NGR_R_END_ARGS) 129 #define NGR_R_SET_ARGS NGR_R_END_ARGS 130 #endif 131 132 #define PROTO_R_ARGS char *buf, int buflen 133 #define PROTO_R_BAD NULL 134 #define PROTO_R_COPY buf, buflen 135 #define PROTO_R_COPY_ARGS PROTO_R_ARGS 136 #define PROTO_R_END_RESULT(x) /*empty*/ 137 #define PROTO_R_END_RETURN void 138 #undef PROTO_R_ENT_ARGS /*empty*/ 139 #undef PROTO_R_ENT_UNUSED 140 #define PROTO_R_OK pptr 141 #undef PROTO_R_SETANSWER 142 #define PROTO_R_RETURN struct protoent * 143 #undef PROTO_R_SET_RESULT 144 #define PROTO_R_SET_RETURN void 145 #undef PROTOENT_DATA 146 147 #define PASS_R_ARGS char *buf, int buflen 148 #define PASS_R_BAD NULL 149 #define PASS_R_COPY buf, buflen 150 #define PASS_R_COPY_ARGS PASS_R_ARGS 151 #define PASS_R_END_RESULT(x) /*empty*/ 152 #define PASS_R_END_RETURN void 153 #undef PASS_R_ENT_ARGS 154 #define PASS_R_OK pwptr 155 #define PASS_R_RETURN struct passwd * 156 #undef PASS_R_SET_RESULT /*empty*/ 157 #define PASS_R_SET_RETURN void 158 159 #define SERV_R_ARGS char *buf, int buflen 160 #define SERV_R_BAD NULL 161 #define SERV_R_COPY buf, buflen 162 #define SERV_R_COPY_ARGS SERV_R_ARGS 163 #define SERV_R_END_RESULT(x) /*empty*/ 164 #define SERV_R_END_RETURN void 165 #undef SERV_R_ENT_ARGS /*empty*/ 166 #undef SERV_R_ENT_UNUSED /*empty*/ 167 #define SERV_R_OK sptr 168 #undef SERV_R_SETANSWER 169 #define SERV_R_RETURN struct servent * 170 #undef SERV_R_SET_RESULT 171 #define SERV_R_SET_RETURN void 172 173 174 175 #define DE_CONST(konst, var) \ 176 do { \ 177 union { const void *k; void *v; } _u; \ 178 _u.k = konst; \ 179 var = _u.v; \ 180 } while (0) 181 182 #define UNUSED(x) (x) = (x) 183 184 #undef NEED_SOLARIS_BITTYPES 185 #define ISC_SOCKLEN_T int 186 187 #ifdef __GNUC__ 188 #define ISC_FORMAT_PRINTF(fmt, args) \ 189 __attribute__((__format__(__printf__, fmt, args))) 190 #else 191 #define ISC_FORMAT_PRINTF(fmt, args) 192 #endif 193 194 /* Pull in host order macros when _XOPEN_SOURCE_EXTENDED is defined. */ 195 #if defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) 196 #include <sys/byteorder.h> 197 #endif 198 199 #endif 200 201 /*! \file */ 202