Loading...
osfmk/ppc/aligned_data.s xnu-201 xnu-1228.9.59
--- xnu/xnu-201/osfmk/ppc/aligned_data.s
+++ xnu/xnu-1228.9.59/osfmk/ppc/aligned_data.s
@@ -1,23 +1,29 @@
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  *		This module only exists because I don't know how to get the silly C compiler
@@ -43,32 +49,32 @@
  
 		
 #include <debug.h>
-#include <cpus.h>
 #include <ppc/asm.h>
 #include <ppc/proc_reg.h>
+#include <ppc/spec_reg.h>
+#include <mach/ppc/vm_param.h>
 #include <assym.s>
 
-;
-;		NOTE: We need this only if PREEMPTSTACK is set to non-zero in hw_lock.
-;		Make sure they are set to the same thing
-;
-#define PREEMPTSTACK 0
-
 			.data
 
-/*		1024-byte aligned areas */
-
-		.globl	EXT(per_proc_info)
-		.align	10
-EXT(per_proc_info):									; Per processor data area
-		.fill	(ppSize*NCPUS)/4,4,0				; (filled with 0s)
+/*		4096-byte aligned areas */
+
+		.globl	EXT(PerProcTable)
+		.align	12
+EXT(PerProcTable):									; Per processor table
+		.space	(ppeSize*MAX_CPUS),0				; (filled with 0s)
+
+		.globl	EXT(BootProcInfo)
+		.align	12
+EXT(BootProcInfo):									; Per processor data area
+		.space	ppSize,0							; (filled with 0s)
 
 /*		512-byte aligned areas */
 
 		.globl	EXT(kernel_pmap_store)				; This is the kernel_pmap
 		.align	8
 EXT(kernel_pmap_store):
-		.set	.,.+PMAP_SIZE
+		.set	.,.+pmapSize
 
 
 /*		256-byte aligned areas */
@@ -83,155 +89,121 @@
 debstash:
 		.set	.,.+256
 
-		.globl	EXT(hw_counts)						; Counter banks per processor
-		.align	8
-EXT(hw_counts):
-		.set	.,.+(NCPUS*256)
-
-#if PREEMPTSTACK
-
-;
-;		NOTE: We need this only if PREEMPTSTACK is set to non-zero in hw_lock.
-;
-
-		.globl	EXT(DBGpreempt)						; preemption debug stack
-		.align	8
-EXT(DBGpreempt):
-		.set	.,.+(NCPUS*PREEMPTSTACK*16)
-#endif
-
-
-/*		32-byte aligned areas */
-
-		.globl	EXT(saveanchor)
-		.align	5
-EXT(saveanchor):
-		.set	.,.+SVsize
+/*		128-byte aligned areas */
 
 		.globl	EXT(mapCtl)
-		.align	5
+		.align	7
 EXT(mapCtl):
 		.set	.,.+mapcsize
 
-		.globl	EXT(dgWork)
+		.globl	fwdisplock
+		.align	7
+fwdisplock:
+		.set	.,.+128
+
+		.globl	EXT(free_mappings)
+		.align	7
+	
+EXT(free_mappings):
+		.long	0
+
+		.globl	EXT(NMIss)
+		.align	7
+EXT(NMIss):
+		.long	0
+		.long	0
+		.long	0
+		.long	0
+		.long	0
+		.long	0
+		.long	0
+		.long	0
+
+/*		32-byte aligned areas */
+
+		.globl	EXT(dbvecs)
 		.align	5
-EXT(dgWork):
-		.long	0
-		.long	0
-		.long	0
-		.long	0
-		.long	0
-		.long	0
-		.long	0
-		.long	0
-
-		.globl	EXT(trcWork)
-		.align	5
-EXT(trcWork):
-#if DEBUG
-/*		.long	0x02000000 	*/			/* Only alignment exceptions enabled */
-		.long	0xFFFFFFFF 				/* All enabled */
-/*		.long	0xFBBFFFFF	*/			/* EXT and DEC disabled */
-/*		.long	0xFFBFFFFF	*/			/* DEC disabled */
-#else
-		.long	0x00000000				; All disabled on non-debug systems
-#endif
-		.long	EXT(traceTableBeg)		; The next trace entry to use
-		.long	EXT(traceTableBeg)		; Start of the trace table
-		.long	EXT(traceTableEnd)		; End (wrap point) of the trace
-		.long	0						; Saved mask while in debugger
-
-		.long	0
-		.long	0
-		.long	0
-		
-		
-		.globl	fwdisplock
-		.align	5
-fwdisplock:
-		.set	.,.+32
+EXT(dbvecs):
+		.set	.,.+(33*16)
 
 		.globl	hexfont
 		.align	5
 #include <ppc/hexfont.h>
 
-    .globl  EXT(QNaNbarbarian)
-	.align	5
+    	.globl  EXT(QNaNbarbarian)
+		.align	5
 
 EXT(QNaNbarbarian):
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-	.long	0x7FFFDEAD		/* This is a quiet not-a-number which is a "known" debug value */
-
-	.globl	EXT(free_mappings)
-	.align	5
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
 	
-EXT(free_mappings):
-	.long	0
-
-	.globl	EXT(syncClkSpot)
-	.align	5
-EXT(syncClkSpot):
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-
-	.globl	EXT(NMIss)
-	.align	5
-EXT(NMIss):
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-
-	.globl	EXT(dbvecs)
-	.align	5
-EXT(dbvecs):
-	.set	.,.+(33*16)
-
-
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
+		.long	0x7FFFDEAD							/* This is a quiet not-a-number which is a "known" debug value */
 
 /*		8-byte aligned areas */
 
-    .globl  EXT(FloatInit)
-	.align	3
+    	.globl  EXT(FloatInit)
+		.align	3
 
 EXT(FloatInit):
-	.long	0xC24BC195		/* Initial value */
-	.long	0x87859393		/* of floating point registers */
-	.long	0xE681A2C8		/* and others */
-	.long	0x8599855A
-
-    .globl  EXT(DebugWork)
-	.align	3
+		.long	0xC24BC195							/* Initial value */
+		.long	0x87859393							/* of floating point registers */
+		.long	0xE681A2C8							/* and others */
+		.long	0x8599855A
+
+		.globl  EXT(DebugWork)
+		.align	3
 
 EXT(DebugWork):
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-
-    .globl  EXT(dbfloats)
-	.align	3
+		.long	0
+		.long	0
+		.long	0
+		.long	0
+
+    	.globl  EXT(dbfloats)
+		.align	3
 EXT(dbfloats):
 		.set	.,.+(33*8)
 
-    .globl  EXT(dbspecrs)
-	.align	3
+		.globl  EXT(dbspecrs)
+		.align	3
 EXT(dbspecrs):
-		.set	.,.+(80*4)
+		.set	.,.+(336*4)
+
+/*
+ *		Boot processor Interrupt and debug stacks go here.
+ */
+
+                /* in the __HIB section since the hibernate restore code uses this stack. */
+		.section __HIB, __data
+
+		.align  PPC_PGSHIFT
+     
+	 	.globl  EXT(intstack)
+EXT(intstack):
+	 	.globl  EXT(gIOHibernateRestoreStack)
+EXT(gIOHibernateRestoreStack):
+
+		.set	.,.+INTSTACK_SIZE
+
+	 	.globl  EXT(gIOHibernateRestoreStackEnd)
+EXT(gIOHibernateRestoreStackEnd):
+
+                /* back to the regular __DATA section. */
+
+		.section __DATA, __data
+		.align  PPC_PGSHIFT
+
+/* Debugger stack - used by the debugger if present */
+
+    	.globl  EXT(debstack)
+EXT(debstack):
+		.set	., .+KERNEL_STACK_SIZE
+
+		.section __DATA, __data
+
+