summaryrefslogtreecommitdiff
path: root/mkspecs/solaris-cc/qplatformdefs.h
Unidiff
Diffstat (limited to 'mkspecs/solaris-cc/qplatformdefs.h') (more/less context) (ignore whitespace changes)
-rw-r--r--mkspecs/solaris-cc/qplatformdefs.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/mkspecs/solaris-cc/qplatformdefs.h b/mkspecs/solaris-cc/qplatformdefs.h
new file mode 100644
index 0000000..f9480a9
--- a/dev/null
+++ b/mkspecs/solaris-cc/qplatformdefs.h
@@ -0,0 +1,110 @@
1#ifndef QPLATFORMDEFS_H
2#define QPLATFORMDEFS_H
3
4// Get Qt defines/settings
5
6#include "qglobal.h"
7
8// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
9
10#include <unistd.h>
11
12
13// We are hot - unistd.h should have turned on the specific APIs we requested
14
15
16#ifdef QT_THREAD_SUPPORT
17#include <pthread.h>
18#endif
19
20#include <dirent.h>
21#include <fcntl.h>
22#include <grp.h>
23#include <pwd.h>
24#include <signal.h>
25#include <dlfcn.h>
26
27#include <sys/types.h>
28#include <sys/ioctl.h>
29#include <sys/filio.h>
30#include <sys/ipc.h>
31#include <sys/time.h>
32#include <sys/shm.h>
33#include <sys/socket.h>
34#include <sys/stat.h>
35#include <sys/wait.h>
36
37// DNS header files are not fully covered by X/Open specifications.
38// In particular nothing is said about res_* :/
39// On Solaris header files <netinet/in.h> and <arpa/nameser.h> are not
40// included by <resolv.h>. Note that <arpa/nameser.h> must be included
41// before <resolv.h>.
42#include <netinet/in.h>
43#include <arpa/nameser.h>
44#include <resolv.h>
45
46
47#if !defined(QT_NO_COMPAT)
48 #define QT_STATBUF struct stat
49 #define QT_STATBUF4TSTATstruct stat
50 #define QT_STAT ::stat
51 #define QT_FSTAT ::fstat
52 #define QT_STAT_REG S_IFREG
53 #define QT_STAT_DIR S_IFDIR
54 #define QT_STAT_MASK S_IFMT
55 #define QT_STAT_LNK S_IFLNK
56 #define QT_FILENO fileno
57 #define QT_OPEN ::open
58 #define QT_CLOSE ::close
59 #define QT_LSEEK ::lseek
60 #define QT_READ ::read
61 #define QT_WRITE ::write
62 #define QT_ACCESS ::access
63 #define QT_GETCWD ::getcwd
64 #define QT_CHDIR ::chdir
65 #define QT_MKDIR ::mkdir
66 #define QT_RMDIR ::rmdir
67 #define QT_OPEN_RDONLY O_RDONLY
68 #define QT_OPEN_WRONLY O_WRONLY
69 #define QT_OPEN_RDWR O_RDWR
70 #define QT_OPEN_CREAT O_CREAT
71 #define QT_OPEN_TRUNC O_TRUNC
72 #define QT_OPEN_APPEND O_APPEND
73#endif
74
75 #define QT_SIGNAL_RETTYPEvoid
76 #define QT_SIGNAL_ARGS int
77 #define QT_SIGNAL_IGNORESIG_IGN
78
79#if !defined(_XOPEN_UNIX)
80// Function usleep() is in C library but not in header files on Solaris 2.5.1.
81// Not really a surprise, usleep() is specified by XPG4v2 and XPG4v2 is only
82// supported by Solaris 2.6 and better.
83// So we are trying to detect Solaris 2.5.1 using macro _XOPEN_UNIX which is
84// not defined by <unistd.h> when XPG4v2 is not supported.
85typedef unsigned int useconds_t;
86extern "C" int usleep(useconds_t);
87#endif
88
89#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) && (_XOPEN_VERSION-0 >= 500)
90// on Solaris 7 and better with specific feature test macros
91 #define QT_SOCKLEN_T socklen_t
92#elif defined(_XOPEN_SOURCE_EXTENDED) && (_XOPEN_VERSION-0 >= 4)
93// on Solaris 2.6 and better with specific feature test macros
94 #define QT_SOCKLEN_T size_t
95#else
96// always this case in practice
97 #define QT_SOCKLEN_T int
98#endif
99
100#if defined(_XOPEN_UNIX)
101// Supported by Solaris 2.6 and better. XPG4v2 and XPG4v2 is also supported
102// by Solaris 2.6 and better. So we are trying to detect Solaris 2.6 using
103// macro _XOPEN_UNIX which is not defined by <unistd.h> when XPG4v2 is not
104// supported.
105 #define QT_SNPRINTF ::snprintf
106 #define QT_VSNPRINTF ::vsnprintf
107#endif
108
109
110#endif // QPLATFORMDEFS_H