From 0e77a3817f45f0bcadc0665200b143abc1c7c4c0 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Tue, 2 Aug 2005 19:17:21 +0000 Subject: [PATCH] 2005-08-02 Shaun Jackman * libgloss/arm/syscalls.c (_exit): Call _kill with the second argument set to -1, which is an invalid signal number. (_kill): Comment and coding style changes only. (_raise): Remove function. --- libgloss/ChangeLog | 7 +++++++ libgloss/arm/syscalls.c | 39 ++++++++++++++------------------------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index 28e273d7d..f06bc7c0b 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,3 +1,10 @@ +2005-08-02 Shaun Jackman + + * libgloss/arm/syscalls.c (_exit): Call _kill with the second + argument set to -1, which is an invalid signal number. + (_kill): Comment and coding style changes only. + (_raise): Remove function. + 2005-07-19 Paul Brook * arm/crt0.S: Ensure doubleword stack alignment. diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c index f178049d9..a4f24c62e 100644 --- a/libgloss/arm/syscalls.c +++ b/libgloss/arm/syscalls.c @@ -22,7 +22,6 @@ int _rename _PARAMS ((const char *, const char *)); int _isatty _PARAMS ((int)); clock_t _times _PARAMS ((struct tms *)); int _gettimeofday _PARAMS ((struct timeval *, struct timezone *)); -int _raise _PARAMS ((int)); int _unlink _PARAMS ((const char *)); int _link _PARAMS ((void)); int _stat _PARAMS ((const char *, struct stat *)); @@ -434,30 +433,28 @@ _close (int file) return wrap (_swiclose (file)); } -void -_exit (int n) -{ - /* FIXME: return code is thrown away. */ - -#ifdef ARM_RDI_MONITOR - do_AngelSWI (AngelSWI_Reason_ReportException, - (void *) ADP_Stopped_ApplicationExit); -#else - asm ("swi %a0" :: "i" (SWI_Exit)); -#endif - n = n; -} - int -_kill (int n, int m) +_kill (int pid, int sig) { + (void)pid; (void)sig; #ifdef ARM_RDI_MONITOR + /* Note: Both arguments are thrown away. */ return do_AngelSWI (AngelSWI_Reason_ReportException, (void *) ADP_Stopped_ApplicationExit); #else asm ("swi %a0" :: "i" (SWI_Exit)); #endif - n = n; m = m; +} + +void +_exit (int status) +{ + /* There is only one SWI for both _exit and _kill. For _exit, call + the SWI with the second argument set to -1, an invalid value for + signum, so that the SWI handler can distinguish the two calls. + Note: The RDI implementation of _kill throws away both its + arguments. */ + _kill(status, -1); } int __attribute__((weak)) @@ -545,14 +542,6 @@ _unlink (const char *path) #endif } -int __attribute__((weak)) -_raise (int sig) -{ - (void)sig; - errno = ENOSYS; - return -1; -} - int _gettimeofday (struct timeval * tp, struct timezone * tzp) {