/*  DO NOT EDIT THIS FILE.

    It has been auto-edited by fixincludes from:

	"fixinc/tests/inc/sys/signal.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */



#if defined( AIX_VOLATILE_CHECK )
typedef int sig_atomic_t;
#endif  /* AIX_VOLATILE_CHECK */


#if defined( SUN_SIGNAL_CHECK )
#ifdef __cplusplus
void	(*signal(...))(...);
#else
void	(*signal())();
#endif
#endif  /* SUN_SIGNAL_CHECK */


#if defined( SVR4_SIGHANDLER_TYPE_CHECK )
#define SIG_DFL (void (*)(int))0
#define SIG_IGN (void (*)(int))0

#endif  /* SVR4_SIGHANDLER_TYPE_CHECK */
