/******************************************************************************** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).** All rights reserved.** Contact: Nokia Corporation (qt-info@nokia.com)**** This file is part of the qmake spec of the Qt Toolkit.**** $QT_BEGIN_LICENSE:LGPL$** No Commercial Usage** This file contains pre-release code and may not be distributed.** You may use this file in accordance with the terms and conditions** contained in the Technology Preview License Agreement accompanying** this package.**** GNU Lesser General Public License Usage** Alternatively, this file may be used under the terms of the GNU Lesser** General Public License version 2.1 as published by the Free Software** Foundation and appearing in the file LICENSE.LGPL included in the** packaging of this file. Please review the following information to** ensure the GNU Lesser General Public License version 2.1 requirements** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.**** In addition, as a special exception, Nokia gives you certain additional** rights. These rights are described in the Nokia Qt LGPL Exception** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.**** If you have questions regarding the use of this file, please contact** Nokia at qt-info@nokia.com.****************** $QT_END_LICENSE$******************************************************************************/#ifndef QPLATFORMDEFS_H#define QPLATFORMDEFS_H// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs#define _XOPEN_SOURCE 500#define __EXTENSIONS__// Get Qt defines/settings#include "qglobal.h"#include <unistd.h>// We are hot - unistd.h should have turned on the specific APIs we requested#include <pthread.h>#include <dirent.h>#include <fcntl.h>#include <grp.h>#include <pwd.h>#include <signal.h>#include <dlfcn.h>#include <sys/types.h>#include <sys/ioctl.h>#include <sys/filio.h>#include <sys/ipc.h>#include <sys/time.h>#include <sys/shm.h>#include <sys/socket.h>#include <sys/stat.h>#include <sys/wait.h>#include <netinet/in.h>#ifndef QT_NO_IPV6IFNAME#include <net/if.h>#endif#define QT_USE_XOPEN_LFS_EXTENSIONS#include "../common/posix/qplatformdefs.h"#undef QT_SOCKLEN_T#undef QT_SOCKET_CONNECT#define QT_SOCKET_CONNECT qt_socket_connect#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) && (_XOPEN_VERSION-0 >= 500)// Solaris 7 and better with specific feature test macros#define QT_SOCKLEN_T socklen_t#elif defined(_XOPEN_SOURCE_EXTENDED) && (_XOPEN_VERSION-0 >= 4)// Solaris 2.6 and better with specific feature test macros#define QT_SOCKLEN_T size_t#else// always this case in practice#define QT_SOCKLEN_T int#endif// Solaris redefines connect -> __xnet_connect with _XOPEN_SOURCE_EXTENDEDstatic inline int qt_socket_connect(int s, struct sockaddr *addr, QT_SOCKLEN_T addrlen){ return ::connect(s, addr, addrlen); }#if !defined(_XOPEN_UNIX)// Solaris 2.5.1// Function usleep() is defined in C library but not declared in header files// on Solaris 2.5.1. Not really a surprise, usleep() is specified by XPG4v2// and XPG4v2 is only supported by Solaris 2.6 and better.// Function gethostname() is also defined in C library but not declared in// header files on Solaris 2.5.1.typedef unsigned int useconds_t;extern "C" int usleep(useconds_t);extern "C" int gethostname(char *, int);#endif#if defined(_XOPEN_UNIX)// Solaris 2.6 and better#define QT_SNPRINTF ::snprintf#define QT_VSNPRINTF ::vsnprintf#endif#ifdef connect#undef connect#endif#endif // QPLATFORMDEFS_H