ld-acess/libc - Implimenting functions required by ARM eabi
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / signals.c
1 /*
2  * AcessOS Basic C Library
3  * signals.c
4 */
5 //#include <acess/sys.h>
6 #include <stdlib.h>
7 #include <signal.h>
8 #include "lib.h"
9
10 // === CONSTANTS ===
11 #define NUM_SIGNALS     32
12
13 // === GLOBALS ===
14 sighandler_t    sighandlers[NUM_SIGNALS];
15
16 // === CODE ===
17 sighandler_t signal(int num, sighandler_t handler)
18 {
19         sighandler_t    prev;
20         if(num < 0 || num >= NUM_SIGNALS)       return NULL;
21         prev = sighandlers[num];
22         sighandlers[num] = handler;
23         return prev;
24 }
25
26 int raise(int signal)
27 {
28         if( signal < 0 || signal > NUM_SIGNALS )
29                 return 1;
30         switch(signal)
31         {
32         case SIGABRT:
33                 abort();
34                 break;
35         }
36         return 0;
37 }
38
39 void abort(void)
40 {
41         // raise(SIGABRT);
42         _exit(-1);
43 }

UCC git Repository :: git.ucc.asn.au