Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
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_STATE32 struct __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_STATE32 struct i386_thread_state 64: _STRUCT_X86_THREAD_STATE32 65: { 66: unsigned int eax; 67: unsigned int ebx; 68: unsigned int ecx; 69: unsigned int edx; 70: unsigned int edi; 71: unsigned int esi; 72: unsigned int ebp; 73: unsigned int esp; 74: unsigned int ss; 75: unsigned int eflags; 76: unsigned int eip; 77: unsigned int cs; 78: unsigned int ds; 79: unsigned int es; 80: unsigned int fs; 81: unsigned int gs; 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_CONTROL struct __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_24B 0 101: #define FP_PREC_53B 2 102: #define FP_PREC_64B 3 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_NEAR 0 107: #define FP_RND_DOWN 1 108: #define FP_RND_UP 2 109: #define FP_CHOP 3 110: #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ 111: /*inf*/ :1, 112: :3; 113: }; 114: typedef _STRUCT_FP_CONTROL __darwin_fp_control_t; 115: #else /* !__DARWIN_UNIX03 */ 116: #define _STRUCT_FP_CONTROL struct fp_control 117: _STRUCT_FP_CONTROL 118: { 119: unsigned short invalid :1, 120: denorm :1, 121: zdiv :1, 122: ovrfl :1, 123: undfl :1, 124: precis :1, 125: :2, 126: pc :2, 127: #define FP_PREC_24B 0 128: #define FP_PREC_53B 2 129: #define FP_PREC_64B 3 130: rc :2, 131: #define FP_RND_NEAR 0 132: #define FP_RND_DOWN 1 133: #define FP_RND_UP 2 134: #define FP_CHOP 3 135: /*inf*/ :1, 136: :3; 137: }; 138: typedef _STRUCT_FP_CONTROL fp_control_t; 139: #endif /* !__DARWIN_UNIX03 */ 140: 141: /* 142: * Status word. 143: */ 144: 145: #if __DARWIN_UNIX03 146: #define _STRUCT_FP_STATUS struct __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: }; 164: typedef _STRUCT_FP_STATUS __darwin_fp_status_t; 165: #else /* !__DARWIN_UNIX03 */ 166: #define _STRUCT_FP_STATUS struct fp_status 167: _STRUCT_FP_STATUS 168: { 169: unsigned short invalid :1, 170: denorm :1, 171: zdiv :1, 172: ovrfl :1, 173: undfl :1, 174: precis :1, 175: stkflt :1, 176: errsumm :1, 177: c0 :1, 178: c1 :1, 179: c2 :1, 180: tos :3, 181: c3 :1, 182: busy :1; 183: }; 184: typedef _STRUCT_FP_STATUS fp_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_REG struct __darwin_mmst_reg 191: _STRUCT_MMST_REG 192: { 193: char __mmst_reg[10]; 194: char __mmst_rsrv[6]; 195: }; 196: #else /* !__DARWIN_UNIX03 */ 197: #define _STRUCT_MMST_REG struct mmst_reg 198: _STRUCT_MMST_REG 199: { 200: char mmst_reg[10]; 201: char mmst_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_REG struct __darwin_xmm_reg 210: _STRUCT_XMM_REG 211: { 212: char __xmm_reg[16]; 213: }; 214: #else /* !__DARWIN_UNIX03 */ 215: #define _STRUCT_XMM_REG struct xmm_reg 216: _STRUCT_XMM_REG 217: { 218: char xmm_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_BYTES 512 /* 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_STATE32 struct __darwin_i386_float_state 232: _STRUCT_X86_FLOAT_STATE32 233: { 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 */ 265: int __fpu_reserved1; 266: }; 267: 268: #define _STRUCT_X86_AVX_STATE32 struct __darwin_i386_avx_state 269: _STRUCT_X86_AVX_STATE32 270: { 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 */ 302: int __fpu_reserved1; 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 */ 312: }; 313: 314: #else /* !__DARWIN_UNIX03 */ 315: #define _STRUCT_X86_FLOAT_STATE32 struct i386_float_state 316: _STRUCT_X86_FLOAT_STATE32 317: { 318: int fpu_reserved[2]; 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 */ 349: int fpu_reserved1; 350: }; 351: 352: #define _STRUCT_X86_AVX_STATE32 struct i386_avx_state 353: _STRUCT_X86_AVX_STATE32 354: { 355: int fpu_reserved[2]; 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 */ 386: int fpu_reserved1; 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 */ 396: }; 397: 398: #endif /* !__DARWIN_UNIX03 */ 399: 400: #if __DARWIN_UNIX03 401: #define _STRUCT_X86_EXCEPTION_STATE32 struct __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_STATE32 struct i386_exception_state 411: _STRUCT_X86_EXCEPTION_STATE32 412: { 413: __uint16_t trapno; 414: __uint16_t cpu; 415: __uint32_t err; 416: __uint32_t faultvaddr; 417: }; 418: #endif /* !__DARWIN_UNIX03 */ 419: 420: #if __DARWIN_UNIX03 421: #define _STRUCT_X86_DEBUG_STATE32 struct __darwin_x86_debug_state32 422: _STRUCT_X86_DEBUG_STATE32 423: { 424: unsigned int __dr0; 425: unsigned int __dr1; 426: unsigned int __dr2; 427: unsigned int __dr3; 428: unsigned int __dr4; 429: unsigned int __dr5; 430: unsigned int __dr6; 431: unsigned int __dr7; 432: }; 433: #else /* !__DARWIN_UNIX03 */ 434: #define _STRUCT_X86_DEBUG_STATE32 struct x86_debug_state32 435: _STRUCT_X86_DEBUG_STATE32 436: { 437: unsigned int dr0; 438: unsigned int dr1; 439: unsigned int dr2; 440: unsigned int dr3; 441: unsigned int dr4; 442: unsigned int dr5; 443: unsigned int dr6; 444: unsigned int dr7; 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_STATE64 struct __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_STATE64 struct x86_thread_state64 480: _STRUCT_X86_THREAD_STATE64 481: { 482: __uint64_t rax; 483: __uint64_t rbx; 484: __uint64_t rcx; 485: __uint64_t rdx; 486: __uint64_t rdi; 487: __uint64_t rsi; 488: __uint64_t rbp; 489: __uint64_t rsp; 490: __uint64_t r8; 491: __uint64_t r9; 492: __uint64_t r10; 493: __uint64_t r11; 494: __uint64_t r12; 495: __uint64_t r13; 496: __uint64_t r14; 497: __uint64_t r15; 498: __uint64_t rip; 499: __uint64_t rflags; 500: __uint64_t cs; 501: __uint64_t fs; 502: __uint64_t gs; 503: }; 504: #endif /* !__DARWIN_UNIX03 */ 505: 506: 507: #if __DARWIN_UNIX03 508: #define _STRUCT_X86_FLOAT_STATE64 struct __darwin_x86_float_state64 509: _STRUCT_X86_FLOAT_STATE64 510: { 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 */ 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 */ 555: char __fpu_rsrv4[6*16]; /* reserved */ 556: int __fpu_reserved1; 557: }; 558: 559: #define _STRUCT_X86_AVX_STATE64 struct __darwin_x86_avx_state64 560: _STRUCT_X86_AVX_STATE64 561: { 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 */ 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 */ 606: char __fpu_rsrv4[6*16]; /* reserved */ 607: int __fpu_reserved1; 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 */ 625: }; 626: 627: #else /* !__DARWIN_UNIX03 */ 628: #define _STRUCT_X86_FLOAT_STATE64 struct x86_float_state64 629: _STRUCT_X86_FLOAT_STATE64 630: { 631: int fpu_reserved[2]; 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 */ 637: 638: /* x87 FPU Instruction Pointer */ 639: __uint32_t fpu_ip; /* offset */ 640: __uint16_t fpu_cs; /* Selector */ 641: 642: __uint16_t fpu_rsrv2; /* reserved */ 643: 644: /* x87 FPU Instruction Operand(Data) Pointer */ 645: __uint32_t fpu_dp; /* offset */ 646: __uint16_t fpu_ds; /* Selector */ 647: 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 */ 676: int fpu_reserved1; 677: }; 678: 679: #define _STRUCT_X86_AVX_STATE64 struct x86_avx_state64 680: _STRUCT_X86_AVX_STATE64 681: { 682: int fpu_reserved[2]; 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 */ 688: 689: /* x87 FPU Instruction Pointer */ 690: __uint32_t fpu_ip; /* offset */ 691: __uint16_t fpu_cs; /* Selector */ 692: 693: __uint16_t fpu_rsrv2; /* reserved */ 694: 695: /* x87 FPU Instruction Operand(Data) Pointer */ 696: __uint32_t fpu_dp; /* offset */ 697: __uint16_t fpu_ds; /* Selector */ 698: 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 */ 727: int fpu_reserved1; 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 */ 745: }; 746: 747: #endif /* !__DARWIN_UNIX03 */ 748: 749: #if __DARWIN_UNIX03 750: #define _STRUCT_X86_EXCEPTION_STATE64 struct __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_STATE64 struct x86_exception_state64 760: _STRUCT_X86_EXCEPTION_STATE64 761: { 762: __uint16_t trapno; 763: __uint16_t cpu; 764: __uint32_t err; 765: __uint64_t faultvaddr; 766: }; 767: #endif /* !__DARWIN_UNIX03 */ 768: 769: #if __DARWIN_UNIX03 770: #define _STRUCT_X86_DEBUG_STATE64 struct __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_STATE64 struct x86_debug_state64 784: _STRUCT_X86_DEBUG_STATE64 785: { 786: __uint64_t dr0; 787: __uint64_t dr1; 788: __uint64_t dr2; 789: __uint64_t dr3; 790: __uint64_t dr4; 791: __uint64_t dr5; 792: __uint64_t dr6; 793: __uint64_t dr7; 794: }; 795: #endif /* !__DARWIN_UNIX03 */ 796: 797: #endif /* _MACH_I386__STRUCTS_H_ */ 798: