2 * Copyright 2002-2012 Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
5 #ifndef _ARCH_SIGNAL_H_
6 #define _ARCH_SIGNAL_H_
10 * Architecture-specific structure passed to signal handlers
15 typedef struct packed_fp_stack
{
16 unsigned char st0
[10];
17 unsigned char st1
[10];
18 unsigned char st2
[10];
19 unsigned char st3
[10];
20 unsigned char st4
[10];
21 unsigned char st5
[10];
22 unsigned char st6
[10];
23 unsigned char st7
[10];
26 typedef struct packed_mmx_regs
{
27 unsigned char mm0
[10];
28 unsigned char mm1
[10];
29 unsigned char mm2
[10];
30 unsigned char mm3
[10];
31 unsigned char mm4
[10];
32 unsigned char mm5
[10];
33 unsigned char mm6
[10];
34 unsigned char mm7
[10];
37 typedef struct old_extended_regs
{
38 unsigned short fp_control
;
39 unsigned short _reserved1
;
40 unsigned short fp_status
;
41 unsigned short _reserved2
;
42 unsigned short fp_tag
;
43 unsigned short _reserved3
;
46 unsigned short fp_opcode
;
47 unsigned long fp_datap
;
49 unsigned short _reserved4
;
56 typedef struct fp_stack
{
57 unsigned char st0
[10];
58 unsigned char _reserved_42_47
[6];
59 unsigned char st1
[10];
60 unsigned char _reserved_58_63
[6];
61 unsigned char st2
[10];
62 unsigned char _reserved_74_79
[6];
63 unsigned char st3
[10];
64 unsigned char _reserved_90_95
[6];
65 unsigned char st4
[10];
66 unsigned char _reserved_106_111
[6];
67 unsigned char st5
[10];
68 unsigned char _reserved_122_127
[6];
69 unsigned char st6
[10];
70 unsigned char _reserved_138_143
[6];
71 unsigned char st7
[10];
72 unsigned char _reserved_154_159
[6];
75 typedef struct mmx_regs
{
76 unsigned char mm0
[10];
77 unsigned char _reserved_42_47
[6];
78 unsigned char mm1
[10];
79 unsigned char _reserved_58_63
[6];
80 unsigned char mm2
[10];
81 unsigned char _reserved_74_79
[6];
82 unsigned char mm3
[10];
83 unsigned char _reserved_90_95
[6];
84 unsigned char mm4
[10];
85 unsigned char _reserved_106_111
[6];
86 unsigned char mm5
[10];
87 unsigned char _reserved_122_127
[6];
88 unsigned char mm6
[10];
89 unsigned char _reserved_138_143
[6];
90 unsigned char mm7
[10];
91 unsigned char _reserved_154_159
[6];
94 typedef struct xmmx_regs
{
95 unsigned char xmm0
[16];
96 unsigned char xmm1
[16];
97 unsigned char xmm2
[16];
98 unsigned char xmm3
[16];
99 unsigned char xmm4
[16];
100 unsigned char xmm5
[16];
101 unsigned char xmm6
[16];
102 unsigned char xmm7
[16];
105 typedef struct new_extended_regs
{
106 unsigned short fp_control
;
107 unsigned short fp_status
;
108 unsigned short fp_tag
;
109 unsigned short fp_opcode
;
110 unsigned long fp_eip
;
111 unsigned short fp_cs
;
112 unsigned short res_14_15
;
113 unsigned long fp_datap
;
114 unsigned short fp_ds
;
115 unsigned short _reserved_22_23
;
117 unsigned long _reserved_28_31
;
123 unsigned char _reserved_288_511
[224];
126 typedef struct extended_regs
{
128 old_extended_regs old_format
;
129 new_extended_regs new_format
;
131 unsigned long format
;
136 unsigned long eflags
;
142 unsigned long _reserved_1
;
149 #endif /* __INTEL__ */
151 #endif /* _ARCH_SIGNAL_H_ */