Signals implemented

git-svn-id: svn://svn.cc65.org/cc65/trunk@2020 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-03-14 00:09:21 +00:00
parent 7e4ac2c687
commit 13ff905946
2 changed files with 14 additions and 16 deletions

View 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

View File

@ -42,12 +42,16 @@
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