signal.h revision 115084
1/* $FreeBSD: head/sys/ia64/include/signal.h 115084 2003-05-16 21:26:42Z marcel $ */
2/* From: NetBSD: signal.h,v 1.3 1997/04/06 08:47:43 cgd Exp */
3
4/*
5 * Copyright (c) 1994, 1995 Carnegie-Mellon University.
6 * All rights reserved.
7 *
8 * Author: Chris G. Demetriou
9 *
10 * Permission to use, copy, modify and distribute this software and
11 * its documentation is hereby granted, provided that both the copyright
12 * notice and this permission notice appear in all copies of the
13 * software, derivative works or modified versions, and any portions
14 * thereof, and that both notices appear in supporting documentation.
15 *
16 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
17 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
18 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
19 *
20 * Carnegie Mellon requests users of this software to return to
21 *
22 *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
23 *  School of Computer Science
24 *  Carnegie Mellon University
25 *  Pittsburgh PA 15213-3890
26 *
27 * any improvements or extensions that they make and grant Carnegie the
28 * rights to redistribute these changes.
29 */
30
31#ifndef _MACHINE_SIGNAL_H_
32#define	_MACHINE_SIGNAL_H_
33
34#include <sys/cdefs.h>
35#include <sys/_sigset.h>
36
37typedef long	sig_atomic_t;
38
39#if __BSD_VISIBLE
40/* portable macros for SIGFPE/ARITHTRAP */
41#define FPE_INTOVF	1	/* integer overflow */
42#define FPE_INTDIV	2	/* integer divide by zero */
43#define FPE_FLTDIV	3	/* floating point divide by zero */
44#define FPE_FLTOVF	4	/* floating point overflow */
45#define FPE_FLTUND	5	/* floating point underflow */
46#define FPE_FLTRES	6	/* floating point inexact result */
47#define FPE_FLTINV	7	/* invalid floating point operation */
48#define FPE_FLTSUB	8	/* subscript out of range */
49
50#define BUS_SEGM_FAULT	30	/* segment protection base */
51#endif
52
53#if __XSI_VISIBLE
54/* Minimum signal stack size. */
55#define MINSIGSTKSZ     (3072 * 4)
56#endif
57
58/*
59 * Information pushed on stack when a signal is delivered.
60 * This is used by the kernel to restore state following
61 * execution of the signal handler.  It is also made available
62 * to the handler to allow it to restore state properly if
63 * a non-standard exit is performed.
64 */
65
66#if __BSD_VISIBLE
67#include <machine/_regset.h>
68
69/*
70 * The sequence of the fields should match those in
71 * mcontext_t. Keep them in sync!
72 */
73struct sigcontext {
74	struct __sigset		sc_mask;	/* signal mask to restore */
75	unsigned long		sc_onstack;
76	unsigned long		sc_flags;
77	struct _special		sc_special;
78	struct _callee_saved	sc_preserved;
79	struct _callee_saved_fp	sc_preserved_fp;
80	struct _caller_saved	sc_scratch;
81	struct _caller_saved_fp	sc_scratch_fp;
82	struct _high_fp		sc_high_fp;
83};
84#endif /* __BSD_VISIBLE */
85
86#endif /* !_MACHINE_SIGNAL_H_*/
87