/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_LICENSE_HEADER_START@
- *
- * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
+ * @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. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * 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
* Please see the License for the specific language governing rights and
* limitations under the License.
*
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
* @OSF_COPYRIGHT@
#include <i386/thread.h> /* for thread_status */
#include <i386/eflags.h>
#include <i386/trap.h>
+#include <i386/pmCPU.h>
+#include <i386/hpet.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 */
-typedef struct i386_saved_state db_regs_t;
+typedef struct x86_saved_state32 db_regs_t;
db_regs_t ddb_regs; /* register state */
#define DDB_REGS (&ddb_regs)
extern int db_active; /* ddb is active */
db_check_access(addr,size,task)
#define DB_PHYS_EQ(task1,addr1,task2,addr2) \
db_phys_eq(task1,addr1,task2,addr2)
-#define DB_VALID_KERN_ADDR(addr) \
- ((addr) >= VM_MIN_KERNEL_ADDRESS && \
- (addr) < VM_MAX_KERNEL_ADDRESS)
+#define DB_VALID_KERN_ADDR(addr) (1)
#define DB_VALID_ADDRESS(addr,user) \
((!(user) && DB_VALID_KERN_ADDR(addr)) || \
((user) && (addr) < VM_MAX_ADDRESS))
db_expr_t count,
char *modif);
+extern void db_display_kmod(db_expr_t addr, boolean_t have_addr,
+ db_expr_t count, char *modif);
+extern void db_display_real(db_expr_t addr, boolean_t have_addr,
+ db_expr_t count, char *modif);
+extern void db_display_iokit(db_expr_t addr, boolean_t have_addr,
+ db_expr_t count, char * modif);
+extern void db_cpuid(db_expr_t addr, boolean_t have_addr, db_expr_t count,
+ char *modif);
+extern void db_msr(db_expr_t addr, boolean_t have_addr, db_expr_t count,
+ char *modif);
+extern void db_apic(db_expr_t addr, boolean_t have_addr, db_expr_t count,
+ char *modif);
+extern void db_display_hpet(hpetReg_t *);
+extern void db_hpet(db_expr_t addr, boolean_t have_addr, db_expr_t count,
+ char *modif);
+
/* macros for printing OS server dependent task name */
#define DB_TASK_NAME(task) db_task_name(task)
/* macro for checking if a thread has used floating-point */
-#define db_act_fp_used(act) (act && act->mact.pcb->ims.ifps)
+#define db_act_fp_used(act) (act && act->machine.pcb->ifps)
extern void db_tss_to_frame(
int tss_sel,
- struct i386_saved_state *regs);
+ x86_saved_state32_t *regs);
extern int kdb_trap(
int type,
int code,
- struct i386_saved_state *regs);
+ x86_saved_state32_t *regs);
extern boolean_t db_trap_from_asm(
- struct i386_saved_state *regs);
-extern int dr6(void);
+ x86_saved_state32_t *regs);
extern void kdb_on(
int cpu);
-extern void cnpollc(
- boolean_t on);
+
+#if MACH_KDB
+extern void db_getpmgr(pmData_t *pmj);
+extern void db_chkpmgr(void);
+#endif /* MACH_KDB */
+extern void db_pmgr(db_expr_t addr, int have_addr, db_expr_t count, char * modif);
+extern void db_nap(db_expr_t addr, int have_addr, db_expr_t count, char * modif);
#endif /* _I386_DB_MACHDEP_H_ */