Eneboo - Documentación para desarrolladores
|
00001 #ifndef QPLATFORMDEFS_H 00002 #define QPLATFORMDEFS_H 00003 00004 // Get Qt defines/settings 00005 00006 #include "qglobal.h" 00007 00008 // Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs 00009 #ifndef _POSIX_PTHREAD_SEMANTICS 00010 #define _POSIX_PTHREAD_SEMANTICS 00011 #endif 00012 00013 #include <unistd.h> 00014 00015 00016 // We are hot - unistd.h should have turned on the specific APIs we requested 00017 00018 00019 #ifdef QT_THREAD_SUPPORT 00020 #include <pthread.h> 00021 #endif 00022 00023 #include <dirent.h> 00024 #include <fcntl.h> 00025 #include <grp.h> 00026 #include <pwd.h> 00027 #include <signal.h> 00028 #include <dlfcn.h> 00029 00030 #include <sys/types.h> 00031 #include <sys/ioctl.h> 00032 #include <sys/filio.h> 00033 #include <sys/ipc.h> 00034 #include <sys/time.h> 00035 #include <sys/shm.h> 00036 #include <sys/socket.h> 00037 #include <sys/stat.h> 00038 #include <sys/wait.h> 00039 00040 // DNS header files are not fully covered by X/Open specifications. 00041 // In particular nothing is said about res_* :/ 00042 // On Solaris header files <netinet/in.h> and <arpa/nameser.h> are not 00043 // included by <resolv.h>. Note that <arpa/nameser.h> must be included 00044 // before <resolv.h>. 00045 #include <netinet/in.h> 00046 #include <arpa/nameser.h> 00047 #include <resolv.h> 00048 00049 00050 #if !defined(QT_NO_COMPAT) 00051 #define QT_STATBUF struct stat 00052 #define QT_STATBUF4TSTAT struct stat 00053 #define QT_STAT ::stat 00054 #define QT_FSTAT ::fstat 00055 #define QT_STAT_REG S_IFREG 00056 #define QT_STAT_DIR S_IFDIR 00057 #define QT_STAT_MASK S_IFMT 00058 #define QT_STAT_LNK S_IFLNK 00059 #define QT_FILENO fileno 00060 #define QT_OPEN ::open 00061 #define QT_CLOSE ::close 00062 #define QT_LSEEK ::lseek 00063 #define QT_READ ::read 00064 #define QT_WRITE ::write 00065 #define QT_ACCESS ::access 00066 #define QT_GETCWD ::getcwd 00067 #define QT_CHDIR ::chdir 00068 #define QT_MKDIR ::mkdir 00069 #define QT_RMDIR ::rmdir 00070 #define QT_OPEN_RDONLY O_RDONLY 00071 #define QT_OPEN_WRONLY O_WRONLY 00072 #define QT_OPEN_RDWR O_RDWR 00073 #define QT_OPEN_CREAT O_CREAT 00074 #define QT_OPEN_TRUNC O_TRUNC 00075 #define QT_OPEN_APPEND O_APPEND 00076 #endif 00077 00078 #define QT_SIGNAL_RETTYPE void 00079 #define QT_SIGNAL_ARGS int 00080 #define QT_SIGNAL_IGNORE SIG_IGN 00081 00082 #if !defined(_XOPEN_UNIX) 00083 // Function usleep() is defined in C library but not declared in header files 00084 // on Solaris 2.5.1. Not really a surprise, usleep() is specified by XPG4v2 00085 // and XPG4v2 is only supported by Solaris 2.6 and better. 00086 // Function gethostname() is defined in C library but not declared in <unistd.h> 00087 // on Solaris 2.5.1. 00088 // So we are trying to detect Solaris 2.5.1 using macro _XOPEN_UNIX which is 00089 // not defined by <unistd.h> when XPG4v2 is not supported. 00090 typedef unsigned int useconds_t; 00091 extern "C" int usleep(useconds_t); 00092 extern "C" int gethostname(char *, int); 00093 #endif 00094 00095 #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) && (_XOPEN_VERSION-0 >= 500) 00096 // on Solaris 7 and better with specific feature test macros 00097 #define QT_SOCKLEN_T socklen_t 00098 #elif defined(_XOPEN_SOURCE_EXTENDED) && defined(_XOPEN_UNIX) 00099 // on Solaris 2.6 and better with specific feature test macros 00100 #define QT_SOCKLEN_T size_t 00101 #else 00102 // always this case in practice 00103 #define QT_SOCKLEN_T int 00104 #endif 00105 00106 #if defined(_XOPEN_UNIX) 00107 // Supported by Solaris 2.6 and better. XPG4v2 and XPG4v2 is also supported 00108 // by Solaris 2.6 and better. So we are trying to detect Solaris 2.6 using 00109 // macro _XOPEN_UNIX which is not defined by <unistd.h> when XPG4v2 is not 00110 // supported. 00111 #define QT_SNPRINTF ::snprintf 00112 #define QT_VSNPRINTF ::vsnprintf 00113 #endif 00114 00115 00116 #endif // QPLATFORMDEFS_H