|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: * This module only exists because I don't know how to get the silly C compiler ! 24: * and/or linker to generate data areas that are aligned on a particular boundary. ! 25: * And, this stuff is in the V=R mapped area. ! 26: * ! 27: * Do the following for each: ! 28: * ! 29: * .size name,size-in-bytes ! 30: * .type area-name,@object ! 31: * .globl area-name ! 32: * .align power-of-two ! 33: * area-name: ! 34: * .set .,.+size-in-bytes ! 35: * ! 36: * So long as I'm being pedantic, always make sure that the most aligned, ! 37: * i.e., the largest power-of-twos, are first and then descend to the smallest. ! 38: * If you don't, and you are not careful and hand calculate, you'll end up ! 39: * with holes and waste storage. I hate C. ! 40: * ! 41: * Define the sizes in genassym.c ! 42: */ ! 43: ! 44: ! 45: #include <cpus.h> ! 46: #include <ppc/asm.h> ! 47: #include <ppc/proc_reg.h> ! 48: #include <assym.s> ! 49: ! 50: .data ! 51: ! 52: /* 256-byte aligned areas */ ! 53: ! 54: .globl EXT(GratefulDebWork) ! 55: .align 8 ! 56: EXT(GratefulDebWork): /* Enough for 2 rows of 8 chars of 16-pixel wide 32-bit pixels and a 256 byte work area */ ! 57: .set .,.+2560 ! 58: ! 59: .globl debstash ! 60: .align 8 ! 61: debstash: ! 62: .set .,.+256 ! 63: ! 64: .globl EXT(hw_counts) ; Counter banks per processor ! 65: .align 8 ! 66: EXT(hw_counts): ! 67: .set .,.+(NCPUS*256) ! 68: ! 69: #if 1 ! 70: ! 71: .globl EXT(DBGpreempt) ; preemption debug stack ! 72: .align 8 ! 73: EXT(DBGpreempt): ! 74: .set .,.+(NCPUS*256) ! 75: #endif ! 76: ! 77: ! 78: /* 32-byte aligned areas */ ! 79: ! 80: .globl EXT(saveanchor) ! 81: .align 5 ! 82: EXT(saveanchor): ! 83: .set .,.+SVsize ! 84: ! 85: .globl EXT(mapCtl) ! 86: .align 5 ! 87: EXT(mapCtl): ! 88: .set .,.+mapcsize ! 89: ! 90: .globl fwdisplock ! 91: .align 5 ! 92: fwdisplock: ! 93: .set .,.+32 ! 94: ! 95: .globl hexfont ! 96: .align 5 ! 97: #include <ppc/hexfont.h> ! 98: ! 99: .globl EXT(QNaNbarbarian) ! 100: .align 5 ! 101: ! 102: EXT(QNaNbarbarian): ! 103: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 104: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 105: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 106: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 107: ! 108: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 109: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 110: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 111: .long 0x7FFFDEAD /* This is a quiet not-a-number which is a "known" debug value */ ! 112: ! 113: .globl EXT(free_mappings) ! 114: .align 5 ! 115: ! 116: EXT(free_mappings): ! 117: .long 0 ! 118: ! 119: ! 120: .globl EXT(dbvecs) ! 121: .align 5 ! 122: EXT(dbvecs): ! 123: .set .,.+(33*16) ! 124: ! 125: ! 126: ! 127: /* 8-byte aligned areas */ ! 128: ! 129: .globl EXT(FloatInit) ! 130: .align 3 ! 131: ! 132: EXT(FloatInit): ! 133: .long 0xC24BC195 /* Initial value */ ! 134: .long 0x87859393 /* of floating point registers */ ! 135: .long 0xE681A2C8 /* and others */ ! 136: .long 0x8599855A ! 137: ! 138: .globl EXT(DebugWork) ! 139: .align 3 ! 140: ! 141: EXT(DebugWork): ! 142: .long 0 ! 143: .long 0 ! 144: .long 0 ! 145: .long 0 ! 146: ! 147: .globl EXT(dbfloats) ! 148: .align 3 ! 149: EXT(dbfloats): ! 150: .set .,.+(33*8) ! 151: ! 152: .globl EXT(dbspecrs) ! 153: .align 3 ! 154: EXT(dbspecrs): ! 155: .set .,.+(40*4)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.