*
* @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)
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,
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,
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,