|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * Mach Operating System ! 27: * Copyright (c) 1989 Carnegie-Mellon University ! 28: * Copyright (c) 1988 Carnegie-Mellon University ! 29: * All rights reserved. The CMU software License Agreement specifies ! 30: * the terms and conditions for use and redistribution. ! 31: */ ! 32: /* ! 33: * HISTORY ! 34: * Revision 1.1.1.1 1997/09/30 02:45:12 wsanchez ! 35: * Import of kernel from umeshv/kernel ! 36: * ! 37: * ! 38: * 4-Jan-95 Curtis Galloway (galloway) at NeXT ! 39: * Created cross-buildable version from old genassym.c. ! 40: * ! 41: * 16-Mar-93 Curtis Galloway (galloway) at NeXT ! 42: * Remove obsolete 68k timer references. ! 43: * ! 44: * Revision 1.4.1.3 91/03/28 08:43:49 rvb ! 45: * Flush THREAD_EXIT & THREAD_EXIT_CODE for X134. ! 46: * [91/03/23 rvb] ! 47: * ! 48: * Revision 1.4.1.2 90/02/09 17:23:20 rvb ! 49: * Constants for Mach emulation support. ! 50: * [90/02/09 rvb] ! 51: * ! 52: * Revision 1.4.1.1 90/01/02 13:50:28 rvb ! 53: * Flush MACH_TIME. ! 54: * ! 55: * Revision 1.4 89/04/05 12:57:30 rvb ! 56: * X78: no more vmmeter ! 57: * [89/03/24 rvb] ! 58: * ! 59: * Revision 1.3 89/02/26 12:31:18 gm0w ! 60: * Changes for cleanup. ! 61: * ! 62: * 31-Dec-88 Robert Baron (rvb) at Carnegie-Mellon University ! 63: * Derived from MACH2.0 vax release. ! 64: * Still a lot of dead wood to cleanup. ! 65: * ! 66: * 11-Dec-87 Stephen Schwab (schwab) at Carnegie-Mellon University ! 67: * For 650, define ssc timer symbolic offsets. ! 68: * ! 69: */ ! 70: ! 71: #import <confdep.h> ! 72: ! 73: #import <stddef.h> ! 74: #import <mach/mach_types.h> ! 75: ! 76: #import <sys/param.h> ! 77: #import <sys/buf.h> ! 78: #import <sys/vmparam.h> ! 79: #import <sys/dir.h> ! 80: #import <sys/proc.h> ! 81: #import <sys/user.h> ! 82: #import <sys/mbuf.h> ! 83: #import <sys/msgbuf.h> ! 84: ! 85: #import <kern/lock.h> ! 86: ! 87: #import <kern/thread.h> ! 88: #import <kern/task.h> ! 89: ! 90: #import <fp_emul.h> ! 91: #if FP_EMUL ! 92: #import <machdep/i386/fp_emul/fp_emul.h> ! 93: #endif ! 94: ! 95: int _ERR = offsetof(thread_saved_state_t, frame.err); ! 96: int _EFL = offsetof(thread_saved_state_t, frame.eflags); ! 97: int _EBP = offsetof(thread_saved_state_t, regs.ebp); ! 98: int _P_PRI = offsetof(struct proc, p_priority); ! 99: int _P_STAT = offsetof(struct proc, p_stat); ! 100: int _P_SIG = offsetof(struct proc, p_siglist); ! 101: int _P_FLAG = offsetof(struct proc, p_flag); ! 102: int _SSLEEP = SSLEEP; ! 103: int _SRUN = SRUN; ! 104: int _RU_MINFLT = offsetof(struct rusage, ru_minflt); ! 105: int _PR_BASE = offsetof(struct uprof, pr_base); ! 106: int _PR_SIZE = offsetof(struct uprof, pr_size); ! 107: int _PR_OFF = offsetof(struct uprof, pr_off); ! 108: int _PR_SCALE = offsetof(struct uprof, pr_scale); ! 109: int _U_AR0 = offsetof(struct uthread, uu_ar0); ! 110: int _THREAD_PCB = offsetof(struct thread, pcb); ! 111: int _THREAD_RECOVER = offsetof(struct thread, recover); ! 112: int _THREAD_TASK = offsetof(struct thread, task); ! 113: int _THREAD_AST = offsetof(struct thread, ast); ! 114: int _AST_ZILCH = AST_ZILCH; ! 115: // sel_conv.sel = NULL_SEL; ! 116: //int _NULLSEL = sel_conv.sel_data); ! 117: sel_t _NULLSEL = NULL_SEL; ! 118: // sel_conv.sel = KCS_SEL; ! 119: //int _KCSSEL = sel_conv.sel_data); ! 120: sel_t _KCSSEL = KCS_SEL; ! 121: // sel_conv.sel = KDS_SEL; ! 122: //int _KDSSEL = sel_conv.sel_data); ! 123: sel_t _KDSSEL = KDS_SEL; ! 124: // sel_conv.sel = LCODE_SEL; ! 125: //int _LCODESEL = sel_conv.sel_data); ! 126: sel_t _LCODESEL = LCODE_SEL; ! 127: // sel_conv.sel = LDATA_SEL; ! 128: //int _LDATASEL = sel_conv.sel_data); ! 129: sel_t _LDATASEL = LDATA_SEL; ! 130: int _VM_MIN_KERNEL_ADDRESS = VM_MIN_KERNEL_ADDRESS; ! 131: int _KERNEL_LINEAR_BASE = KERNEL_LINEAR_BASE; ! 132: int _KERN_FAILURE = KERN_FAILURE; ! 133: ! 134: #if FP_EMUL ! 135: // sel_conv.sel = FPSTATE_SEL; ! 136: //int _FPSTATESEL = sel_conv.sel_data); ! 137: int _sr_masks = offsetof(fp_state_t, environ.control); ! 138: int _sr_controls = (offsetof(fp_state_t, environ.control)+1); ! 139: int _sr_errors =offsetof(fp_state_t, environ.status); ! 140: int _sr_flags = (offsetof(fp_state_t, environ.status)+1); ! 141: int _sr_tags = offsetof(fp_state_t, environ.tag); ! 142: int _sr_instr_offset = offsetof(fp_state_t, environ.ip); ! 143: int _sr_instr_base = offsetof(fp_state_t, environ.cs); ! 144: int _sr_mem_offset = offsetof(fp_state_t, environ.dp); ! 145: int _sr_mem_base = offsetof(fp_state_t, environ.ds); ! 146: int _sr_regstack = offsetof(fp_state_t, stack); ! 147: ! 148: int _work_area = offsetof(fp_emul_state_t, emul_work_area); ! 149: int _mem_operand_pointer = offsetof(fp_emul_state_t, emul_work_area.mem_operand_pointer); ! 150: int _instruction_pointer = offsetof(fp_emul_state_t, emul_work_area.instruction_pointer); ! 151: int _operation_type = offsetof(fp_emul_state_t, emul_work_area.operation_type); ! 152: int _reg_num = offsetof(fp_emul_state_t, emul_work_area.reg_num); ! 153: int _op1_format = offsetof(fp_emul_state_t, emul_work_area.op1_format); ! 154: int _op1_location = offsetof(fp_emul_state_t, emul_work_area.op1_location); ! 155: int _op1_use_up = offsetof(fp_emul_state_t, emul_work_area.op1_use_up); ! 156: int _op2_format = offsetof(fp_emul_state_t, emul_work_area.op2_format); ! 157: int _op2_location = offsetof(fp_emul_state_t, emul_work_area.op2_location); ! 158: int _op2_use_up = offsetof(fp_emul_state_t, emul_work_area.op2_use_up); ! 159: int _result_format = offsetof(fp_emul_state_t, emul_work_area.result_format); ! 160: int _result_location = offsetof(fp_emul_state_t, emul_work_area.result_location); ! 161: int _result2_format = offsetof(fp_emul_state_t, emul_work_area.result2_format); ! 162: int _dword_frac1 = offsetof(fp_emul_state_t, emul_work_area.dword_frac1); ! 163: int _sign1 = offsetof(fp_emul_state_t, emul_work_area.sign1); ! 164: int _sign1_ext = offsetof(fp_emul_state_t, emul_work_area.sign1_ext); ! 165: int _tag1 = offsetof(fp_emul_state_t, emul_work_area.tag1); ! 166: int _tag1_ext = offsetof(fp_emul_state_t, emul_work_area.tag1_ext); ! 167: int _expon1 = offsetof(fp_emul_state_t, emul_work_area.expon1); ! 168: int _expon1_ext = offsetof(fp_emul_state_t, emul_work_area.expon1_ext); ! 169: int _dword_frac2 = offsetof(fp_emul_state_t, emul_work_area.dword_frac2); ! 170: int _sign2 = offsetof(fp_emul_state_t, emul_work_area.sign2); ! 171: int _sign2_ext = offsetof(fp_emul_state_t, emul_work_area.sign2_ext); ! 172: int _tag2 = offsetof(fp_emul_state_t, emul_work_area.tag2); ! 173: int _tag2_ext = offsetof(fp_emul_state_t, emul_work_area.tag2_ext); ! 174: int _expon2 = offsetof(fp_emul_state_t, emul_work_area.expon2); ! 175: int _expon2_ext = offsetof(fp_emul_state_t, emul_work_area.expon2_ext); ! 176: int _before_error_signals = offsetof(fp_emul_state_t, emul_work_area.before_error_signals); ! 177: int _extra_dword_reg = offsetof(fp_emul_state_t, emul_work_area.extra_dword_reg); ! 178: int _result_dword_frac = offsetof(fp_emul_state_t, emul_work_area.result_dword_frac); ! 179: int _result_sign = offsetof(fp_emul_state_t, emul_work_area.result_sign); ! 180: int _result_sign_ext = offsetof(fp_emul_state_t, emul_work_area.result_sign_ext); ! 181: int _result_tag = offsetof(fp_emul_state_t, emul_work_area.result_tag); ! 182: int _result_tag_ext = offsetof(fp_emul_state_t, emul_work_area.result_tag_ext); ! 183: int _result_expon = offsetof(fp_emul_state_t, emul_work_area.result_expon); ! 184: int _result_expon_ext = offsetof(fp_emul_state_t, emul_work_area.result_expon_ext); ! 185: int _result2_dword_frac = offsetof(fp_emul_state_t, emul_work_area.result2_dword_frac); ! 186: int _result2_sign = offsetof(fp_emul_state_t, emul_work_area.result2_sign); ! 187: int _result2_sign_ext = offsetof(fp_emul_state_t, emul_work_area.result2_sign_ext); ! 188: int _result2_tag = offsetof(fp_emul_state_t, emul_work_area.result2_tag); ! 189: int _result2_tag_ext = offsetof(fp_emul_state_t, emul_work_area.result2_tag_ext); ! 190: int _result2_expon = offsetof(fp_emul_state_t, emul_work_area.result2_expon); ! 191: int _result2_expon_ext = offsetof(fp_emul_state_t, emul_work_area.result2_expon_ext); ! 192: int _dword_cop = offsetof(fp_emul_state_t, emul_work_area.dword_cop); ! 193: int _dword_dop = offsetof(fp_emul_state_t, emul_work_area.dword_dop); ! 194: int _oprnd_siz32 = offsetof(fp_emul_state_t, emul_work_area.oprnd_siz32); ! 195: int _addrs_siz32 = offsetof(fp_emul_state_t, emul_work_area.addrs_siz32); ! 196: int _fpstate_ptr = offsetof(fp_emul_state_t, emul_work_area.fpstate_ptr); ! 197: int _is16bit = offsetof(fp_emul_state_t, emul_work_area.is16bit); ! 198: int _inst_counter = offsetof(fp_emul_state_t, emul_work_area.inst_counter); ! 199: int _trapno = offsetof(fp_emul_state_t, trapno); ! 200: ! 201: int _saved_gs = offsetof(fp_emul_state_t, emul_regs.gs); ! 202: int _saved_fs = offsetof(fp_emul_state_t, emul_regs.fs); ! 203: int _saved_es = offsetof(fp_emul_state_t, emul_regs.es); ! 204: int _saved_ds = offsetof(fp_emul_state_t, emul_regs.ds); ! 205: int _saved_edi = offsetof(fp_emul_state_t, emul_regs.edi); ! 206: int _saved_esi = offsetof(fp_emul_state_t, emul_regs.esi); ! 207: int _saved_ebp = offsetof(fp_emul_state_t, emul_regs.ebp); ! 208: int _saved_ebx = offsetof(fp_emul_state_t, emul_regs.ebx); ! 209: int _saved_edx = offsetof(fp_emul_state_t, emul_regs.edx); ! 210: int _saved_ecx = offsetof(fp_emul_state_t, emul_regs.ecx); ! 211: int _saved_eax = offsetof(fp_emul_state_t, emul_regs.eax); ! 212: ! 213: int _saved_eip = offsetof(fp_emul_state_t, emul_frame.eip); ! 214: int _saved_cs = offsetof(fp_emul_state_t, emul_frame.cs); ! 215: int _saved_flags = offsetof(fp_emul_state_t, emul_frame.eflags); ! 216: int _old_esp = offsetof(fp_emul_state_t, emul_frame.esp); ! 217: int _old_ss = offsetof(fp_emul_state_t, emul_frame.ss); ! 218: ! 219: int _WORK_AREA_SIZE =sizeof(fp_emul_work_t); ! 220: int _WORK_AREA_WORDS =sizeof(fp_emul_work_t)/4; ! 221: ! 222: #endif FP_EMUL ! 223:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.