2 * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
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.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
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.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
32 #ifndef _MACH_I386__STRUCTS_H_
33 #define _MACH_I386__STRUCTS_H_
36 * i386 is the structure that is exported to user threads for
37 * use in status/mutate calls. This structure should never change.
42 #define _STRUCT_X86_THREAD_STATE32 struct __darwin_i386_thread_state
43 _STRUCT_X86_THREAD_STATE32
54 unsigned int __eflags
;
62 #else /* !__DARWIN_UNIX03 */
63 #define _STRUCT_X86_THREAD_STATE32 struct i386_thread_state
64 _STRUCT_X86_THREAD_STATE32
83 #endif /* !__DARWIN_UNIX03 */
85 /* This structure should be double-word aligned for performance */
88 #define _STRUCT_FP_CONTROL struct __darwin_fp_control
91 unsigned short __invalid
:1,
99 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
100 #define FP_PREC_24B 0
101 #define FP_PREC_53B 2
102 #define FP_PREC_64B 3
103 #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
105 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
106 #define FP_RND_NEAR 0
107 #define FP_RND_DOWN 1
110 #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
114 typedef _STRUCT_FP_CONTROL __darwin_fp_control_t
;
115 #else /* !__DARWIN_UNIX03 */
116 #define _STRUCT_FP_CONTROL struct fp_control
119 unsigned short invalid
:1,
127 #define FP_PREC_24B 0
128 #define FP_PREC_53B 2
129 #define FP_PREC_64B 3
131 #define FP_RND_NEAR 0
132 #define FP_RND_DOWN 1
138 typedef _STRUCT_FP_CONTROL fp_control_t
;
139 #endif /* !__DARWIN_UNIX03 */
146 #define _STRUCT_FP_STATUS struct __darwin_fp_status
149 unsigned short __invalid
:1,
164 typedef _STRUCT_FP_STATUS __darwin_fp_status_t
;
165 #else /* !__DARWIN_UNIX03 */
166 #define _STRUCT_FP_STATUS struct fp_status
169 unsigned short invalid
:1,
184 typedef _STRUCT_FP_STATUS fp_status_t
;
185 #endif /* !__DARWIN_UNIX03 */
187 /* defn of 80bit x87 FPU or MMX register */
190 #define _STRUCT_MMST_REG struct __darwin_mmst_reg
196 #else /* !__DARWIN_UNIX03 */
197 #define _STRUCT_MMST_REG struct mmst_reg
203 #endif /* !__DARWIN_UNIX03 */
206 /* defn of 128 bit XMM regs */
209 #define _STRUCT_XMM_REG struct __darwin_xmm_reg
214 #else /* !__DARWIN_UNIX03 */
215 #define _STRUCT_XMM_REG struct xmm_reg
220 #endif /* !__DARWIN_UNIX03 */
223 * Floating point state.
226 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
227 #define FP_STATE_BYTES 512 /* number of chars worth of data from fpu_fcw */
228 #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
231 #define _STRUCT_X86_FLOAT_STATE32 struct __darwin_i386_float_state
232 _STRUCT_X86_FLOAT_STATE32
234 int __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 */
264 char __fpu_rsrv4
[14*16]; /* reserved */
268 #define _STRUCT_X86_AVX_STATE32 struct __darwin_i386_avx_state
269 _STRUCT_X86_AVX_STATE32
271 int __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 */
301 char __fpu_rsrv4
[14*16]; /* reserved */
303 char __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 */
314 #else /* !__DARWIN_UNIX03 */
315 #define _STRUCT_X86_FLOAT_STATE32 struct i386_float_state
316 _STRUCT_X86_FLOAT_STATE32
319 _STRUCT_FP_CONTROL fpu_fcw
; /* x87 FPU control word */
320 _STRUCT_FP_STATUS fpu_fsw
; /* x87 FPU status word */
321 __uint8_t fpu_ftw
; /* x87 FPU tag word */
322 __uint8_t fpu_rsrv1
; /* reserved */
323 __uint16_t fpu_fop
; /* x87 FPU Opcode */
324 __uint32_t fpu_ip
; /* x87 FPU Instruction Pointer offset */
325 __uint16_t fpu_cs
; /* x87 FPU Instruction Pointer Selector */
326 __uint16_t fpu_rsrv2
; /* reserved */
327 __uint32_t fpu_dp
; /* x87 FPU Instruction Operand(Data) Pointer offset */
328 __uint16_t fpu_ds
; /* x87 FPU Instruction Operand(Data) Pointer Selector */
329 __uint16_t fpu_rsrv3
; /* reserved */
330 __uint32_t fpu_mxcsr
; /* MXCSR Register state */
331 __uint32_t fpu_mxcsrmask
; /* MXCSR mask */
332 _STRUCT_MMST_REG fpu_stmm0
; /* ST0/MM0 */
333 _STRUCT_MMST_REG fpu_stmm1
; /* ST1/MM1 */
334 _STRUCT_MMST_REG fpu_stmm2
; /* ST2/MM2 */
335 _STRUCT_MMST_REG fpu_stmm3
; /* ST3/MM3 */
336 _STRUCT_MMST_REG fpu_stmm4
; /* ST4/MM4 */
337 _STRUCT_MMST_REG fpu_stmm5
; /* ST5/MM5 */
338 _STRUCT_MMST_REG fpu_stmm6
; /* ST6/MM6 */
339 _STRUCT_MMST_REG fpu_stmm7
; /* ST7/MM7 */
340 _STRUCT_XMM_REG fpu_xmm0
; /* XMM 0 */
341 _STRUCT_XMM_REG fpu_xmm1
; /* XMM 1 */
342 _STRUCT_XMM_REG fpu_xmm2
; /* XMM 2 */
343 _STRUCT_XMM_REG fpu_xmm3
; /* XMM 3 */
344 _STRUCT_XMM_REG fpu_xmm4
; /* XMM 4 */
345 _STRUCT_XMM_REG fpu_xmm5
; /* XMM 5 */
346 _STRUCT_XMM_REG fpu_xmm6
; /* XMM 6 */
347 _STRUCT_XMM_REG fpu_xmm7
; /* XMM 7 */
348 char fpu_rsrv4
[14*16]; /* reserved */
352 #define _STRUCT_X86_AVX_STATE32 struct i386_avx_state
353 _STRUCT_X86_AVX_STATE32
356 _STRUCT_FP_CONTROL fpu_fcw
; /* x87 FPU control word */
357 _STRUCT_FP_STATUS fpu_fsw
; /* x87 FPU status word */
358 __uint8_t fpu_ftw
; /* x87 FPU tag word */
359 __uint8_t fpu_rsrv1
; /* reserved */
360 __uint16_t fpu_fop
; /* x87 FPU Opcode */
361 __uint32_t fpu_ip
; /* x87 FPU Instruction Pointer offset */
362 __uint16_t fpu_cs
; /* x87 FPU Instruction Pointer Selector */
363 __uint16_t fpu_rsrv2
; /* reserved */
364 __uint32_t fpu_dp
; /* x87 FPU Instruction Operand(Data) Pointer offset */
365 __uint16_t fpu_ds
; /* x87 FPU Instruction Operand(Data) Pointer Selector */
366 __uint16_t fpu_rsrv3
; /* reserved */
367 __uint32_t fpu_mxcsr
; /* MXCSR Register state */
368 __uint32_t fpu_mxcsrmask
; /* MXCSR mask */
369 _STRUCT_MMST_REG fpu_stmm0
; /* ST0/MM0 */
370 _STRUCT_MMST_REG fpu_stmm1
; /* ST1/MM1 */
371 _STRUCT_MMST_REG fpu_stmm2
; /* ST2/MM2 */
372 _STRUCT_MMST_REG fpu_stmm3
; /* ST3/MM3 */
373 _STRUCT_MMST_REG fpu_stmm4
; /* ST4/MM4 */
374 _STRUCT_MMST_REG fpu_stmm5
; /* ST5/MM5 */
375 _STRUCT_MMST_REG fpu_stmm6
; /* ST6/MM6 */
376 _STRUCT_MMST_REG fpu_stmm7
; /* ST7/MM7 */
377 _STRUCT_XMM_REG fpu_xmm0
; /* XMM 0 */
378 _STRUCT_XMM_REG fpu_xmm1
; /* XMM 1 */
379 _STRUCT_XMM_REG fpu_xmm2
; /* XMM 2 */
380 _STRUCT_XMM_REG fpu_xmm3
; /* XMM 3 */
381 _STRUCT_XMM_REG fpu_xmm4
; /* XMM 4 */
382 _STRUCT_XMM_REG fpu_xmm5
; /* XMM 5 */
383 _STRUCT_XMM_REG fpu_xmm6
; /* XMM 6 */
384 _STRUCT_XMM_REG fpu_xmm7
; /* XMM 7 */
385 char fpu_rsrv4
[14*16]; /* reserved */
387 char __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 */
398 #endif /* !__DARWIN_UNIX03 */
401 #define _STRUCT_X86_EXCEPTION_STATE32 struct __darwin_i386_exception_state
402 _STRUCT_X86_EXCEPTION_STATE32
407 __uint32_t __faultvaddr
;
409 #else /* !__DARWIN_UNIX03 */
410 #define _STRUCT_X86_EXCEPTION_STATE32 struct i386_exception_state
411 _STRUCT_X86_EXCEPTION_STATE32
416 __uint32_t faultvaddr
;
418 #endif /* !__DARWIN_UNIX03 */
421 #define _STRUCT_X86_DEBUG_STATE32 struct __darwin_x86_debug_state32
422 _STRUCT_X86_DEBUG_STATE32
433 #else /* !__DARWIN_UNIX03 */
434 #define _STRUCT_X86_DEBUG_STATE32 struct x86_debug_state32
435 _STRUCT_X86_DEBUG_STATE32
446 #endif /* !__DARWIN_UNIX03 */
449 * 64 bit versions of the above
453 #define _STRUCT_X86_THREAD_STATE64 struct __darwin_x86_thread_state64
454 _STRUCT_X86_THREAD_STATE64
478 #else /* !__DARWIN_UNIX03 */
479 #define _STRUCT_X86_THREAD_STATE64 struct x86_thread_state64
480 _STRUCT_X86_THREAD_STATE64
504 #endif /* !__DARWIN_UNIX03 */
508 #define _STRUCT_X86_FLOAT_STATE64 struct __darwin_x86_float_state64
509 _STRUCT_X86_FLOAT_STATE64
511 int __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 */
518 /* x87 FPU Instruction Pointer */
519 __uint32_t __fpu_ip
; /* offset */
520 __uint16_t __fpu_cs
; /* Selector */
522 __uint16_t __fpu_rsrv2
; /* reserved */
524 /* x87 FPU Instruction Operand(Data) Pointer */
525 __uint32_t __fpu_dp
; /* offset */
526 __uint16_t __fpu_ds
; /* Selector */
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 */
555 char __fpu_rsrv4
[6*16]; /* reserved */
559 #define _STRUCT_X86_AVX_STATE64 struct __darwin_x86_avx_state64
560 _STRUCT_X86_AVX_STATE64
562 int __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 */
569 /* x87 FPU Instruction Pointer */
570 __uint32_t __fpu_ip
; /* offset */
571 __uint16_t __fpu_cs
; /* Selector */
573 __uint16_t __fpu_rsrv2
; /* reserved */
575 /* x87 FPU Instruction Operand(Data) Pointer */
576 __uint32_t __fpu_dp
; /* offset */
577 __uint16_t __fpu_ds
; /* Selector */
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 */
606 char __fpu_rsrv4
[6*16]; /* reserved */
608 char __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 */
627 #else /* !__DARWIN_UNIX03 */
628 #define _STRUCT_X86_FLOAT_STATE64 struct x86_float_state64
629 _STRUCT_X86_FLOAT_STATE64
632 _STRUCT_FP_CONTROL fpu_fcw
; /* x87 FPU control word */
633 _STRUCT_FP_STATUS fpu_fsw
; /* x87 FPU status word */
634 __uint8_t fpu_ftw
; /* x87 FPU tag word */
635 __uint8_t fpu_rsrv1
; /* reserved */
636 __uint16_t fpu_fop
; /* x87 FPU Opcode */
638 /* x87 FPU Instruction Pointer */
639 __uint32_t fpu_ip
; /* offset */
640 __uint16_t fpu_cs
; /* Selector */
642 __uint16_t fpu_rsrv2
; /* reserved */
644 /* x87 FPU Instruction Operand(Data) Pointer */
645 __uint32_t fpu_dp
; /* offset */
646 __uint16_t fpu_ds
; /* Selector */
648 __uint16_t fpu_rsrv3
; /* reserved */
649 __uint32_t fpu_mxcsr
; /* MXCSR Register state */
650 __uint32_t fpu_mxcsrmask
; /* MXCSR mask */
651 _STRUCT_MMST_REG fpu_stmm0
; /* ST0/MM0 */
652 _STRUCT_MMST_REG fpu_stmm1
; /* ST1/MM1 */
653 _STRUCT_MMST_REG fpu_stmm2
; /* ST2/MM2 */
654 _STRUCT_MMST_REG fpu_stmm3
; /* ST3/MM3 */
655 _STRUCT_MMST_REG fpu_stmm4
; /* ST4/MM4 */
656 _STRUCT_MMST_REG fpu_stmm5
; /* ST5/MM5 */
657 _STRUCT_MMST_REG fpu_stmm6
; /* ST6/MM6 */
658 _STRUCT_MMST_REG fpu_stmm7
; /* ST7/MM7 */
659 _STRUCT_XMM_REG fpu_xmm0
; /* XMM 0 */
660 _STRUCT_XMM_REG fpu_xmm1
; /* XMM 1 */
661 _STRUCT_XMM_REG fpu_xmm2
; /* XMM 2 */
662 _STRUCT_XMM_REG fpu_xmm3
; /* XMM 3 */
663 _STRUCT_XMM_REG fpu_xmm4
; /* XMM 4 */
664 _STRUCT_XMM_REG fpu_xmm5
; /* XMM 5 */
665 _STRUCT_XMM_REG fpu_xmm6
; /* XMM 6 */
666 _STRUCT_XMM_REG fpu_xmm7
; /* XMM 7 */
667 _STRUCT_XMM_REG fpu_xmm8
; /* XMM 8 */
668 _STRUCT_XMM_REG fpu_xmm9
; /* XMM 9 */
669 _STRUCT_XMM_REG fpu_xmm10
; /* XMM 10 */
670 _STRUCT_XMM_REG fpu_xmm11
; /* XMM 11 */
671 _STRUCT_XMM_REG fpu_xmm12
; /* XMM 12 */
672 _STRUCT_XMM_REG fpu_xmm13
; /* XMM 13 */
673 _STRUCT_XMM_REG fpu_xmm14
; /* XMM 14 */
674 _STRUCT_XMM_REG fpu_xmm15
; /* XMM 15 */
675 char fpu_rsrv4
[6*16]; /* reserved */
679 #define _STRUCT_X86_AVX_STATE64 struct x86_avx_state64
680 _STRUCT_X86_AVX_STATE64
683 _STRUCT_FP_CONTROL fpu_fcw
; /* x87 FPU control word */
684 _STRUCT_FP_STATUS fpu_fsw
; /* x87 FPU status word */
685 __uint8_t fpu_ftw
; /* x87 FPU tag word */
686 __uint8_t fpu_rsrv1
; /* reserved */
687 __uint16_t fpu_fop
; /* x87 FPU Opcode */
689 /* x87 FPU Instruction Pointer */
690 __uint32_t fpu_ip
; /* offset */
691 __uint16_t fpu_cs
; /* Selector */
693 __uint16_t fpu_rsrv2
; /* reserved */
695 /* x87 FPU Instruction Operand(Data) Pointer */
696 __uint32_t fpu_dp
; /* offset */
697 __uint16_t fpu_ds
; /* Selector */
699 __uint16_t fpu_rsrv3
; /* reserved */
700 __uint32_t fpu_mxcsr
; /* MXCSR Register state */
701 __uint32_t fpu_mxcsrmask
; /* MXCSR mask */
702 _STRUCT_MMST_REG fpu_stmm0
; /* ST0/MM0 */
703 _STRUCT_MMST_REG fpu_stmm1
; /* ST1/MM1 */
704 _STRUCT_MMST_REG fpu_stmm2
; /* ST2/MM2 */
705 _STRUCT_MMST_REG fpu_stmm3
; /* ST3/MM3 */
706 _STRUCT_MMST_REG fpu_stmm4
; /* ST4/MM4 */
707 _STRUCT_MMST_REG fpu_stmm5
; /* ST5/MM5 */
708 _STRUCT_MMST_REG fpu_stmm6
; /* ST6/MM6 */
709 _STRUCT_MMST_REG fpu_stmm7
; /* ST7/MM7 */
710 _STRUCT_XMM_REG fpu_xmm0
; /* XMM 0 */
711 _STRUCT_XMM_REG fpu_xmm1
; /* XMM 1 */
712 _STRUCT_XMM_REG fpu_xmm2
; /* XMM 2 */
713 _STRUCT_XMM_REG fpu_xmm3
; /* XMM 3 */
714 _STRUCT_XMM_REG fpu_xmm4
; /* XMM 4 */
715 _STRUCT_XMM_REG fpu_xmm5
; /* XMM 5 */
716 _STRUCT_XMM_REG fpu_xmm6
; /* XMM 6 */
717 _STRUCT_XMM_REG fpu_xmm7
; /* XMM 7 */
718 _STRUCT_XMM_REG fpu_xmm8
; /* XMM 8 */
719 _STRUCT_XMM_REG fpu_xmm9
; /* XMM 9 */
720 _STRUCT_XMM_REG fpu_xmm10
; /* XMM 10 */
721 _STRUCT_XMM_REG fpu_xmm11
; /* XMM 11 */
722 _STRUCT_XMM_REG fpu_xmm12
; /* XMM 12 */
723 _STRUCT_XMM_REG fpu_xmm13
; /* XMM 13 */
724 _STRUCT_XMM_REG fpu_xmm14
; /* XMM 14 */
725 _STRUCT_XMM_REG fpu_xmm15
; /* XMM 15 */
726 char fpu_rsrv4
[6*16]; /* reserved */
728 char __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 */
747 #endif /* !__DARWIN_UNIX03 */
750 #define _STRUCT_X86_EXCEPTION_STATE64 struct __darwin_x86_exception_state64
751 _STRUCT_X86_EXCEPTION_STATE64
756 __uint64_t __faultvaddr
;
758 #else /* !__DARWIN_UNIX03 */
759 #define _STRUCT_X86_EXCEPTION_STATE64 struct x86_exception_state64
760 _STRUCT_X86_EXCEPTION_STATE64
765 __uint64_t faultvaddr
;
767 #endif /* !__DARWIN_UNIX03 */
770 #define _STRUCT_X86_DEBUG_STATE64 struct __darwin_x86_debug_state64
771 _STRUCT_X86_DEBUG_STATE64
782 #else /* !__DARWIN_UNIX03 */
783 #define _STRUCT_X86_DEBUG_STATE64 struct x86_debug_state64
784 _STRUCT_X86_DEBUG_STATE64
795 #endif /* !__DARWIN_UNIX03 */
797 #endif /* _MACH_I386__STRUCTS_H_ */