solaris.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9#ifndef SQUID_OS_SOLARIS_H
10#define SQUID_OS_SOLARIS_H
11
12#if _SQUID_SOLARIS_
13
14/*
15 * ugly hack. System headers require wcsstr, but don't define it.
16 */
17#include <wchar.h>
18#ifdef wcsstr
19#undef wcsstr
20#endif /* wcsstr */
21#define wcsstr wcswcs
22
23/*
24 * On Solaris 9 x86, gcc may includes a "fixed" set of old system
25 * include files that is incompatible with the updated Solaris
26 * header files.
27 */
28#if defined(i386) || defined(__i386)
29#if !HAVE_PAD128_T
30typedef union {
31 long double _q;
32 int32_t _l[4];
33} pad128_t;
34#endif
35#if !HAVE_UPAD128_T
36typedef union {
37 long double _q;
38 uint32_t _l[4];
39} upad128_t;
40#endif
41#endif
42
47#include <sys/time.h>
48#include <sys/resource.h>
49SQUIDCEXTERN int getrusage(int, struct rusage *);
50
51#if defined(__SUNPRO_CC)
52// Solaris 11 needs this before <sys/socket.h> to get the definition for msg_control
53// and possibly other type definitions we do not know about specifically
54#define _XPG4_2 1
55#include <sys/socket.h>
56#endif
57
62SQUIDCEXTERN int getpagesize(void);
63#if !defined(_XPG4_2) && !(defined(__EXTENSIONS__) || \
64(!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)))
65SQUIDCEXTERN int gethostname(char *, int);
66#endif
67
68/*
69 * SunStudio CC does not define C++ portability API __FUNCTION__
70 */
71#if defined(__SUNPRO_CC) && !defined(__FUNCTION__)
72#define __FUNCTION__ ""
73#endif
74
75/* Bug 2500: Solaris 10/11 require s6_addr* defines. */
76//#define s6_addr8 _S6_un._S6_u8
77//#define s6_addr16 _S6_un._S6_u16
78#define s6_addr32 _S6_un._S6_u32
79
80/* Bug 3057: Solaris 9 defines struct addrinfo with size_t instead of socklen_t
81 * this causes binary incompatibility on 64-bit systems.
82 * Fix this by bundling a copy of the OpenSolaris 10 netdb.h to use instead.
83 */
84#if defined(__sparcv9)
86#endif
87
88/* Solaris 10 lacks SUN_LEN */
89#if !defined(SUN_LEN)
90#define SUN_LEN(su) (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
91#endif
92
93/* Soaris 10 does not define POSIX AF_LOCAL, but does define the Unix name */
94#if !defined(AF_LOCAL)
95#define AF_LOCAL AF_UNIX
96#endif
97
98/* Solaris lacks paths.h by default */
99#if HAVE_PATHS_H
100#include <paths.h>
101#endif
102#if !defined(_PATH_DEVNULL)
103#define _PATH_DEVNULL "/dev/null"
104#endif
105
106#endif /* _SQUID_SOLARIS_ */
107#endif /* SQUID_OS_SOALRIS_H */
108
#define SQUIDCEXTERN
Definition: squid.h:21

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors