]> git.sur5r.net Git - cc65/commitdiff
Signals implemented
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 14 Mar 2003 00:09:21 +0000 (00:09 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 14 Mar 2003 00:09:21 +0000 (00:09 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2020 b7a2c559-68d2-44c3-8de9-860c34a00d81

asminc/signal.inc
include/signal.h

index e07625e961ee5129a29d6d639e3cd4a37b709c90..ebde07e42fb4037a7e939b36e1197a25a157c75c 100644 (file)
@@ -34,9 +34,7 @@
 
 
 ; Standard signal handling functions
-SIG_ERR         = $FFFF
-SIG_IGN         = $0000
-SIG_DFL         = $0001
+SIG_ERR         = $0000
 
 ; Signal numbers
 SIGABRT         = 0
@@ -45,19 +43,15 @@ SIGILL          = 2
 SIGINT          = 3
 SIGSEGV         = 4
 SIGTERM         = 5
-SIGCOUNT        = 6             ; Number of signals (maximum: 8)
+SIGCOUNT        = 6             ; Number of signals
 
-; Signal masks
-SIGMASK_ABRT    = (1 .SHL SIGABRT)
-SIGMASK_FPE     = (1 .SHL SIGFPE)
-SIGMASK_ILL     = (1 .SHL SIGILL)
-SIGMASK_INT     = (1 .SHL SIGINT)
-SIGMASK_SEGV    = (1 .SHL SIGSEGV)
-SIGMASK_TERM    = (1 .SHL SIGTERM)
+; Table with signal handlers (asm code only)
+.global         sigtable
 
 ; Function declarations
+.global         __sig_ign
+.global         __sig_dfl
 .global         _signal
 .global         _raise
 
 
-
index e702366a2bb90bcba6e2da6d849d7b6d1c8dba69..884b0e8e43aaeb8b208a21766499b0b2eb80dba8 100644 (file)
 typedef unsigned char sig_atomic_t;
 
 /* Type of a signal handler */
-typedef void (*__sigfunc) (int);
+typedef void __fastcall__ (*__sigfunc) (int);
+
+/* Functions that implement SIG_IGN and SIG_DFL */
+void _sig_ign (int);
+void _sig_dfl (int);
 
 /* Standard signal handling functions */
-#define SIG_IGN         ((__sigfunc) 0x0000)
-#define SIG_ERR         ((__sigfunc) 0xFFFF)
-#define SIG_DFL         ((__sigfunc) 0xFFFE)
+#define SIG_DFL         _sig_dfl
+#define SIG_IGN         _sig_ign
+#define SIG_ERR         ((__sigfunc) 0x0000)
 
 /* Signal numbers */
 #define SIGABRT         0