X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fsignal%2Fraise.c;fp=functions%2Fsignal%2Fraise.c;h=29afe151f9b611d6fe0f5f776aa88b5f16496e60;hb=04b291d9265fa834c2acc5ae6d73a5259be004df;hp=0000000000000000000000000000000000000000;hpb=98efea478cdf77a71eea5b2e3706b0a6ab34e1c2;p=pdclib.old 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