1 /* 2 * Copyright (c) 2000-2011 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 /* 30 * @OSF_COPYRIGHT@ 31 */ 32 /* 33 * Mach Operating System 34 * Copyright (c) 1991,1990 Carnegie Mellon University 35 * All Rights Reserved. 36 * 37 * Permission to use, copy, modify and distribute this software and its 38 * documentation is hereby granted, provided that both the copyright 39 * notice and this permission notice appear in all copies of the 40 * software, derivative works or modified versions, and any portions 41 * thereof, and that both notices appear in supporting documentation. 42 * 43 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 44 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 45 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 46 * 47 * Carnegie Mellon requests users of this software to return to 48 * 49 * Software Distribution Coordinator or [email protected] 50 * School of Computer Science 51 * Carnegie Mellon University 52 * Pittsburgh PA 15213-3890 53 * 54 * any improvements or extensions that they make and grant Carnegie Mellon 55 * the rights to redistribute these changes. 56 */ 57 58 #include <mach_kdp.h> 59 #include <mach/vm_param.h> 60 #include <x86_64/lowglobals.h> 61 62 /* 63 * on x86_64 the low mem vectors live here and get mapped to 0xffffff8000002000 at 64 * system startup time 65 */ 66 67 extern void *version; 68 extern void *kmod; 69 extern void *kdp_trans_off; 70 extern void *kdp_read_io; 71 extern void *osversion; 72 extern void *flag_kdp_trigger_reboot; 73 extern void *manual_pkt; 74 extern void *kdp_jtag_coredump; 75 extern vm_offset_t c_buffers; 76 extern vm_size_t c_buffers_size; 77 78 lowglo lowGlo __attribute__ ((aligned(PAGE_SIZE))) = { 79 .lgVerCode = { 'C', 'a', 't', 'f', 'i', 's', 'h', ' ' }, 80 81 // Increment major version for changes that break the current usage of lowGlow 82 .lgLayoutMajorVersion = 0, 83 // Increment minor version for changes that provide additional fields but do 84 // not break the current usage of lowGlow 85 .lgLayoutMinorVersion = 1, 86 87 // Kernel version (not lowglo layout version) 88 .lgVersion = (uint64_t) &version, 89 90 // Kernel compressor buffers 91 .lgCompressorBufferAddr = (uint64_t) &c_buffers, 92 .lgCompressorSizeAddr = (uint64_t) &c_buffers_size, 93 94 .lgKmodptr = (uint64_t) &kmod, 95 96 #if MACH_KDP 97 .lgTransOff = (uint64_t) &kdp_trans_off, 98 .lgReadIO = (uint64_t) &kdp_read_io, 99 #else 100 .lgTransOff = 0, 101 .lgReadIO = 0, 102 #endif 103 104 .lgDevSlot1 = 0, 105 .lgDevSlot2 = 0, 106 107 .lgOSVersion = (uint64_t) &osversion, 108 109 #if MACH_KDP 110 .lgRebootFlag = (uint64_t) &flag_kdp_trigger_reboot, 111 .lgManualPktAddr = (uint64_t) &manual_pkt, 112 #else 113 .lgRebootFlag = 0, 114 .lgManualPktAddr = 0, 115 #endif 116 .lgKdpJtagCoredumpAddr = (uint64_t) &kdp_jtag_coredump 117 }; 118