Home | History | Annotate | Download | only in include
      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