|
|
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.