#ifndef _MSL_CSIGNAL
#define _MSL_CSIGNAL

#include <ansi_params.h>

#if !_MSL_USING_MW_C_HEADERS
    #include <signal.h>

    #if _MSL_PUT_THIRD_PARTY_C_IN_STD
        #include <msl_cpp_std_signal.h>
    #endif
#else

#ifndef RC_INVOKED

_MSL_BEGIN_NAMESPACE_STD
    _MSL_BEGIN_EXTERN_C

typedef int sig_atomic_t;
typedef void (* __signal_func_ptr)(int);

_MSL_IMP_EXP_C __signal_func_ptr _MSL_CDECL signal(int, __signal_func_ptr) _MSL_CANT_THROW;
_MSL_IMP_EXP_C int _MSL_CDECL raise(int) _MSL_CANT_THROW;

    #ifndef SIG_DFL
        #define SIG_DFL ((__std(__signal_func_ptr)) 0)
    #endif

    #ifndef SIG_IGN
        #define SIG_IGN ((__std(__signal_func_ptr)) 1)
    #endif

    #ifndef SIG_ERR
        #define SIG_ERR ((__std(__signal_func_ptr)) - 1)
    #endif

_MSL_END_EXTERN_C
    _MSL_END_NAMESPACE_STD

#ifndef SIGABRT
#define SIGABRT 1
#endif

#ifndef SIGFPE
#define SIGFPE 2
#endif

#ifndef SIGILL
#define SIGILL 3
#endif

#ifndef SIGINT
#define SIGINT 4
#endif

#ifndef SIGSEGV
#define SIGSEGV 5
#endif

#ifndef SIGTERM
#define SIGTERM 6
#endif

#ifndef SIGBREAK
#define SIGBREAK 7
#endif

#define __msl_signal_max 7

#endif

#endif

#endif
