Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/modules/include/mach/i386/_structs.h

1/*
2 * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/*
29 * @OSF_COPYRIGHT@
30 */
31
32#ifndef_MACH_I386__STRUCTS_H_
33#define_MACH_I386__STRUCTS_H_
34
35/*
36 * i386 is the structure that is exported to user threads for
37 * use in status/mutate calls. This structure should never change.
38 *
39 */
40
41#if __DARWIN_UNIX03
42#define_STRUCT_X86_THREAD_STATE32struct __darwin_i386_thread_state
43_STRUCT_X86_THREAD_STATE32
44{
45 unsigned int__eax;
46 unsigned int__ebx;
47 unsigned int__ecx;
48 unsigned int__edx;
49 unsigned int__edi;
50 unsigned int__esi;
51 unsigned int__ebp;
52 unsigned int__esp;
53 unsigned int__ss;
54 unsigned int__eflags;
55 unsigned int__eip;
56 unsigned int__cs;
57 unsigned int__ds;
58 unsigned int__es;
59 unsigned int__fs;
60 unsigned int__gs;
61};
62#else /* !__DARWIN_UNIX03 */
63#define_STRUCT_X86_THREAD_STATE32struct i386_thread_state
64_STRUCT_X86_THREAD_STATE32
65{
66 unsigned inteax;
67 unsigned intebx;
68 unsigned intecx;
69 unsigned intedx;
70 unsigned intedi;
71 unsigned intesi;
72 unsigned intebp;
73 unsigned intesp;
74 unsigned intss;
75 unsigned inteflags;
76 unsigned inteip;
77 unsigned intcs;
78 unsigned intds;
79 unsigned intes;
80 unsigned intfs;
81 unsigned intgs;
82};
83#endif /* !__DARWIN_UNIX03 */
84
85/* This structure should be double-word aligned for performance */
86
87#if __DARWIN_UNIX03
88#define _STRUCT_FP_CONTROLstruct __darwin_fp_control
89_STRUCT_FP_CONTROL
90{
91 unsigned short__invalid:1,
92 __denorm:1,
93__zdiv:1,
94__ovrfl:1,
95__undfl:1,
96__precis:1,
97:2,
98__pc:2,
99#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
100#define FP_PREC_24B0
101#defineFP_PREC_53B2
102#define FP_PREC_64B3
103#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
104__rc:2,
105#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
106#define FP_RND_NEAR0
107#define FP_RND_DOWN1
108#define FP_RND_UP2
109#define FP_CHOP3
110#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
111/*inf*/:1,
112:3;
113};
114typedef _STRUCT_FP_CONTROL__darwin_fp_control_t;
115#else /* !__DARWIN_UNIX03 */
116#define _STRUCT_FP_CONTROLstruct fp_control
117_STRUCT_FP_CONTROL
118{
119 unsigned shortinvalid:1,
120 denorm:1,
121zdiv:1,
122ovrfl:1,
123undfl:1,
124precis:1,
125:2,
126pc:2,
127#define FP_PREC_24B0
128#defineFP_PREC_53B2
129#define FP_PREC_64B3
130rc:2,
131#define FP_RND_NEAR0
132#define FP_RND_DOWN1
133#define FP_RND_UP2
134#define FP_CHOP3
135/*inf*/:1,
136:3;
137};
138typedef _STRUCT_FP_CONTROLfp_control_t;
139#endif /* !__DARWIN_UNIX03 */
140
141/*
142 * Status word.
143 */
144
145#if __DARWIN_UNIX03
146#define _STRUCT_FP_STATUSstruct __darwin_fp_status
147_STRUCT_FP_STATUS
148{
149 unsigned short__invalid:1,
150 __denorm:1,
151__zdiv:1,
152__ovrfl:1,
153__undfl:1,
154__precis:1,
155__stkflt:1,
156__errsumm:1,
157__c0:1,
158__c1:1,
159__c2:1,
160__tos:3,
161__c3:1,
162__busy:1;
163};
164typedef _STRUCT_FP_STATUS__darwin_fp_status_t;
165#else /* !__DARWIN_UNIX03 */
166#define _STRUCT_FP_STATUSstruct fp_status
167_STRUCT_FP_STATUS
168{
169 unsigned shortinvalid:1,
170 denorm:1,
171zdiv:1,
172ovrfl:1,
173undfl:1,
174precis:1,
175stkflt:1,
176errsumm:1,
177c0:1,
178c1:1,
179c2:1,
180tos:3,
181c3:1,
182busy:1;
183};
184typedef _STRUCT_FP_STATUSfp_status_t;
185#endif /* !__DARWIN_UNIX03 */
186
187/* defn of 80bit x87 FPU or MMX register */
188
189#if __DARWIN_UNIX03
190#define _STRUCT_MMST_REGstruct __darwin_mmst_reg
191_STRUCT_MMST_REG
192{
193char__mmst_reg[10];
194char__mmst_rsrv[6];
195};
196#else /* !__DARWIN_UNIX03 */
197#define _STRUCT_MMST_REGstruct mmst_reg
198_STRUCT_MMST_REG
199{
200charmmst_reg[10];
201charmmst_rsrv[6];
202};
203#endif /* !__DARWIN_UNIX03 */
204
205
206/* defn of 128 bit XMM regs */
207
208#if __DARWIN_UNIX03
209#define _STRUCT_XMM_REGstruct __darwin_xmm_reg
210_STRUCT_XMM_REG
211{
212char__xmm_reg[16];
213};
214#else /* !__DARWIN_UNIX03 */
215#define _STRUCT_XMM_REGstruct xmm_reg
216_STRUCT_XMM_REG
217{
218charxmm_reg[16];
219};
220#endif /* !__DARWIN_UNIX03 */
221
222/*
223 * Floating point state.
224 */
225
226#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
227#define FP_STATE_BYTES512/* number of chars worth of data from fpu_fcw */
228#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
229
230#if __DARWIN_UNIX03
231#define_STRUCT_X86_FLOAT_STATE32struct __darwin_i386_float_state
232_STRUCT_X86_FLOAT_STATE32
233{
234int __fpu_reserved[2];
235_STRUCT_FP_CONTROL__fpu_fcw;/* x87 FPU control word */
236_STRUCT_FP_STATUS__fpu_fsw;/* x87 FPU status word */
237__uint8_t__fpu_ftw;/* x87 FPU tag word */
238__uint8_t__fpu_rsrv1;/* reserved */
239__uint16_t__fpu_fop;/* x87 FPU Opcode */
240__uint32_t__fpu_ip;/* x87 FPU Instruction Pointer offset */
241__uint16_t__fpu_cs;/* x87 FPU Instruction Pointer Selector */
242__uint16_t__fpu_rsrv2;/* reserved */
243__uint32_t__fpu_dp;/* x87 FPU Instruction Operand(Data) Pointer offset */
244__uint16_t__fpu_ds;/* x87 FPU Instruction Operand(Data) Pointer Selector */
245__uint16_t__fpu_rsrv3;/* reserved */
246__uint32_t__fpu_mxcsr;/* MXCSR Register state */
247__uint32_t__fpu_mxcsrmask;/* MXCSR mask */
248_STRUCT_MMST_REG__fpu_stmm0;/* ST0/MM0 */
249_STRUCT_MMST_REG__fpu_stmm1;/* ST1/MM1 */
250_STRUCT_MMST_REG__fpu_stmm2;/* ST2/MM2 */
251_STRUCT_MMST_REG__fpu_stmm3;/* ST3/MM3 */
252_STRUCT_MMST_REG__fpu_stmm4;/* ST4/MM4 */
253_STRUCT_MMST_REG__fpu_stmm5;/* ST5/MM5 */
254_STRUCT_MMST_REG__fpu_stmm6;/* ST6/MM6 */
255_STRUCT_MMST_REG__fpu_stmm7;/* ST7/MM7 */
256_STRUCT_XMM_REG__fpu_xmm0;/* XMM 0 */
257_STRUCT_XMM_REG__fpu_xmm1;/* XMM 1 */
258_STRUCT_XMM_REG__fpu_xmm2;/* XMM 2 */
259_STRUCT_XMM_REG__fpu_xmm3;/* XMM 3 */
260_STRUCT_XMM_REG__fpu_xmm4;/* XMM 4 */
261_STRUCT_XMM_REG__fpu_xmm5;/* XMM 5 */
262_STRUCT_XMM_REG__fpu_xmm6;/* XMM 6 */
263_STRUCT_XMM_REG__fpu_xmm7;/* XMM 7 */
264char__fpu_rsrv4[14*16];/* reserved */
265int __fpu_reserved1;
266};
267
268#define_STRUCT_X86_AVX_STATE32struct __darwin_i386_avx_state
269_STRUCT_X86_AVX_STATE32
270{
271int __fpu_reserved[2];
272_STRUCT_FP_CONTROL__fpu_fcw;/* x87 FPU control word */
273_STRUCT_FP_STATUS__fpu_fsw;/* x87 FPU status word */
274__uint8_t__fpu_ftw;/* x87 FPU tag word */
275__uint8_t__fpu_rsrv1;/* reserved */
276__uint16_t__fpu_fop;/* x87 FPU Opcode */
277__uint32_t__fpu_ip;/* x87 FPU Instruction Pointer offset */
278__uint16_t__fpu_cs;/* x87 FPU Instruction Pointer Selector */
279__uint16_t__fpu_rsrv2;/* reserved */
280__uint32_t__fpu_dp;/* x87 FPU Instruction Operand(Data) Pointer offset */
281__uint16_t__fpu_ds;/* x87 FPU Instruction Operand(Data) Pointer Selector */
282__uint16_t__fpu_rsrv3;/* reserved */
283__uint32_t__fpu_mxcsr;/* MXCSR Register state */
284__uint32_t__fpu_mxcsrmask;/* MXCSR mask */
285_STRUCT_MMST_REG__fpu_stmm0;/* ST0/MM0 */
286_STRUCT_MMST_REG__fpu_stmm1;/* ST1/MM1 */
287_STRUCT_MMST_REG__fpu_stmm2;/* ST2/MM2 */
288_STRUCT_MMST_REG__fpu_stmm3;/* ST3/MM3 */
289_STRUCT_MMST_REG__fpu_stmm4;/* ST4/MM4 */
290_STRUCT_MMST_REG__fpu_stmm5;/* ST5/MM5 */
291_STRUCT_MMST_REG__fpu_stmm6;/* ST6/MM6 */
292_STRUCT_MMST_REG__fpu_stmm7;/* ST7/MM7 */
293_STRUCT_XMM_REG__fpu_xmm0;/* XMM 0 */
294_STRUCT_XMM_REG__fpu_xmm1;/* XMM 1 */
295_STRUCT_XMM_REG__fpu_xmm2;/* XMM 2 */
296_STRUCT_XMM_REG__fpu_xmm3;/* XMM 3 */
297_STRUCT_XMM_REG__fpu_xmm4;/* XMM 4 */
298_STRUCT_XMM_REG__fpu_xmm5;/* XMM 5 */
299_STRUCT_XMM_REG__fpu_xmm6;/* XMM 6 */
300_STRUCT_XMM_REG__fpu_xmm7;/* XMM 7 */
301char__fpu_rsrv4[14*16];/* reserved */
302int __fpu_reserved1;
303char__avx_reserved1[64];
304_STRUCT_XMM_REG__fpu_ymmh0;/* YMMH 0 */
305_STRUCT_XMM_REG__fpu_ymmh1;/* YMMH 1 */
306_STRUCT_XMM_REG__fpu_ymmh2;/* YMMH 2 */
307_STRUCT_XMM_REG__fpu_ymmh3;/* YMMH 3 */
308_STRUCT_XMM_REG__fpu_ymmh4;/* YMMH 4 */
309_STRUCT_XMM_REG__fpu_ymmh5;/* YMMH 5 */
310_STRUCT_XMM_REG__fpu_ymmh6;/* YMMH 6 */
311_STRUCT_XMM_REG__fpu_ymmh7;/* YMMH 7 */
312};
313
314#else /* !__DARWIN_UNIX03 */
315#define_STRUCT_X86_FLOAT_STATE32struct i386_float_state
316_STRUCT_X86_FLOAT_STATE32
317{
318int fpu_reserved[2];
319_STRUCT_FP_CONTROLfpu_fcw;/* x87 FPU control word */
320_STRUCT_FP_STATUSfpu_fsw;/* x87 FPU status word */
321__uint8_tfpu_ftw;/* x87 FPU tag word */
322__uint8_tfpu_rsrv1;/* reserved */
323__uint16_tfpu_fop;/* x87 FPU Opcode */
324__uint32_tfpu_ip;/* x87 FPU Instruction Pointer offset */
325__uint16_tfpu_cs;/* x87 FPU Instruction Pointer Selector */
326__uint16_tfpu_rsrv2;/* reserved */
327__uint32_tfpu_dp;/* x87 FPU Instruction Operand(Data) Pointer offset */
328__uint16_tfpu_ds;/* x87 FPU Instruction Operand(Data) Pointer Selector */
329__uint16_tfpu_rsrv3;/* reserved */
330__uint32_tfpu_mxcsr;/* MXCSR Register state */
331__uint32_tfpu_mxcsrmask;/* MXCSR mask */
332_STRUCT_MMST_REGfpu_stmm0;/* ST0/MM0 */
333_STRUCT_MMST_REGfpu_stmm1;/* ST1/MM1 */
334_STRUCT_MMST_REGfpu_stmm2;/* ST2/MM2 */
335_STRUCT_MMST_REGfpu_stmm3;/* ST3/MM3 */
336_STRUCT_MMST_REGfpu_stmm4;/* ST4/MM4 */
337_STRUCT_MMST_REGfpu_stmm5;/* ST5/MM5 */
338_STRUCT_MMST_REGfpu_stmm6;/* ST6/MM6 */
339_STRUCT_MMST_REGfpu_stmm7;/* ST7/MM7 */
340_STRUCT_XMM_REGfpu_xmm0;/* XMM 0 */
341_STRUCT_XMM_REGfpu_xmm1;/* XMM 1 */
342_STRUCT_XMM_REGfpu_xmm2;/* XMM 2 */
343_STRUCT_XMM_REGfpu_xmm3;/* XMM 3 */
344_STRUCT_XMM_REGfpu_xmm4;/* XMM 4 */
345_STRUCT_XMM_REGfpu_xmm5;/* XMM 5 */
346_STRUCT_XMM_REGfpu_xmm6;/* XMM 6 */
347_STRUCT_XMM_REGfpu_xmm7;/* XMM 7 */
348charfpu_rsrv4[14*16];/* reserved */
349int fpu_reserved1;
350};
351
352#define_STRUCT_X86_AVX_STATE32struct i386_avx_state
353_STRUCT_X86_AVX_STATE32
354{
355int fpu_reserved[2];
356_STRUCT_FP_CONTROLfpu_fcw;/* x87 FPU control word */
357_STRUCT_FP_STATUSfpu_fsw;/* x87 FPU status word */
358__uint8_tfpu_ftw;/* x87 FPU tag word */
359__uint8_tfpu_rsrv1;/* reserved */
360__uint16_tfpu_fop;/* x87 FPU Opcode */
361__uint32_tfpu_ip;/* x87 FPU Instruction Pointer offset */
362__uint16_tfpu_cs;/* x87 FPU Instruction Pointer Selector */
363__uint16_tfpu_rsrv2;/* reserved */
364__uint32_tfpu_dp;/* x87 FPU Instruction Operand(Data) Pointer offset */
365__uint16_tfpu_ds;/* x87 FPU Instruction Operand(Data) Pointer Selector */
366__uint16_tfpu_rsrv3;/* reserved */
367__uint32_tfpu_mxcsr;/* MXCSR Register state */
368__uint32_tfpu_mxcsrmask;/* MXCSR mask */
369_STRUCT_MMST_REGfpu_stmm0;/* ST0/MM0 */
370_STRUCT_MMST_REGfpu_stmm1;/* ST1/MM1 */
371_STRUCT_MMST_REGfpu_stmm2;/* ST2/MM2 */
372_STRUCT_MMST_REGfpu_stmm3;/* ST3/MM3 */
373_STRUCT_MMST_REGfpu_stmm4;/* ST4/MM4 */
374_STRUCT_MMST_REGfpu_stmm5;/* ST5/MM5 */
375_STRUCT_MMST_REGfpu_stmm6;/* ST6/MM6 */
376_STRUCT_MMST_REGfpu_stmm7;/* ST7/MM7 */
377_STRUCT_XMM_REGfpu_xmm0;/* XMM 0 */
378_STRUCT_XMM_REGfpu_xmm1;/* XMM 1 */
379_STRUCT_XMM_REGfpu_xmm2;/* XMM 2 */
380_STRUCT_XMM_REGfpu_xmm3;/* XMM 3 */
381_STRUCT_XMM_REGfpu_xmm4;/* XMM 4 */
382_STRUCT_XMM_REGfpu_xmm5;/* XMM 5 */
383_STRUCT_XMM_REGfpu_xmm6;/* XMM 6 */
384_STRUCT_XMM_REGfpu_xmm7;/* XMM 7 */
385charfpu_rsrv4[14*16];/* reserved */
386int fpu_reserved1;
387char__avx_reserved1[64];
388_STRUCT_XMM_REG__fpu_ymmh0;/* YMMH 0 */
389_STRUCT_XMM_REG__fpu_ymmh1;/* YMMH 1 */
390_STRUCT_XMM_REG__fpu_ymmh2;/* YMMH 2 */
391_STRUCT_XMM_REG__fpu_ymmh3;/* YMMH 3 */
392_STRUCT_XMM_REG__fpu_ymmh4;/* YMMH 4 */
393_STRUCT_XMM_REG__fpu_ymmh5;/* YMMH 5 */
394_STRUCT_XMM_REG__fpu_ymmh6;/* YMMH 6 */
395_STRUCT_XMM_REG__fpu_ymmh7;/* YMMH 7 */
396};
397
398#endif /* !__DARWIN_UNIX03 */
399
400#if __DARWIN_UNIX03
401#define _STRUCT_X86_EXCEPTION_STATE32struct __darwin_i386_exception_state
402_STRUCT_X86_EXCEPTION_STATE32
403{
404__uint16_t__trapno;
405__uint16_t__cpu;
406__uint32_t__err;
407__uint32_t__faultvaddr;
408};
409#else /* !__DARWIN_UNIX03 */
410#define _STRUCT_X86_EXCEPTION_STATE32struct i386_exception_state
411_STRUCT_X86_EXCEPTION_STATE32
412{
413__uint16_ttrapno;
414__uint16_tcpu;
415__uint32_terr;
416__uint32_tfaultvaddr;
417};
418#endif /* !__DARWIN_UNIX03 */
419
420#if __DARWIN_UNIX03
421#define _STRUCT_X86_DEBUG_STATE32struct __darwin_x86_debug_state32
422_STRUCT_X86_DEBUG_STATE32
423{
424unsigned int__dr0;
425unsigned int__dr1;
426unsigned int__dr2;
427unsigned int__dr3;
428unsigned int__dr4;
429unsigned int__dr5;
430unsigned int__dr6;
431unsigned int__dr7;
432};
433#else /* !__DARWIN_UNIX03 */
434#define _STRUCT_X86_DEBUG_STATE32struct x86_debug_state32
435_STRUCT_X86_DEBUG_STATE32
436{
437unsigned intdr0;
438unsigned intdr1;
439unsigned intdr2;
440unsigned intdr3;
441unsigned intdr4;
442unsigned intdr5;
443unsigned intdr6;
444unsigned intdr7;
445};
446#endif /* !__DARWIN_UNIX03 */
447
448/*
449 * 64 bit versions of the above
450 */
451
452#if __DARWIN_UNIX03
453#define_STRUCT_X86_THREAD_STATE64struct __darwin_x86_thread_state64
454_STRUCT_X86_THREAD_STATE64
455{
456__uint64_t__rax;
457__uint64_t__rbx;
458__uint64_t__rcx;
459__uint64_t__rdx;
460__uint64_t__rdi;
461__uint64_t__rsi;
462__uint64_t__rbp;
463__uint64_t__rsp;
464__uint64_t__r8;
465__uint64_t__r9;
466__uint64_t__r10;
467__uint64_t__r11;
468__uint64_t__r12;
469__uint64_t__r13;
470__uint64_t__r14;
471__uint64_t__r15;
472__uint64_t__rip;
473__uint64_t__rflags;
474__uint64_t__cs;
475__uint64_t__fs;
476__uint64_t__gs;
477};
478#else /* !__DARWIN_UNIX03 */
479#define_STRUCT_X86_THREAD_STATE64struct x86_thread_state64
480_STRUCT_X86_THREAD_STATE64
481{
482__uint64_trax;
483__uint64_trbx;
484__uint64_trcx;
485__uint64_trdx;
486__uint64_trdi;
487__uint64_trsi;
488__uint64_trbp;
489__uint64_trsp;
490__uint64_tr8;
491__uint64_tr9;
492__uint64_tr10;
493__uint64_tr11;
494__uint64_tr12;
495__uint64_tr13;
496__uint64_tr14;
497__uint64_tr15;
498__uint64_trip;
499__uint64_trflags;
500__uint64_tcs;
501__uint64_tfs;
502__uint64_tgs;
503};
504#endif /* !__DARWIN_UNIX03 */
505
506
507#if __DARWIN_UNIX03
508#define_STRUCT_X86_FLOAT_STATE64struct __darwin_x86_float_state64
509_STRUCT_X86_FLOAT_STATE64
510{
511int __fpu_reserved[2];
512_STRUCT_FP_CONTROL__fpu_fcw;/* x87 FPU control word */
513_STRUCT_FP_STATUS__fpu_fsw;/* x87 FPU status word */
514__uint8_t__fpu_ftw;/* x87 FPU tag word */
515__uint8_t__fpu_rsrv1;/* reserved */
516__uint16_t__fpu_fop;/* x87 FPU Opcode */
517
518/* x87 FPU Instruction Pointer */
519__uint32_t__fpu_ip;/* offset */
520__uint16_t__fpu_cs;/* Selector */
521
522__uint16_t__fpu_rsrv2;/* reserved */
523
524/* x87 FPU Instruction Operand(Data) Pointer */
525__uint32_t__fpu_dp;/* offset */
526__uint16_t__fpu_ds;/* Selector */
527
528__uint16_t__fpu_rsrv3;/* reserved */
529__uint32_t__fpu_mxcsr;/* MXCSR Register state */
530__uint32_t__fpu_mxcsrmask;/* MXCSR mask */
531_STRUCT_MMST_REG__fpu_stmm0;/* ST0/MM0 */
532_STRUCT_MMST_REG__fpu_stmm1;/* ST1/MM1 */
533_STRUCT_MMST_REG__fpu_stmm2;/* ST2/MM2 */
534_STRUCT_MMST_REG__fpu_stmm3;/* ST3/MM3 */
535_STRUCT_MMST_REG__fpu_stmm4;/* ST4/MM4 */
536_STRUCT_MMST_REG__fpu_stmm5;/* ST5/MM5 */
537_STRUCT_MMST_REG__fpu_stmm6;/* ST6/MM6 */
538_STRUCT_MMST_REG__fpu_stmm7;/* ST7/MM7 */
539_STRUCT_XMM_REG__fpu_xmm0;/* XMM 0 */
540_STRUCT_XMM_REG__fpu_xmm1;/* XMM 1 */
541_STRUCT_XMM_REG__fpu_xmm2;/* XMM 2 */
542_STRUCT_XMM_REG__fpu_xmm3;/* XMM 3 */
543_STRUCT_XMM_REG__fpu_xmm4;/* XMM 4 */
544_STRUCT_XMM_REG__fpu_xmm5;/* XMM 5 */
545_STRUCT_XMM_REG__fpu_xmm6;/* XMM 6 */
546_STRUCT_XMM_REG__fpu_xmm7;/* XMM 7 */
547_STRUCT_XMM_REG__fpu_xmm8;/* XMM 8 */
548_STRUCT_XMM_REG__fpu_xmm9;/* XMM 9 */
549_STRUCT_XMM_REG__fpu_xmm10;/* XMM 10 */
550_STRUCT_XMM_REG__fpu_xmm11;/* XMM 11 */
551_STRUCT_XMM_REG__fpu_xmm12;/* XMM 12 */
552_STRUCT_XMM_REG__fpu_xmm13;/* XMM 13 */
553_STRUCT_XMM_REG__fpu_xmm14;/* XMM 14 */
554_STRUCT_XMM_REG__fpu_xmm15;/* XMM 15 */
555char__fpu_rsrv4[6*16];/* reserved */
556int __fpu_reserved1;
557};
558
559#define_STRUCT_X86_AVX_STATE64struct __darwin_x86_avx_state64
560_STRUCT_X86_AVX_STATE64
561{
562int __fpu_reserved[2];
563_STRUCT_FP_CONTROL__fpu_fcw;/* x87 FPU control word */
564_STRUCT_FP_STATUS__fpu_fsw;/* x87 FPU status word */
565__uint8_t__fpu_ftw;/* x87 FPU tag word */
566__uint8_t__fpu_rsrv1;/* reserved */
567__uint16_t__fpu_fop;/* x87 FPU Opcode */
568
569/* x87 FPU Instruction Pointer */
570__uint32_t__fpu_ip;/* offset */
571__uint16_t__fpu_cs;/* Selector */
572
573__uint16_t__fpu_rsrv2;/* reserved */
574
575/* x87 FPU Instruction Operand(Data) Pointer */
576__uint32_t__fpu_dp;/* offset */
577__uint16_t__fpu_ds;/* Selector */
578
579__uint16_t__fpu_rsrv3;/* reserved */
580__uint32_t__fpu_mxcsr;/* MXCSR Register state */
581__uint32_t__fpu_mxcsrmask;/* MXCSR mask */
582_STRUCT_MMST_REG__fpu_stmm0;/* ST0/MM0 */
583_STRUCT_MMST_REG__fpu_stmm1;/* ST1/MM1 */
584_STRUCT_MMST_REG__fpu_stmm2;/* ST2/MM2 */
585_STRUCT_MMST_REG__fpu_stmm3;/* ST3/MM3 */
586_STRUCT_MMST_REG__fpu_stmm4;/* ST4/MM4 */
587_STRUCT_MMST_REG__fpu_stmm5;/* ST5/MM5 */
588_STRUCT_MMST_REG__fpu_stmm6;/* ST6/MM6 */
589_STRUCT_MMST_REG__fpu_stmm7;/* ST7/MM7 */
590_STRUCT_XMM_REG__fpu_xmm0;/* XMM 0 */
591_STRUCT_XMM_REG__fpu_xmm1;/* XMM 1 */
592_STRUCT_XMM_REG__fpu_xmm2;/* XMM 2 */
593_STRUCT_XMM_REG__fpu_xmm3;/* XMM 3 */
594_STRUCT_XMM_REG__fpu_xmm4;/* XMM 4 */
595_STRUCT_XMM_REG__fpu_xmm5;/* XMM 5 */
596_STRUCT_XMM_REG__fpu_xmm6;/* XMM 6 */
597_STRUCT_XMM_REG__fpu_xmm7;/* XMM 7 */
598_STRUCT_XMM_REG__fpu_xmm8;/* XMM 8 */
599_STRUCT_XMM_REG__fpu_xmm9;/* XMM 9 */
600_STRUCT_XMM_REG__fpu_xmm10;/* XMM 10 */
601_STRUCT_XMM_REG__fpu_xmm11;/* XMM 11 */
602_STRUCT_XMM_REG__fpu_xmm12;/* XMM 12 */
603_STRUCT_XMM_REG__fpu_xmm13;/* XMM 13 */
604_STRUCT_XMM_REG__fpu_xmm14;/* XMM 14 */
605_STRUCT_XMM_REG__fpu_xmm15;/* XMM 15 */
606char__fpu_rsrv4[6*16];/* reserved */
607int __fpu_reserved1;
608char__avx_reserved1[64];
609_STRUCT_XMM_REG__fpu_ymmh0;/* YMMH 0 */
610_STRUCT_XMM_REG__fpu_ymmh1;/* YMMH 1 */
611_STRUCT_XMM_REG__fpu_ymmh2;/* YMMH 2 */
612_STRUCT_XMM_REG__fpu_ymmh3;/* YMMH 3 */
613_STRUCT_XMM_REG__fpu_ymmh4;/* YMMH 4 */
614_STRUCT_XMM_REG__fpu_ymmh5;/* YMMH 5 */
615_STRUCT_XMM_REG__fpu_ymmh6;/* YMMH 6 */
616_STRUCT_XMM_REG__fpu_ymmh7;/* YMMH 7 */
617_STRUCT_XMM_REG__fpu_ymmh8;/* YMMH 8 */
618_STRUCT_XMM_REG__fpu_ymmh9;/* YMMH 9 */
619_STRUCT_XMM_REG__fpu_ymmh10;/* YMMH 10 */
620_STRUCT_XMM_REG__fpu_ymmh11;/* YMMH 11 */
621_STRUCT_XMM_REG__fpu_ymmh12;/* YMMH 12 */
622_STRUCT_XMM_REG__fpu_ymmh13;/* YMMH 13 */
623_STRUCT_XMM_REG__fpu_ymmh14;/* YMMH 14 */
624_STRUCT_XMM_REG__fpu_ymmh15;/* YMMH 15 */
625};
626
627#else /* !__DARWIN_UNIX03 */
628#define_STRUCT_X86_FLOAT_STATE64struct x86_float_state64
629_STRUCT_X86_FLOAT_STATE64
630{
631int fpu_reserved[2];
632_STRUCT_FP_CONTROLfpu_fcw;/* x87 FPU control word */
633_STRUCT_FP_STATUSfpu_fsw;/* x87 FPU status word */
634__uint8_tfpu_ftw;/* x87 FPU tag word */
635__uint8_tfpu_rsrv1;/* reserved */
636__uint16_tfpu_fop;/* x87 FPU Opcode */
637
638/* x87 FPU Instruction Pointer */
639__uint32_tfpu_ip;/* offset */
640__uint16_tfpu_cs;/* Selector */
641
642__uint16_tfpu_rsrv2;/* reserved */
643
644/* x87 FPU Instruction Operand(Data) Pointer */
645__uint32_tfpu_dp;/* offset */
646__uint16_tfpu_ds;/* Selector */
647
648__uint16_tfpu_rsrv3;/* reserved */
649__uint32_tfpu_mxcsr;/* MXCSR Register state */
650__uint32_tfpu_mxcsrmask;/* MXCSR mask */
651_STRUCT_MMST_REGfpu_stmm0;/* ST0/MM0 */
652_STRUCT_MMST_REGfpu_stmm1;/* ST1/MM1 */
653_STRUCT_MMST_REGfpu_stmm2;/* ST2/MM2 */
654_STRUCT_MMST_REGfpu_stmm3;/* ST3/MM3 */
655_STRUCT_MMST_REGfpu_stmm4;/* ST4/MM4 */
656_STRUCT_MMST_REGfpu_stmm5;/* ST5/MM5 */
657_STRUCT_MMST_REGfpu_stmm6;/* ST6/MM6 */
658_STRUCT_MMST_REGfpu_stmm7;/* ST7/MM7 */
659_STRUCT_XMM_REGfpu_xmm0;/* XMM 0 */
660_STRUCT_XMM_REGfpu_xmm1;/* XMM 1 */
661_STRUCT_XMM_REGfpu_xmm2;/* XMM 2 */
662_STRUCT_XMM_REGfpu_xmm3;/* XMM 3 */
663_STRUCT_XMM_REGfpu_xmm4;/* XMM 4 */
664_STRUCT_XMM_REGfpu_xmm5;/* XMM 5 */
665_STRUCT_XMM_REGfpu_xmm6;/* XMM 6 */
666_STRUCT_XMM_REGfpu_xmm7;/* XMM 7 */
667_STRUCT_XMM_REGfpu_xmm8;/* XMM 8 */
668_STRUCT_XMM_REGfpu_xmm9;/* XMM 9 */
669_STRUCT_XMM_REGfpu_xmm10;/* XMM 10 */
670_STRUCT_XMM_REGfpu_xmm11;/* XMM 11 */
671_STRUCT_XMM_REGfpu_xmm12;/* XMM 12 */
672_STRUCT_XMM_REGfpu_xmm13;/* XMM 13 */
673_STRUCT_XMM_REGfpu_xmm14;/* XMM 14 */
674_STRUCT_XMM_REGfpu_xmm15;/* XMM 15 */
675charfpu_rsrv4[6*16];/* reserved */
676int fpu_reserved1;
677};
678
679#define_STRUCT_X86_AVX_STATE64struct x86_avx_state64
680_STRUCT_X86_AVX_STATE64
681{
682int fpu_reserved[2];
683_STRUCT_FP_CONTROLfpu_fcw;/* x87 FPU control word */
684_STRUCT_FP_STATUSfpu_fsw;/* x87 FPU status word */
685__uint8_tfpu_ftw;/* x87 FPU tag word */
686__uint8_tfpu_rsrv1;/* reserved */
687__uint16_tfpu_fop;/* x87 FPU Opcode */
688
689/* x87 FPU Instruction Pointer */
690__uint32_tfpu_ip;/* offset */
691__uint16_tfpu_cs;/* Selector */
692
693__uint16_tfpu_rsrv2;/* reserved */
694
695/* x87 FPU Instruction Operand(Data) Pointer */
696__uint32_tfpu_dp;/* offset */
697__uint16_tfpu_ds;/* Selector */
698
699__uint16_tfpu_rsrv3;/* reserved */
700__uint32_tfpu_mxcsr;/* MXCSR Register state */
701__uint32_tfpu_mxcsrmask;/* MXCSR mask */
702_STRUCT_MMST_REGfpu_stmm0;/* ST0/MM0 */
703_STRUCT_MMST_REGfpu_stmm1;/* ST1/MM1 */
704_STRUCT_MMST_REGfpu_stmm2;/* ST2/MM2 */
705_STRUCT_MMST_REGfpu_stmm3;/* ST3/MM3 */
706_STRUCT_MMST_REGfpu_stmm4;/* ST4/MM4 */
707_STRUCT_MMST_REGfpu_stmm5;/* ST5/MM5 */
708_STRUCT_MMST_REGfpu_stmm6;/* ST6/MM6 */
709_STRUCT_MMST_REGfpu_stmm7;/* ST7/MM7 */
710_STRUCT_XMM_REGfpu_xmm0;/* XMM 0 */
711_STRUCT_XMM_REGfpu_xmm1;/* XMM 1 */
712_STRUCT_XMM_REGfpu_xmm2;/* XMM 2 */
713_STRUCT_XMM_REGfpu_xmm3;/* XMM 3 */
714_STRUCT_XMM_REGfpu_xmm4;/* XMM 4 */
715_STRUCT_XMM_REGfpu_xmm5;/* XMM 5 */
716_STRUCT_XMM_REGfpu_xmm6;/* XMM 6 */
717_STRUCT_XMM_REGfpu_xmm7;/* XMM 7 */
718_STRUCT_XMM_REGfpu_xmm8;/* XMM 8 */
719_STRUCT_XMM_REGfpu_xmm9;/* XMM 9 */
720_STRUCT_XMM_REGfpu_xmm10;/* XMM 10 */
721_STRUCT_XMM_REGfpu_xmm11;/* XMM 11 */
722_STRUCT_XMM_REGfpu_xmm12;/* XMM 12 */
723_STRUCT_XMM_REGfpu_xmm13;/* XMM 13 */
724_STRUCT_XMM_REGfpu_xmm14;/* XMM 14 */
725_STRUCT_XMM_REGfpu_xmm15;/* XMM 15 */
726charfpu_rsrv4[6*16];/* reserved */
727int fpu_reserved1;
728char__avx_reserved1[64];
729_STRUCT_XMM_REG__fpu_ymmh0;/* YMMH 0 */
730_STRUCT_XMM_REG__fpu_ymmh1;/* YMMH 1 */
731_STRUCT_XMM_REG__fpu_ymmh2;/* YMMH 2 */
732_STRUCT_XMM_REG__fpu_ymmh3;/* YMMH 3 */
733_STRUCT_XMM_REG__fpu_ymmh4;/* YMMH 4 */
734_STRUCT_XMM_REG__fpu_ymmh5;/* YMMH 5 */
735_STRUCT_XMM_REG__fpu_ymmh6;/* YMMH 6 */
736_STRUCT_XMM_REG__fpu_ymmh7;/* YMMH 7 */
737_STRUCT_XMM_REG__fpu_ymmh8;/* YMMH 8 */
738_STRUCT_XMM_REG__fpu_ymmh9;/* YMMH 9 */
739_STRUCT_XMM_REG__fpu_ymmh10;/* YMMH 10 */
740_STRUCT_XMM_REG__fpu_ymmh11;/* YMMH 11 */
741_STRUCT_XMM_REG__fpu_ymmh12;/* YMMH 12 */
742_STRUCT_XMM_REG__fpu_ymmh13;/* YMMH 13 */
743_STRUCT_XMM_REG__fpu_ymmh14;/* YMMH 14 */
744_STRUCT_XMM_REG__fpu_ymmh15;/* YMMH 15 */
745};
746
747#endif /* !__DARWIN_UNIX03 */
748
749#if __DARWIN_UNIX03
750#define _STRUCT_X86_EXCEPTION_STATE64struct __darwin_x86_exception_state64
751_STRUCT_X86_EXCEPTION_STATE64
752{
753 __uint16_t__trapno;
754 __uint16_t__cpu;
755 __uint32_t__err;
756 __uint64_t__faultvaddr;
757};
758#else /* !__DARWIN_UNIX03 */
759#define _STRUCT_X86_EXCEPTION_STATE64struct x86_exception_state64
760_STRUCT_X86_EXCEPTION_STATE64
761{
762 __uint16_ttrapno;
763 __uint16_tcpu;
764 __uint32_terr;
765 __uint64_tfaultvaddr;
766};
767#endif /* !__DARWIN_UNIX03 */
768
769#if __DARWIN_UNIX03
770#define _STRUCT_X86_DEBUG_STATE64struct __darwin_x86_debug_state64
771_STRUCT_X86_DEBUG_STATE64
772{
773__uint64_t__dr0;
774__uint64_t__dr1;
775__uint64_t__dr2;
776__uint64_t__dr3;
777__uint64_t__dr4;
778__uint64_t__dr5;
779__uint64_t__dr6;
780__uint64_t__dr7;
781};
782#else /* !__DARWIN_UNIX03 */
783#define _STRUCT_X86_DEBUG_STATE64struct x86_debug_state64
784_STRUCT_X86_DEBUG_STATE64
785{
786__uint64_tdr0;
787__uint64_tdr1;
788__uint64_tdr2;
789__uint64_tdr3;
790__uint64_tdr4;
791__uint64_tdr5;
792__uint64_tdr6;
793__uint64_tdr7;
794};
795#endif /* !__DARWIN_UNIX03 */
796
797#endif /* _MACH_I386__STRUCTS_H_ */
798

Archive Download this file

Revision: 2182