]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/ppc/db_machdep.h
xnu-517.tar.gz
[apple/xnu.git] / osfmk / ppc / db_machdep.h
index 2d997f922fd8fa95dbd718287c200adb5ca82a3c..cde656d26bd9c7cc1b189557c75d775051f692c7 100644 (file)
@@ -3,19 +3,22 @@
  *
  * @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.
+ * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * 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. 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.
+ * 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_HEADER_END@
  */
 #include <ppc/thread.h>                /* for thread_status */
 #include <ppc/trap.h>
 #include <ppc/proc_reg.h>
+#include <ppc/savearea.h>
 
-typedef        vm_offset_t     db_addr_t;      /* address - unsigned */
-typedef        int             db_expr_t;      /* expression - signed */
+typedef        addr64_t db_addr_t;     /* address - unsigned */
+typedef        uint64_t db_expr_t;     /* expression - signed???  try unsigned */
 
-typedef struct ppc_saved_state db_regs_t;
+typedef struct savearea db_regs_t;
 db_regs_t      ddb_regs;       /* register state */
 #define        DDB_REGS        (&ddb_regs)
 extern int     db_active;      /* ddb is active */
 
-#define        PC_REGS(regs)   ((db_addr_t)(regs)->srr0)
+#define        PC_REGS(regs)   ((db_addr_t)(regs)->save_srr0)
 
 #define        BKPT_INST       0x7c810808      /* breakpoint instruction */
 #define        BKPT_SIZE       (4)             /* size of breakpoint inst */
 #define        BKPT_SET(inst)  (BKPT_INST)
 
-#define db_clear_single_step(regs)     ((regs)->srr1 &= ~MASK(MSR_SE))
-#define db_set_single_step(regs)       ((regs)->srr1 |= MASK(MSR_SE))
+#define db_clear_single_step(regs)     ((regs)->save_srr1 &= ~MASK(MSR_SE))
+#define db_set_single_step(regs)       ((regs)->save_srr1 |= MASK(MSR_SE))
 
 #define        IS_BREAKPOINT_TRAP(type, code)  (FALSE)
 #define IS_WATCHPOINT_TRAP(type, code) (FALSE)
@@ -100,18 +104,18 @@ int db_inst_store(unsigned long);
        db_phys_eq(task1,addr1,task2,addr2)
 #define DB_VALID_KERN_ADDR(addr)                               \
        ((addr) >= VM_MIN_KERNEL_ADDRESS &&                     \
-        (addr) < VM_MAX_KERNEL_ADDRESS)
+        (addr) < vm_last_addr)
 #define DB_VALID_ADDRESS(addr,user)                            \
        ((!(user) && DB_VALID_KERN_ADDR(addr)) ||               \
         ((user) && (addr) < VM_MAX_ADDRESS))
 
 /*
- * Given pointer to ppc_saved_state, determine if it represents
+ * Given pointer to savearea, determine if it represents
  * a thread executing a) in user space, b) in the kernel, or c)
  * in a kernel-loaded task.  Return true for cases a) and c).
  */
 #define IS_USER_TRAP(regs)     \
-     (USER_MODE(regs->srr1))
+     (USER_MODE(regs->save_srr1))
 
 extern boolean_t       db_check_access(
                                vm_offset_t     addr,
@@ -126,10 +130,6 @@ extern db_addr_t   db_disasm(
                                db_addr_t       loc,
                                boolean_t       altfmt,
                                task_t          task);
-extern vm_offset_t     db_kvtophys( 
-                               space_t space,
-                               vm_offset_t va);
-
 extern void            db_read_bytes(
                                vm_offset_t     addr,
                                int             size,
@@ -175,18 +175,13 @@ extern void               db_task_name(
 
 extern void            kdb_trap(
                                int                     type,
-                               struct ppc_saved_state  *regs);
+                               struct savearea *regs);
 extern boolean_t       db_trap_from_asm(
-                               struct ppc_saved_state *regs);
+                               struct savearea *regs);
 extern void            kdb_on(
                                int                     cpu);
 extern void            cnpollc(
                                boolean_t               on);
-                               
-extern void            db_phys_copy(
-                               vm_offset_t, 
-                               vm_offset_t, 
-                               vm_size_t);
 
 extern boolean_t       db_phys_cmp(
                                vm_offset_t,