]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/mach/hurd/hppa/bits/sigcontext.h
Update.
[thirdparty/glibc.git] / sysdeps / mach / hurd / hppa / bits / sigcontext.h
1 /* Machine-dependent signal context structure for GNU Hurd. HPPA version.
2 Copyright (C) 1995, 1997 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public License as
7 published by the Free Software Foundation; either version 2 of the
8 License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with the GNU C Library; see the file COPYING.LIB. If not,
17 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. */
19
20 #ifndef _SIGNAL_H
21 # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
22 #endif
23
24 /* Signal handlers are actually called:
25 void handler (int sig, int code, struct sigcontext *scp); */
26
27 /* State of this thread when the signal was taken. */
28 struct sigcontext
29 {
30 /* These first members are machine-independent. */
31
32 int sc_onstack; /* Nonzero if running on sigstack. */
33 __sigset_t sc_mask; /* Blocked signals to restore. */
34
35 /* MiG reply port this thread is using. */
36 unsigned int sc_reply_port;
37
38 /* Port this thread is doing an interruptible RPC on. */
39 unsigned int sc_intr_port;
40
41 /* Error code associated with this signal (interpreted as `error_t'). */
42 int sc_error;
43
44 /* All following members are machine-dependent. The rest of this
45 structure is written to be laid out identically to a `struct
46 parisc_thread_state'. trampoline.c knows this, so it must be
47 changed if this changes. */
48
49 #define sc_parisc_thread_state sc_flags /* Beginning of correspondence. */
50 /* "General" registers $1..$31. */
51 unsigned int sc_regs[31];
52
53 /* Control registers. */
54 unsigned int sc_cr11; /* sar */
55 /* These four registers make up the PC. */
56 unsigned int iioq_head;
57 unsigned int iisq_head;
58 unsigned int iioq_tail;
59 unsigned int iisq_tail;
60 unsigned int sc_cr15;
61 unsigned int sc_cr19;
62 unsigned int sc_cr20;
63 unsigned int sc_cr21;
64 unsigned int sc_cr22; /* ipsw */
65 unsigned int sc_bsd_goto; /* unused */
66 unsigned int sc_sr4;
67 unsigned int sc_sr0;
68 unsigned int sc_sr1;
69 unsigned int sc_sr2;
70 unsigned int sc_sr3;
71 unsigned int sc_sr5;
72 unsigned int sc_sr6;
73 unsigned int sc_sr7;
74 unsigned int sc_cr0;
75 unsigned int sc_cr8;
76 unsigned int sc_cr9;
77 unsigned int sc_cr10; /* unused */
78 unsigned int sc_cr12;
79 unsigned int sc_cr13;
80 unsigned int sc_cr24; /* unused */
81 unsigned int sc_cr25; /* unused */
82 unsigned int sc_cr26; /* unused */
83 unsigned sc_mpsfu_high; /* unused */
84 unsigned sc_mpsfu_low; /* unused */
85 unsigned sc_mpsfu_ovflo; /* unused */
86 int sc_pad;
87
88 /* Floating point registers $f0..$f31. */
89 double sc_fpregs[32];
90 };