mkspecs/solaris-cc/qplatformdefs.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    74 #include <netinet/in.h>
    74 #include <netinet/in.h>
    75 #ifndef QT_NO_IPV6IFNAME
    75 #ifndef QT_NO_IPV6IFNAME
    76 #include <net/if.h>
    76 #include <net/if.h>
    77 #endif
    77 #endif
    78 
    78 
       
    79 #define QT_USE_XOPEN_LFS_EXTENSIONS
       
    80 #include "../common/posix/qplatformdefs.h"
       
    81 
       
    82 #undef QT_SOCKLEN_T
       
    83 #undef QT_SOCKET_CONNECT
       
    84 
       
    85 #define QT_SOCKET_CONNECT       qt_socket_connect
       
    86 
    79 #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) && (_XOPEN_VERSION-0 >= 500)
    87 #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) && (_XOPEN_VERSION-0 >= 500)
    80 // Solaris 7 and better with specific feature test macros
    88 // Solaris 7 and better with specific feature test macros
    81 #define QT_SOCKLEN_T		socklen_t
    89 #define QT_SOCKLEN_T            socklen_t
    82 #elif defined(_XOPEN_SOURCE_EXTENDED) && (_XOPEN_VERSION-0 >= 4)
    90 #elif defined(_XOPEN_SOURCE_EXTENDED) && (_XOPEN_VERSION-0 >= 4)
    83 // Solaris 2.6 and better with specific feature test macros
    91 // Solaris 2.6 and better with specific feature test macros
    84 #define QT_SOCKLEN_T		size_t
    92 #define QT_SOCKLEN_T            size_t
    85 #else
    93 #else
    86 // always this case in practice
    94 // always this case in practice
    87 #define QT_SOCKLEN_T		int
    95 #define QT_SOCKLEN_T            int
    88 #endif
    96 #endif
    89 
    97 
    90 // Solaris redefines connect -> __xnet_connect with _XOPEN_SOURCE_EXTENDED
    98 // Solaris redefines connect -> __xnet_connect with _XOPEN_SOURCE_EXTENDED
    91 static inline int qt_socket_connect(int s, struct sockaddr *addr, QT_SOCKLEN_T addrlen)
    99 static inline int qt_socket_connect(int s, struct sockaddr *addr, QT_SOCKLEN_T addrlen)
    92 { return ::connect(s, addr, addrlen); }
   100 { return ::connect(s, addr, addrlen); }
    93 
       
    94 #ifdef QT_LARGEFILE_SUPPORT
       
    95 #define QT_STATBUF              struct stat64
       
    96 #define QT_STATBUF4TSTAT        struct stat64
       
    97 #define QT_STAT                 ::stat64
       
    98 #define QT_FSTAT                ::fstat64
       
    99 #define QT_LSTAT                ::lstat64
       
   100 #define QT_OPEN                 ::open64
       
   101 #define QT_TRUNCATE             ::truncate64
       
   102 #define QT_FTRUNCATE            ::ftruncate64
       
   103 #define QT_LSEEK                ::lseek64
       
   104 #else
       
   105 #define QT_STATBUF              struct stat
       
   106 #define QT_STATBUF4TSTAT        struct stat
       
   107 #define QT_STAT                 ::stat
       
   108 #define QT_FSTAT                ::fstat
       
   109 #define QT_LSTAT                ::lstat
       
   110 #define QT_OPEN                 ::open
       
   111 #define QT_TRUNCATE             ::truncate
       
   112 #define QT_FTRUNCATE            ::ftruncate
       
   113 #define QT_LSEEK                ::lseek
       
   114 #endif
       
   115 
       
   116 #ifdef QT_LARGEFILE_SUPPORT
       
   117 #define QT_FOPEN                ::fopen64
       
   118 #define QT_FSEEK                ::fseeko64
       
   119 #define QT_FTELL                ::ftello64
       
   120 #define QT_FGETPOS              ::fgetpos64
       
   121 #define QT_FSETPOS              ::fsetpos64
       
   122 #define QT_MMAP                 ::mmap64
       
   123 #define QT_FPOS_T               fpos64_t
       
   124 #define QT_OFF_T                off64_t
       
   125 #else
       
   126 #define QT_FOPEN                ::fopen
       
   127 #define QT_FSEEK                ::fseek
       
   128 #define QT_FTELL                ::ftell
       
   129 #define QT_FGETPOS              ::fgetpos
       
   130 #define QT_FSETPOS              ::fsetpos
       
   131 #define QT_MMAP                 ::mmap
       
   132 #define QT_FPOS_T               fpos_t
       
   133 #define QT_OFF_T                long
       
   134 #endif
       
   135 
       
   136 #define QT_STAT_REG		S_IFREG
       
   137 #define QT_STAT_DIR		S_IFDIR
       
   138 #define QT_STAT_MASK		S_IFMT
       
   139 #define QT_STAT_LNK		S_IFLNK
       
   140 #define QT_SOCKET_CONNECT	qt_socket_connect
       
   141 #define QT_SOCKET_BIND		::bind
       
   142 #define QT_FILENO		fileno
       
   143 #define QT_CLOSE                ::close
       
   144 #define QT_READ			::read
       
   145 #define QT_WRITE		::write
       
   146 #define QT_ACCESS		::access
       
   147 #define QT_GETCWD		::getcwd
       
   148 #define QT_CHDIR		::chdir
       
   149 #define QT_MKDIR		::mkdir
       
   150 #define QT_RMDIR		::rmdir
       
   151 #define QT_OPEN_LARGEFILE       O_LARGEFILE
       
   152 #define QT_OPEN_RDONLY		O_RDONLY
       
   153 #define QT_OPEN_WRONLY		O_WRONLY
       
   154 #define QT_OPEN_RDWR		O_RDWR
       
   155 #define QT_OPEN_CREAT		O_CREAT
       
   156 #define QT_OPEN_TRUNC		O_TRUNC
       
   157 #define QT_OPEN_APPEND		O_APPEND
       
   158 
       
   159 #define QT_SIGNAL_RETTYPE	void
       
   160 #define QT_SIGNAL_ARGS		int
       
   161 #define QT_SIGNAL_IGNORE	SIG_IGN
       
   162 
   101 
   163 #if !defined(_XOPEN_UNIX)
   102 #if !defined(_XOPEN_UNIX)
   164 // Solaris 2.5.1
   103 // Solaris 2.5.1
   165 // Function usleep() is defined in C library but not declared in header files
   104 // Function usleep() is defined in C library but not declared in header files
   166 // on Solaris 2.5.1. Not really a surprise, usleep() is specified by XPG4v2
   105 // on Solaris 2.5.1. Not really a surprise, usleep() is specified by XPG4v2