diff options
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_unix.cpp | 4 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_unix_p.h | 4 | ||||
-rw-r--r-- | src/corelib/kernel/qfunctions_vxworks.cpp | 8 | ||||
-rw-r--r-- | src/corelib/kernel/qfunctions_vxworks.h | 48 | ||||
-rw-r--r-- | src/corelib/kernel/qsharedmemory_unix.cpp | 3 |
5 files changed, 57 insertions, 10 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index 7a0e9eb4ef..233b7eef2f 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -113,7 +113,7 @@ QEventDispatcherUNIXPrivate::QEventDispatcherUNIXPrivate() } #elif defined(Q_OS_VXWORKS) char name[20]; - qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdCurrent)); + qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdSelf())); // make sure there is no pipe with this name pipeDevDelete(name, true); @@ -159,7 +159,7 @@ QEventDispatcherUNIXPrivate::~QEventDispatcherUNIXPrivate() close(thread_pipe[0]); char name[20]; - qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdCurrent)); + qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdSelf())); pipeDevDelete(name, true); #else diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h index 0d91fda778..f1d33f9f09 100644 --- a/src/corelib/kernel/qeventdispatcher_unix_p.h +++ b/src/corelib/kernel/qeventdispatcher_unix_p.h @@ -61,9 +61,7 @@ #include "QtCore/qvarlengtharray.h" #include "private/qtimerinfo_unix_p.h" -#if defined(Q_OS_VXWORKS) -# include <sys/times.h> -#else +#if !defined(Q_OS_VXWORKS) # include <sys/time.h> # if (!defined(Q_OS_HPUX) || defined(__ia64)) && !defined(Q_OS_NACL) # include <sys/select.h> diff --git a/src/corelib/kernel/qfunctions_vxworks.cpp b/src/corelib/kernel/qfunctions_vxworks.cpp index 2174588757..8d25ad6a8d 100644 --- a/src/corelib/kernel/qfunctions_vxworks.cpp +++ b/src/corelib/kernel/qfunctions_vxworks.cpp @@ -46,7 +46,9 @@ #include "qplatformdefs.h" #include "qfunctions_vxworks.h" +#if defined(_WRS_KERNEL) #include <vmLib.h> +#endif #include <selectLib.h> #include <ioLib.h> @@ -92,7 +94,7 @@ int usleep(unsigned int usec) // gettimeofday() is declared, but is missing from the library // It IS however defined in the Curtis-Wright X11 libraries, so // we have to make the symbol 'weak' -#if defined(Q_CC_DIAB) +#if defined(Q_CC_DIAB) && !defined(VXWORKS_DKM) && !defined(VXWORKS_RTP) # pragma weak gettimeofday #endif int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) @@ -118,7 +120,11 @@ int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) // neither getpagesize() or sysconf(_SC_PAGESIZE) are available int getpagesize() { +#if defined(_WRS_KERNEL) return vmPageSizeGet(); +#else + return sysconf(_SC_PAGESIZE); +#endif } // symlinks are not supported (lstat is now just a call to stat - see qplatformdefs.h) diff --git a/src/corelib/kernel/qfunctions_vxworks.h b/src/corelib/kernel/qfunctions_vxworks.h index 6339903cff..6776a6a721 100644 --- a/src/corelib/kernel/qfunctions_vxworks.h +++ b/src/corelib/kernel/qfunctions_vxworks.h @@ -52,7 +52,11 @@ #include <errno.h> #include <sys/types.h> #include <sys/ioctl.h> +#if defined(_WRS_KERNEL) #include <sys/times.h> +#else +#include <sys/time.h> +#endif #include <sys/socket.h> #include <sys/stat.h> #include <sys/wait.h> @@ -61,6 +65,44 @@ #include <net/if.h> #endif +// VxWorks has public header mbuf.h which defines following variables for DKM. +// Let's undef those to because they overlap with Qt variable names- +// File mbuf.h is included in headers <netinet/in.h> <net/if.h>, so make sure +// that those are included before undef's. +#if defined(mbuf) +# undef mbuf +#endif +#if defined(m_data) +# undef m_data +#endif +#if defined(m_type) +# undef m_type +#endif +#if defined(m_next) +# undef m_next +#endif +#if defined(m_len) +# undef m_len +#endif +#if defined(m_flags) +# undef m_flags +#endif +#if defined(m_hdr) +# undef m_hdr +#endif +#if defined(m_ext) +# undef m_ext +#endif +#if defined(m_act) +# undef m_act +#endif +#if defined(m_nextpkt) +# undef m_nextpkt +#endif +#if defined(m_pkthdr) +# undef m_pkthdr +#endif + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -100,12 +142,16 @@ int rand_r(unsigned int * /*seedp*/); // no usleep() support int usleep(unsigned int); +#if defined(VXWORKS_DKM) || defined(VXWORKS_RTP) +int gettimeofday(struct timeval *, void *); +#else // gettimeofday() is declared, but is missing from the library. // It IS however defined in the Curtis-Wright X11 libraries, so // we have to make the symbol 'weak' int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) __attribute__((weak)); +#endif -// neither getpagesize() or sysconf(_SC_PAGESIZE) are available +// getpagesize() not available int getpagesize(); // symlinks are not supported (lstat is now just a call to stat - see qplatformdefs.h) diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp index 7f13e3b1a2..fdd73657a9 100644 --- a/src/corelib/kernel/qsharedmemory_unix.cpp +++ b/src/corelib/kernel/qsharedmemory_unix.cpp @@ -151,9 +151,6 @@ key_t QSharedMemoryPrivate::handle() */ int QSharedMemoryPrivate::createUnixKeyFile(const QString &fileName) { - if (QFile::exists(fileName)) - return 0; - int fd = qt_safe_open(QFile::encodeName(fileName).constData(), O_EXCL | O_CREAT | O_RDWR, 0640); if (-1 == fd) { |