virtualTimerExpired, sigVTALRM,
cpuTimeLimitExceeded, sigXCPU,
fileSizeLimitExceeded, sigXFSZ,
+#if HAVE_SIGINFO
+ infoEvent, sigINFO,
+#endif
+#if HAVE_SIGWINCH
+ windowChange, sigWINCH,
+#endif
-- * Sending signals
raiseSignal,
sigVTALRM = (#const SIGVTALRM) :: CInt
sigXCPU = (#const SIGXCPU) :: CInt
sigXFSZ = (#const SIGXFSZ) :: CInt
+#if HAVE_SIGINFO
+sigINFO = (#const SIGINFO) :: CInt
+#endif
+#if HAVE_SIGWINCH
+sigWINCH = (#const SIGWINCH) :: CInt
+#endif
#else
foreign import ccall unsafe "__hsposix_SIGABRT" sigABRT :: CInt
foreign import ccall unsafe "__hsposix_SIGALRM" sigALRM :: CInt
foreign import ccall unsafe "__hsposix_SIGVTALRM" sigVTALRM :: CInt
foreign import ccall unsafe "__hsposix_SIGXCPU" sigXCPU :: CInt
foreign import ccall unsafe "__hsposix_SIGXFSZ" sigXFSZ :: CInt
+#if HAVE_SIGINFO
+foreign import ccall unsafe "__hsposix_SIGINFO" sigINFO :: CInt
+#endif
+#if HAVE_SIGWINCH
+foreign import ccall unsafe "__hsposix_SIGWINCH" sigWINCH :: CInt
+#endif
#endif /* __HUGS__ */
internalAbort ::Signal
fileSizeLimitExceeded :: Signal
fileSizeLimitExceeded = sigXFSZ
+#if HAVE_SIGINFO
+infoEvent :: Signal
+infoEvent = sigINFO
+#endif
+
+#if HAVE_SIGWINCH
+windowChange :: Signal
+windowChange = sigWINCH
+#endif
+
-- -----------------------------------------------------------------------------
-- Signal-related functions
INLINE int __hsposix_SIG_BLOCK() { return SIG_BLOCK; }
INLINE int __hsposix_SIG_UNBLOCK() { return SIG_UNBLOCK; }
INLINE int __hsposix_SIG_SETMASK() { return SIG_SETMASK; }
+
+#if HAVE_SIGINFO
+INLINE int __hsposix_SIGINFO() { return SIGINFO; }
+#endif
+#if HAVE_SIGWINCH
+INLINE int __hsposix_SIGWINCH() { return SIGWINCH; }
+#endif
#endif /* mingw32_TARGET_OS */
// These are wrapped because on some OSs (eg. Linux) they are