From c01bd74591f8e7b5d9c90100a9f64b1c4bfb9238 Mon Sep 17 00:00:00 2001 From: panne Date: Wed, 4 Aug 1999 17:03:41 +0000 Subject: [PATCH] [project @ 1999-08-04 17:03:20 by panne] Some small pedantic changes to get function prototypes right. --- ghc/lib/posix/Posix.lhs | 1 + ghc/lib/posix/cbits/libposix.h | 4 ++-- ghc/lib/posix/cbits/signal.c | 14 ++++++++------ ghc/rts/Proftimer.c | 8 ++++++-- ghc/rts/Proftimer.h | 4 ++-- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/ghc/lib/posix/Posix.lhs b/ghc/lib/posix/Posix.lhs index b758e07..f3b3924 100644 --- a/ghc/lib/posix/Posix.lhs +++ b/ghc/lib/posix/Posix.lhs @@ -4,6 +4,7 @@ \section[Posix]{Haskell 1.3 POSIX bindings} \begin{code} +{-# OPTIONS -#include "../std/cbits/stgio.h" #-} module Posix ( module PosixDB, module PosixErr, diff --git a/ghc/lib/posix/cbits/libposix.h b/ghc/lib/posix/cbits/libposix.h index 1a5ce4b..02206d1 100644 --- a/ghc/lib/posix/cbits/libposix.h +++ b/ghc/lib/posix/cbits/libposix.h @@ -70,8 +70,8 @@ int copyenv (void); int _setenv (char *); int delenv (char *); int execvpe (char *, char **, char **); -void stg_sigaddset(sigset_t *newset, sigset_t *oldset, int signum); -void stg_sigdelset(sigset_t *newset, sigset_t *oldset, int signum); +void stg_sigaddset(StgByteArray newset, StgByteArray oldset, int signum); +void stg_sigdelset(StgByteArray newset, StgByteArray oldset, int signum); #define LIBPOSIX_H #endif diff --git a/ghc/lib/posix/cbits/signal.c b/ghc/lib/posix/cbits/signal.c index 9811306..e4d7112 100644 --- a/ghc/lib/posix/cbits/signal.c +++ b/ghc/lib/posix/cbits/signal.c @@ -7,21 +7,23 @@ * and it is not posible to do the inline (_casm_). These functions * aren't inline because it causes gcc to run out of registers on x86. * + * Ugly casting added by SUP to avoid C compiler warnings about + * incompatible pointer types. */ #include "Rts.h" #include "libposix.h" void -stg_sigaddset(sigset_t *newset, sigset_t *oldset, int signum) +stg_sigaddset(StgByteArray newset, StgByteArray oldset, int signum) { - *newset = *oldset; - sigaddset(newset, signum); + *((sigset_t *)newset) = *((sigset_t *)oldset); + sigaddset((sigset_t *)newset, signum); } void -stg_sigdelset(sigset_t *newset, sigset_t *oldset, int signum) +stg_sigdelset(StgByteArray newset, StgByteArray oldset, int signum) { - *newset = *oldset; - sigdelset(newset, signum); + *((sigset_t *)newset) = *((sigset_t *)oldset); + sigdelset((sigset_t *)newset, signum); } diff --git a/ghc/rts/Proftimer.c b/ghc/rts/Proftimer.c index 077dc3f..b93123a 100644 --- a/ghc/rts/Proftimer.c +++ b/ghc/rts/Proftimer.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Proftimer.c,v 1.3 1999/02/05 16:02:48 simonm Exp $ + * $Id: Proftimer.c,v 1.4 1999/08/04 17:03:41 panne Exp $ * * (c) The GHC Team, 1998-1999 * @@ -52,9 +52,13 @@ startProfTimer(void) } }; +/* For a small collection of signal handler prototypes, see + http://web2.airmail.net/sjbaker1/software/signal_collection.html */ + void -handleProfTick(void) +handleProfTick(int unused) { + (void)unused; /* no warnings, please */ CCS_TICK(CCCS); total_ticks++; }; diff --git a/ghc/rts/Proftimer.h b/ghc/rts/Proftimer.h index 915b0d0..1e1a090 100644 --- a/ghc/rts/Proftimer.h +++ b/ghc/rts/Proftimer.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Proftimer.h,v 1.2 1998/12/02 13:28:37 simonm Exp $ + * $Id: Proftimer.h,v 1.3 1999/08/04 17:03:41 panne Exp $ * * (c) The GHC Team, 1998 * @@ -10,5 +10,5 @@ extern void initProfTimer(nat ms); extern void stopProfTimer(void); extern void startProfTimer(void); -extern void handleProfTick(void); +extern void handleProfTick(int unused); -- 1.7.10.4