/**************************************************************************
*   Copyright 2000 Compaq Computer Corporation
*
*   COMPAQ Registered in U.S. Patent and Trademark Office.
*
*   Confidential computer software. Valid license from Compaq or authorized
*   sublicensor required for possession, use or copying. Consistent with
*   FAR 12.211 and 12.212, Commercial Computer Software, Computer Software
*   Documentation, and Technical Data for Commercial Items are licensed to
*   the U.S. Government under vendor's standard commercial license.
**************************************************************************/

#if !defined(_SYS_SIGNAL_H_) && !defined(_SIGNAL_H)
#if defined(__linux__)
#define _SIGNAL_H
#else
#define _SYS_SIGNAL_H_
#endif  /* __linux__  */
extern "C" {
namespace std {

#define	SIGINT	   2	/* interrupt, generated from terminal special char */
#define	SIGILL	   4	/* (*) illegal instruction (not reset when caught)*/
#define	SIGABRT    6	/* (*) abort process */
#define	SIGFPE	   8	/* (*) floating point exception */
#define	SIGSEGV	  11	/* (*) segmentation violation */
#define	SIGTERM	  15	/* software termination signal */

#define SIG_ERR		(void (*)())-1
#define	SIG_DFL		(void (*)())0
#define	SIG_IGN		(void (*)())1

typedef int sig_atomic_t;
extern int raise (int);
extern void (*signal(int, void (*) (int)))(int);


}  /* namespace std */

#ifdef __linux__
/*  Added for compatibility with the pthread.h header file */
#ifndef _SIGSET_H_types
# define _SIGSET_H_types	1
typedef int __sig_atomic_t;
# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
typedef struct
  {
    unsigned long int __val[_SIGSET_NWORDS];
  } __sigset_t;
#endif  /* _SIGSET_H_types */
#endif  /* __linux__ */
}  /* extern "C" */

#endif  /* _SYS_SIGNAL_H_ */
