X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fsignal%2Fraise.c;fp=functions%2Fsignal%2Fraise.c;h=29afe151f9b611d6fe0f5f776aa88b5f16496e60;hb=01c88bc38e78e9b2c47917b85b9b497187946e3c;hp=0000000000000000000000000000000000000000;hpb=3c7e677c7a6b43ce8bd12021e0af280f08009777;p=pdclib diff --git a/functions/signal/raise.c b/functions/signal/raise.c new file mode 100644 index 0000000..29afe15 --- /dev/null +++ b/functions/signal/raise.c @@ -0,0 +1,60 @@ +/* $Id$ */ + +/* raise( int ) + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#include + +#ifndef REGTEST + +extern void (*_PDCLIB_sigabrt)( int ); +extern void (*_PDCLIB_sigfpe)( int ); +extern void (*_PDCLIB_sigill)( int ); +extern void (*_PDCLIB_sigint)( int ); +extern void (*_PDCLIB_sigsegv)( int ); +extern void (*_PDCLIB_sigterm)( int ); + +int raise( int sig ) +{ + switch ( sig ) + { + case SIGABRT: + _PDCLIB_sigabrt( sig ); + break; + case SIGFPE: + _PDCLIB_sigfpe( sig ); + break; + case SIGILL: + _PDCLIB_sigill( sig ); + break; + case SIGINT: + _PDCLIB_sigint( sig ); + break; + case SIGSEGV: + _PDCLIB_sigsegv( sig ); + break; + case SIGTERM: + _PDCLIB_sigterm( sig ); + break; + default: + /* TODO: Implement. */ + break; + } + /* TODO: Implement. */ + return 0; +} + +#endif + +#ifdef TEST +#include <_PDCLIB_test.h> + +int main( void ) +{ + TESTCASE( NO_TESTDRIVER ); + return TEST_RESULTS; +} +#endif