From a6c1ed4716cf02626ea035beb6dd4a921642ba80 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 3 Jan 2018 17:39:24 -0700 Subject: Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gba --- newlib/libc/signal/signal.c | 269 -------------------------------------------- 1 file changed, 269 deletions(-) delete mode 100644 newlib/libc/signal/signal.c (limited to 'newlib/libc/signal/signal.c') diff --git a/newlib/libc/signal/signal.c b/newlib/libc/signal/signal.c deleted file mode 100644 index fc52bba..0000000 --- a/newlib/libc/signal/signal.c +++ /dev/null @@ -1,269 +0,0 @@ -/* -FUNCTION -<>---specify handler subroutine for a signal - -INDEX - signal -INDEX - _signal_r -INDEX - raise -INDEX - _raise_r - -ANSI_SYNOPSIS - #include - void ( * signal(int <[sig]>, void(*<[func]>)(int)) )(int); - - void ( * _signal_r(void *<[reent]>, - int <[sig]>, void(*<[func]>)(int)) )(int); - - int raise (int <[sig]>); - - int _raise_r (void *<[reent]>, int <[sig]>); - -TRAD_SYNOPSIS - #include - char ( * signal(<[sig]>, <[func]>) )() - int <[sig]>; - char ( * <[func]> )(); - - char ( * _signal_r(<[reent]>, <[sig]>, <[func]>) )() - char *<[reent]>; - int <[sig]>; - char ( * <[func]> )(); - - int raise (<[sig]>)() - int <[sig]>; - - int _raise_r (<[reent]>, <[sig]>)() - char *<[reent]>; - int <[sig]>; - -DESCRIPTION -<> provide a simple signal/raise implementation for embedded -targets. - -<> allows you to request changed treatment for a particular -signal <[sig]>. You can use one of the predefined macros <> -(select system default handling) or <> (ignore this signal) -as the value of <[func]>; otherwise, <[func]> is a function pointer -that identifies a subroutine in your program as the handler for this signal. - -Some of the execution environment for signal handlers is -unpredictable; notably, the only library function required to work -correctly from within a signal handler is @code{signal} itself, and -only when used to redefine the handler for the current signal value. - -Static storage is likewise unreliable for signal handlers, with one -exception: if you declare a static storage location as `<>', then you may use that location in a signal handler to -store signal values. - -If your signal handler terminates using <> (or implicit -return), your program's execution continues at the point -where it was when the signal was raised (whether by your program -itself, or by an external event). Signal handlers can also -use functions such as <> and <> to avoid returning. - -<> sends the signal sig to the executing program. It returns zero if -successful, non-zero if unsuccessful. - -The alternate functions <<_signal_r, _raise_r>> are the reentrant versions. -The extra argument <[reent]> is a pointer to a reentrancy structure. - - -@c FIXME: do we have setjmp.h and assoc fns? - -RETURNS -If your request for a signal handler cannot be honored, the result is -<>; a specific error number is also recorded in <>. - -Otherwise, the result is the previous handler (a function pointer or -one of the predefined macros). - -PORTABILITY -ANSI C requires <>, <>. - -No supporting OS subroutines are required to link with <>, but -it will not have any useful effects, except for software generated signals, -without an operating system that can actually raise exceptions. -*/ - -/* - * signal.c - * Original Author: G. Haley - * - * signal associates the function pointed to by func with the signal sig. When - * a signal occurs, the value of func determines the action taken as follows: - * if func is SIG_DFL, the default handling for that signal will occur; if func - * is SIG_IGN, the signal will be ignored; otherwise, the default handling for - * the signal is restored (SIG_DFL), and the function func is called with sig - * as its argument. Returns the value of func for the previous call to signal - * for the signal sig, or SIG_ERR if the request fails. - */ - -/* _init_signal initialises the signal handlers for each signal. This function - is called by crt0 at program startup. */ - -#ifdef SIGNAL_PROVIDED - -int _dummy_simulated_signal; - -#else - -#include -#include -#include -#include -#include -#include <_syslist.h> - -int -_DEFUN (_init_signal_r, (ptr), - struct _reent *ptr) -{ - int i; - - if (ptr->_sig_func == NULL) - { - ptr->_sig_func = (_sig_func_ptr *)_malloc_r (ptr, sizeof (_sig_func_ptr) * NSIG); - if (ptr->_sig_func == NULL) - return -1; - - for (i = 0; i < NSIG; i++) - ptr->_sig_func[i] = SIG_DFL; - } - - return 0; -} - -_sig_func_ptr -_DEFUN (_signal_r, (ptr, sig, func), - struct _reent *ptr _AND - int sig _AND - _sig_func_ptr func) -{ - _sig_func_ptr old_func, *temp; - - if (sig < 0 || sig >= NSIG) - { - ptr->_errno = EINVAL; - return SIG_ERR; - } - - if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0) - return SIG_ERR; - - old_func = ptr->_sig_func[sig]; - ptr->_sig_func[sig] = func; - - return old_func; -} - -int -_raise_r (ptr, sig) - struct _reent *ptr; - int sig; -{ - _sig_func_ptr func; - int result = 0; - - if (sig < 0 || sig >= NSIG) - { - ptr->_errno = EINVAL; - return -1; - } - - if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0) - return -1; - - switch ((_POINTER_INT) ptr->_sig_func[sig]) - { - case SIG_DFL: - return _kill_r (ptr, _getpid_r (ptr), sig); - - case SIG_IGN: - break; - - case SIG_ERR: - ptr->_errno = EINVAL; - result = 1; - break; - - default: - func = ptr->_sig_func[sig]; - ptr->_sig_func[sig] = SIG_DFL; - func (sig); - break; - } - - return result; -} - -int -__sigtramp_r (ptr, sig) - struct _reent *ptr; - int sig; -{ - _sig_func_ptr func; - - if (sig < 0 || sig >= NSIG) - { - return -1; - } - - if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0) - return -1; - - switch ((_POINTER_INT) ptr->_sig_func[sig]) - { - case SIG_DFL: - return 1; - - case SIG_ERR: - return 2; - - case SIG_IGN: - return 3; - - default: - func = ptr->_sig_func[sig]; - ptr->_sig_func[sig] = SIG_DFL; - func (sig); - return 0; - } -} - -#ifndef _REENT_ONLY - -int -raise (sig) - int sig; -{ - return _raise_r (_REENT, sig); -} - -_sig_func_ptr -_DEFUN (signal, (sig, func), - int sig _AND - _sig_func_ptr func) -{ - return _signal_r (_REENT, sig, func); -} - -int -_init_signal () -{ - return _init_signal_r (_REENT); -} - -int -__sigtramp (int sig) -{ - return __sigtramp_r (_REENT, sig); -} - -#endif - -#endif /* !SIGNAL_PROVIDED */ -- cgit v1.2.3