Squid Web Cache master
Loading...
Searching...
No Matches
solaris.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2025 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_COMPAT_OS_SOLARIS_H
10#define SQUID_COMPAT_OS_SOLARIS_H
11
12#if _SQUID_SOLARIS_
13
14/****************************************************************************
15 *--------------------------------------------------------------------------*
16 * DO *NOT* MAKE ANY CHANGES below here unless you know what you're doing...*
17 *--------------------------------------------------------------------------*
18 ****************************************************************************/
19
20/*
21 * ugly hack. System headers require wcsstr, but don't define it.
22 */
23#include <wchar.h>
24#ifdef wcsstr
25#undef wcsstr
26#endif /* wcsstr */
27#define wcsstr wcswcs
28
29/*
30 * On Solaris 9 x86, gcc may includes a "fixed" set of old system
31 * include files that is incompatible with the updated Solaris
32 * header files.
33 */
34#if defined(i386) || defined(__i386)
35#if !HAVE_PAD128_T
36typedef union {
37 long double _q;
38 int32_t _l[4];
39} pad128_t;
40#endif
41#if !HAVE_UPAD128_T
42typedef union {
43 long double _q;
44 uint32_t _l[4];
45} upad128_t;
46#endif
47#endif
48
53#include <sys/time.h>
54#include <sys/resource.h>
55SQUIDCEXTERN int getrusage(int, struct rusage *);
56
57#if defined(__SUNPRO_CC)
58// Solaris 11 needs this before <sys/socket.h> to get the definition for msg_control
59// and possibly other type definitions we do not know about specifically
60#define _XPG4_2 1
61#include <sys/socket.h>
62#endif
63
68SQUIDCEXTERN int getpagesize(void);
69#if !defined(_XPG4_2) && !(defined(__EXTENSIONS__) || \
70(!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)))
71SQUIDCEXTERN int gethostname(char *, int);
72#endif
73
74/* Bug 2500: Solaris 10/11 require s6_addr* defines. */
75//#define s6_addr8 _S6_un._S6_u8
76//#define s6_addr16 _S6_un._S6_u16
77#define s6_addr32 _S6_un._S6_u32
78
79/* Solaris 10 lacks SUN_LEN */
80#if !defined(SUN_LEN)
81#define SUN_LEN(su) (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
82#endif
83
84/* Soaris 10 does not define POSIX AF_LOCAL, but does define the Unix name */
85#if !defined(AF_LOCAL)
86#define AF_LOCAL AF_UNIX
87#endif
88
89/* Solaris lacks paths.h by default */
90#if HAVE_PATHS_H
91#include <paths.h>
92#endif
93#if !defined(_PATH_DEVNULL)
94#define _PATH_DEVNULL "/dev/null"
95#endif
96
97#endif /* _SQUID_SOLARIS_ */
98#endif /* SQUID_COMPAT_OS_SOLARIS_H */
99
#define SQUIDCEXTERN
Definition squid.h:21