signal.h revision 1.16
11.16Smatt/* $NetBSD: signal.h,v 1.16 2012/02/06 02:14:13 matt Exp $ */ 21.1Scgd 31.1Scgd/* 41.1Scgd * Copyright (c) 1994, 1995 Carnegie-Mellon University. 51.1Scgd * All rights reserved. 61.1Scgd * 71.1Scgd * Author: Chris G. Demetriou 81.16Smatt * 91.1Scgd * Permission to use, copy, modify and distribute this software and 101.1Scgd * its documentation is hereby granted, provided that both the copyright 111.1Scgd * notice and this permission notice appear in all copies of the 121.1Scgd * software, derivative works or modified versions, and any portions 131.1Scgd * thereof, and that both notices appear in supporting documentation. 141.16Smatt * 151.16Smatt * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 161.16Smatt * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 171.1Scgd * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 181.16Smatt * 191.1Scgd * Carnegie Mellon requests users of this software to return to 201.1Scgd * 211.1Scgd * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 221.1Scgd * School of Computer Science 231.1Scgd * Carnegie Mellon University 241.1Scgd * Pittsburgh PA 15213-3890 251.1Scgd * 261.1Scgd * any improvements or extensions that they make and grant Carnegie the 271.1Scgd * rights to redistribute these changes. 281.1Scgd */ 291.1Scgd 301.1Scgd#ifndef _ALPHA_SIGNAL_H_ 311.1Scgd#define _ALPHA_SIGNAL_H_ 321.1Scgd 331.7Sbjh21#include <sys/featuretest.h> 341.7Sbjh21 351.1Scgdtypedef long sig_atomic_t; 361.8Sskd 371.13Sdrochner#ifdef _KERNEL_OPT 381.13Sdrochner#include "opt_compat_netbsd.h" 391.13Sdrochner#include "opt_compat_osf1.h" 401.13Sdrochner#endif 411.1Scgd 421.1Scgd/* 431.1Scgd * Information pushed on stack when a signal is delivered. 441.1Scgd * This is used by the kernel to restore state following 451.1Scgd * execution of the signal handler. It is also made available 461.1Scgd * to the handler to allow it to restore state properly if 471.1Scgd * a non-standard exit is performed. 481.1Scgd * 491.1Scgd * Note that sc_regs[] and sc_fpregs[]+sc_fpcr are inline 501.1Scgd * representations of 'struct reg' and 'struct fpreg', respectively. 511.1Scgd */ 521.13Sdrochner#if defined(_KERNEL) && (defined(COMPAT_13) || defined(COMPAT_OSF1)) 531.5Sthorpejstruct sigcontext13 { 541.5Sthorpej long sc_onstack; /* sigstack state to restore */ 551.5Sthorpej long sc_mask; /* signal mask to restore (old style) */ 561.5Sthorpej long sc_pc; /* pc to restore */ 571.1Scgd long sc_ps; /* ps to restore */ 581.1Scgd unsigned long sc_regs[32]; /* integer register set (see above) */ 591.1Scgd#define sc_sp sc_regs[R_SP] 601.1Scgd long sc_ownedfp; /* fp has been used */ 611.1Scgd unsigned long sc_fpregs[32]; /* FP register set (see above) */ 621.1Scgd unsigned long sc_fpcr; /* FP control register (see above) */ 631.1Scgd unsigned long sc_fp_control; /* FP software control word */ 641.1Scgd long sc_reserved[2]; /* XXX */ 651.1Scgd long sc_xxx[8]; /* XXX */ 661.5Sthorpej}; 671.13Sdrochner#endif /* _KERNEL && (COMPAT_13 || COMPAT_OSF1) */ 681.5Sthorpej 691.13Sdrochner#if defined(_LIBC) || (defined(_KERNEL) && (defined(COMPAT_16) || defined(COMPAT_OSF1))) 701.5Sthorpejstruct sigcontext { 711.5Sthorpej long sc_onstack; /* sigstack state to restore */ 721.5Sthorpej long __sc_mask13; /* signal mask to restore (old style) */ 731.5Sthorpej long sc_pc; /* pc to restore */ 741.5Sthorpej long sc_ps; /* ps to restore */ 751.5Sthorpej unsigned long sc_regs[32]; /* integer register set (see above) */ 761.5Sthorpej#define sc_sp sc_regs[R_SP] 771.5Sthorpej long sc_ownedfp; /* fp has been used */ 781.5Sthorpej unsigned long sc_fpregs[32]; /* FP register set (see above) */ 791.5Sthorpej unsigned long sc_fpcr; /* FP control register (see above) */ 801.5Sthorpej unsigned long sc_fp_control; /* FP software control word */ 811.5Sthorpej long sc_reserved[2]; /* XXX */ 821.5Sthorpej long sc_xxx[8]; /* XXX */ 831.5Sthorpej sigset_t sc_mask; /* signal mask to restore (new style) */ 841.1Scgd}; 851.13Sdrochner#endif /* _LIBC || _KERNEL */ 861.1Scgd 871.1Scgd#endif /* !_ALPHA_SIGNAL_H_*/ 88