diff options
-rw-r--r-- | System/Posix/Unistd.hsc | 4 | ||||
-rw-r--r-- | cbits/HsUnix.c | 8 | ||||
-rw-r--r-- | include/HsUnix.h | 5 |
3 files changed, 2 insertions, 15 deletions
diff --git a/System/Posix/Unistd.hsc b/System/Posix/Unistd.hsc index 3f2d115..7f79113 100644 --- a/System/Posix/Unistd.hsc +++ b/System/Posix/Unistd.hsc @@ -181,9 +181,9 @@ nanosleep nsecs = do else throwErrno "nanosleep" loop (fromIntegral tv_sec0 :: CTime) (fromIntegral tv_nsec0 :: CTime) -data CTimeSpec +data {-# CTYPE "struct timespec" #-} CTimeSpec -foreign import ccall safe "__hsunix_nanosleep" +foreign import capi safe "HsUnix.h nanosleep" c_nanosleep :: Ptr CTimeSpec -> Ptr CTimeSpec -> IO CInt #endif diff --git a/cbits/HsUnix.c b/cbits/HsUnix.c index 49f90e8..e54bccf 100644 --- a/cbits/HsUnix.c +++ b/cbits/HsUnix.c @@ -34,14 +34,6 @@ int __hsunix_getpwuid_r(uid_t uid, struct passwd *pw, char *buffer, } #endif -#ifdef HAVE_NANOSLEEP -// nanosleep is a macro on some platforms, so we need a wrapper: -int __hsunix_nanosleep(const struct timespec *rqtp, struct timespec *rmtp) -{ - return nanosleep(rqtp, rmtp); -} -#endif - #ifdef HAVE_PTSNAME // I cannot figure out how to make the definitions of the following // functions visible in <stdlib.h> on Linux. But these definitions diff --git a/include/HsUnix.h b/include/HsUnix.h index e276726..7b404fc 100644 --- a/include/HsUnix.h +++ b/include/HsUnix.h @@ -125,11 +125,6 @@ int __hsunix_getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **); #endif -#ifdef HAVE_NANOSLEEP -// nanosleep is a macro on some platforms, so we need a wrapper: -int __hsunix_nanosleep(const struct timespec *, struct timespec *); -#endif - #ifdef HAVE_PTSNAME // I cannot figure out how to make the definitions of the following // functions visible in <stdlib.h> on Linux. But these definitions |