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
10extern "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
19void setnetgrent(SETNETGRENT_ARGS);
20#else
21void setnetgrent(const char *netgroup);
22#endif
23
24#define	endnetgrent res_endnetgrent
25void 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)
61extern 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
76extern 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