]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/ppc/aligned_data.s
xnu-792.12.6.tar.gz
[apple/xnu.git] / osfmk / ppc / aligned_data.s
index 00dbebc3617d8d20d94659fcb4a9935ac2a70df3..8ba3bc96386a97fe690b7908ff5d327db64afb1c 100644 (file)
@@ -1,23 +1,31 @@
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_LICENSE_OSREFERENCE_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
- * 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@
+ * 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, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
+ * Please see the License for the specific language governing rights and 
+ * limitations under the License.
+ *
+ * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
  */
 /*
  *             This module only exists because I don't know how to get the silly C compiler
  
                
 #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 */
+/*             4096-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)
+               .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,39 +91,27 @@ EXT(GratefulDebWork):                                                               ; Enough for 2 rows of 8 chars of 16-pixel wide 32-
 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)
-               .align  5
-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
@@ -125,113 +121,91 @@ EXT(dgWork):
                .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
+/*             32-byte aligned areas */
 
-               .long   0
-               .long   0
-               .long   0
-               
-               
-               .globl  fwdisplock
+               .globl  EXT(dbvecs)
                .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
+               .long   0xC24BC195                                                      /* Initial value */
+               .long   0x87859393                                                      /* of floating point registers */
+               .long   0xE681A2C8                                                      /* and others */
+               .long   0x8599855A
 
-    .globl  EXT(DebugWork)
-       .align  3
+               .globl  EXT(DebugWork)
+               .align  3
 
 EXT(DebugWork):
-       .long   0
-       .long   0
-       .long   0
-       .long   0
+               .long   0
+               .long   0
+               .long   0
+               .long   0
 
-    .globl  EXT(dbfloats)
-       .align  3
+       .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
+
+