1 /*
2  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
4  */
5 
6 #ifndef	_SUNW_PORT_AFTER_H
7 #define	_SUNW_PORT_AFTER_H
8 
9 #ifdef	__cplusplus
10 extern "C" {
11 #endif
12 
13 /*
14  * rename setnetgrent and endnetgrent which were formerly in a separate irs
15  * shared library.  These functions should come from libc.so
16  */
17 #define	setnetgrent res_setnetgrent
18 #ifdef SETNETGRENT_ARGS
19 void setnetgrent(SETNETGRENT_ARGS);
20 #else
21 void setnetgrent(const char *netgroup);
22 #endif
23 
24 #define	endnetgrent res_endnetgrent
25 void endnetgrent(void);
26 
27 
28 /*
29  * include ports for the public header files. ISC's versions are quite different
30  * from those currently in OpenSolaris.
31  */
32 
33 #ifdef _RESOLV_H_
34 #include <port_resolv.h>
35 #endif /* _RESOLV_H_ */
36 
37 #ifdef _NETDB_H
38 #include <port_netdb.h>
39 #endif /* _NETDB_H */
40 
41 #ifdef _ARPA_INET_H
42 #include <arpa/port_inet.h>
43 #endif /* _ARPA_INET_H */
44 
45 #ifdef _ARPA_NAMESER_H
46 #include <arpa/port_nameser.h>
47 #endif /* _ARPA_NAMESER_H */
48 
49 
50 #ifdef _ARPA_NAMESER_COMPAT_H
51 /* no changes */
52 #endif /* _ARPA_NAMESER_COMPAT_H */
53 
54 /* version-specific defines */
55 #include <os_version.h>
56 
57 /*
58  * Prior to 2.6, Solaris needs a prototype for gethostname().
59  */
60 #if (OS_MAJOR == 5 && OS_MINOR < 6)
61 extern int gethostname(char *, size_t);
62 #endif
63 /*
64  * gethostid() was not available until 2.5
65  * setsockopt(SO_REUSEADDR) fails on unix domain sockets before 2.5
66  * use ioctl(FIONBIO) rather than fcntl() calls to set/clear non-blocking i/o.
67  */
68 #if (OS_MAJOR == 5 && OS_MINOR < 5)
69 #define	GET_HOST_ID_MISSING
70 #define	NO_UNIX_REUSEADDR
71 #define	USE_FIONBIO_IOCTL
72 #endif
73 
74 #if (OS_MAJOR == 5 && OS_MINOR < 11)
75 #define	NEED_STRSEP
76 extern char *strsep(char **, const char *);
77 #endif
78 
79 
80 /*
81  * Solaris 2.5 and later have getrlimit(), setrlimit() and getrusage().
82  */
83 #if (OS_MAJOR > 5 || (OS_MAJOR == 5 && OS_MINOR >= 5))
84 #include <sys/resource.h>
85 #define	HAVE_GETRUSAGE
86 #define	RLIMIT_TYPE rlim_t
87 #define	RLIMIT_FILE_INFINITY
88 #endif
89 
90 /* the default syslog facility of named/lwresd. */
91 #ifndef ISC_FACILITY
92 #define	ISC_FACILITY LOG_DAEMON
93 #endif
94 
95 
96 /*
97  * Solaris 8 has if_nametoindex().
98  */
99 #if (OS_MAJOR > 5 || (OS_MAJOR == 5 && OS_MINOR >= 8))
100 #define	USE_IFNAMELINKID
101 #endif
102 
103 #undef ALIGN
104 #if (OS_MAJOR == 5 && OS_MINOR > 8)
105 #define	ALIGN(x) (((uintptr_t)(x) + (sizeof (char *) - 1UL)) & \
106 		~(sizeof (char *) - 1UL))
107 #else
108 #define	ALIGN(x) (((unsigned long)(x) + (sizeof (char *) - 1UL)) & \
109 		~(sizeof (char *) - 1UL))
110 #endif
111 
112 #if (OS_MAJOR == 5 && OS_MINOR < 5)
113 #ifndef USE_FIONBIO_IOCTL
114 #define	USE_FIONBIO_IOCTL 1
115 #endif
116 #endif
117 
118 
119 #ifdef	__cplusplus
120 }
121 #endif
122 
123 #endif	/* _SUNW_PORT_AFTER_H */
124