[commit: base] ghc-7.6: FFI wrapper for kevent() (69446b1)

Ian Lynagh igloo at earth.li
Fri Oct 12 01:22:56 CEST 2012


Repository : ssh://darcs.haskell.org//srv/darcs/packages/base

On branch  : ghc-7.6

http://hackage.haskell.org/trac/ghc/changeset/69446b156881056b09bfd2008114eaaf7257ae5a

>---------------------------------------------------------------

commit 69446b156881056b09bfd2008114eaaf7257ae5a
Author: Iku Iwasa <iku.iwasa at gmail.com>
Date:   Sun Sep 16 16:36:52 2012 +0900

    FFI wrapper for kevent()

>---------------------------------------------------------------

 GHC/Event/KQueue.hsc |    2 +-
 include/HsBase.h     |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/GHC/Event/KQueue.hsc b/GHC/Event/KQueue.hsc
index 68aade3..78b770a 100644
--- a/GHC/Event/KQueue.hsc
+++ b/GHC/Event/KQueue.hsc
@@ -291,7 +291,7 @@ foreign import ccall safe "kevent64"
     c_kevent64 :: QueueFd -> Ptr Event -> CInt -> Ptr Event -> CInt -> CUInt
                -> Ptr TimeSpec -> IO CInt
 #elif defined(HAVE_KEVENT)
-foreign import ccall safe "kevent"
+foreign import ccall safe "__hscore_kevent"
     c_kevent :: QueueFd -> Ptr Event -> CInt -> Ptr Event -> CInt
              -> Ptr TimeSpec -> IO CInt
 #else
diff --git a/include/HsBase.h b/include/HsBase.h
index 74ab816..99efde5 100644
--- a/include/HsBase.h
+++ b/include/HsBase.h
@@ -155,6 +155,10 @@ extern HsWord64 getMonotonicUSec(void);
 #include <sys/select.h>
 #endif
 
+#if HAVE_SYS_EVENT_H
+#include <sys/event.h>
+#endif
+
 /* in inputReady.c */
 extern int fdReady(int fd, int write, int msecs, int isSock);
 
@@ -541,6 +545,15 @@ INLINE int __hscore_open(char *file, int how, mode_t mode) {
 }
 #endif
 
+#ifdef HAVE_KEVENT
+INLINE int __hscore_kevent(int kq, const struct kevent *changelist,
+                           size_t nchanges, struct kevent *eventlist,
+                           size_t nevents, const struct timespec *timeout) {
+	return kevent(kq, changelist, nchanges, eventlist, nevents, timeout);
+}
+#endif
+
+
 #if darwin_HOST_OS
 // You should not access _environ directly on Darwin in a bundle/shared library.
 // See #2458 and http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man7/environ.7.html





More information about the Cvs-libraries mailing list