diff options
author | ach61@labyrinth.cl.cam.ac.uk <ach61@labyrinth.cl.cam.ac.uk> | 2004-03-25 17:48:08 +0000 |
---|---|---|
committer | ach61@labyrinth.cl.cam.ac.uk <ach61@labyrinth.cl.cam.ac.uk> | 2004-03-25 17:48:08 +0000 |
commit | ade82aa1e598d9204f3786606e52e9d8ce9bd7d7 (patch) | |
tree | 60d2afc1fec82998e16391252e3057f869d9030d | |
parent | 55a7f7956c92001031f4e39b6acfd6b221cc6038 (diff) | |
download | xen-ade82aa1e598d9204f3786606e52e9d8ce9bd7d7.tar.gz xen-ade82aa1e598d9204f3786606e52e9d8ce9bd7d7.tar.bz2 xen-ade82aa1e598d9204f3786606e52e9d8ce9bd7d7.zip |
bitkeeper revision 1.812.1.2 (40631b5896PId5VPtNq3vagDYVMoqQ)
merge changes manually
-rw-r--r-- | xen/arch/i386/pdb-stub.c | 35 | ||||
-rw-r--r-- | xen/common/debug-linux.c | 12 | ||||
-rw-r--r-- | xen/common/debug.c | 19 | ||||
-rw-r--r-- | xen/include/asm-i386/pdb.h | 2 |
4 files changed, 41 insertions, 27 deletions
diff --git a/xen/arch/i386/pdb-stub.c b/xen/arch/i386/pdb-stub.c index 93445c2c4c..f13edf8592 100644 --- a/xen/arch/i386/pdb-stub.c +++ b/xen/arch/i386/pdb-stub.c @@ -7,16 +7,16 @@ * university of cambridge computer laboratory */ -#include <xeno/lib.h> -#include <xeno/sched.h> +#include <xen/lib.h> +#include <xen/sched.h> #include <asm-i386/ptrace.h> -#include <xeno/keyhandler.h> +#include <xen/keyhandler.h> #include <asm/apic.h> #include <asm/domain_page.h> /* [un]map_domain_mem */ #include <asm/processor.h> #include <asm/pdb.h> -#include <xeno/list.h> -#include <xeno/serial.h> +#include <xen/list.h> +#include <xen/serial.h> #define DEBUG_TRACE #ifdef DEBUG_TRACE @@ -347,7 +347,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3, struct task_struct *p; p = find_domain_by_id(pdb_ctx[pdb_level].ctrl); - pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable); + if (p->mm.shadow_mode) + pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.shadow_table); + else + pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable); put_task_struct(p); printk ("PROCESS: PDB SET CONTROL DOMAIN TO 0x%lx 0x%x\n", pdb_ctx[pdb_level].ctrl_cr3, @@ -359,7 +362,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3, struct task_struct *p; p = find_domain_by_id(pdb_ctx[pdb_level].info); - pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable); + if (p->mm.shadow_mode) + pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.shadow_table); + else + pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable); put_task_struct(p); printk ("PROCESS: PDB SET INFO DOMAIN TO 0x%lx 0x%x\n", pdb_ctx[pdb_level].info_cr3, @@ -462,7 +468,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3, if (thread > 0) { struct task_struct *p = find_domain_by_id(thread); - pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable); + if (p->mm.shadow_mode) + pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.shadow_table); + else + pdb_ctx[pdb_level].ctrl_cr3 = pagetable_val(p->mm.pagetable); put_task_struct(p); printk ("PDB SET CONTROL DOMAIN TO 0x%lx 0x%x\n", pdb_ctx[pdb_level].ctrl_cr3, @@ -476,7 +485,10 @@ pdb_process_command (char *ptr, struct pt_regs *regs, unsigned long cr3, if (thread > 0) { struct task_struct *p = find_domain_by_id(thread); - pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable); + if (p->mm.shadow_mode) + pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.shadow_table); + else + pdb_ctx[pdb_level].info_cr3 = pagetable_val(p->mm.pagetable); put_task_struct(p); printk ("PDB SET INFO DOMAIN TO 0x%lx 0x%x\n", pdb_ctx[pdb_level].info_cr3, @@ -969,8 +981,9 @@ int pdb_change_values_one_page(u_char *buffer, int length, if (!(l2_pgentry_val(*l2_table) & _PAGE_PRESENT)) { struct task_struct *p = find_domain_by_id(0); - printk ("cr3: 0x%lx dom0cr3: 0x%lx\n", - cr3, pagetable_val(p->mm.pagetable)); + printk ("cr3: 0x%lx dom0cr3: 0x%lx\n", cr3, + p->mm.shadow_mode ? pagetable_val(p->mm.shadow_table) + : pagetable_val(p->mm.pagetable)); put_task_struct(p); printk ("L2:0x%p (0x%lx) \n", l2_table, l2_pgentry_val(*l2_table)); diff --git a/xen/common/debug-linux.c b/xen/common/debug-linux.c index 8bd0fbaa9c..34ba557cec 100644 --- a/xen/common/debug-linux.c +++ b/xen/common/debug-linux.c @@ -1,6 +1,6 @@ -#include <xeno/config.h> -#include <xeno/types.h> -#include <xeno/lib.h> +#include <xen/config.h> +#include <xen/types.h> +#include <xen/lib.h> #include <hypervisor-ifs/dom0_ops.h> #include <asm/pdb.h> @@ -12,11 +12,11 @@ #define PIDHASH_SZ (4096 >> 2) #define pid_hashfn(x) ((((x) >> 8) ^ (x)) & (PIDHASH_SZ - 1)) -/* from asm-xeno/pgtable-2level.h */ +/* from asm-xen/pgtable-2level.h */ #define PGDIR_SHIFT 22 #define PTRS_PER_PGD 1024 -/* from asm-xeno/page.h */ +/* from asm-xen/page.h */ #define PAGE_SHIFT 12 #define PAGE_SIZE (1UL << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) @@ -34,7 +34,7 @@ void pdb_linux_process_details (unsigned long cr3, int pid, char *buffer); -/* adapted from asm-xeno/page.h */ +/* adapted from asm-xen/page.h */ static inline unsigned long machine_to_phys(unsigned long cr3, unsigned long machine) { diff --git a/xen/common/debug.c b/xen/common/debug.c index ad81f87fb7..09fa0f1cd8 100644 --- a/xen/common/debug.c +++ b/xen/common/debug.c @@ -4,12 +4,12 @@ * xen pervasive debugger */ -#include <xeno/config.h> -#include <xeno/types.h> -#include <xeno/lib.h> +#include <xen/config.h> +#include <xen/types.h> +#include <xen/lib.h> #include <hypervisor-ifs/dom0_ops.h> -#include <xeno/sched.h> -#include <xeno/event.h> +#include <xen/sched.h> +#include <xen/event.h> #include <asm/page.h> #include <asm/pdb.h> @@ -73,7 +73,10 @@ void pdb_do_debug (dom0_op_t *op) struct task_struct *p; p = find_domain_by_id(op->u.debug.domain); - cr3 = pagetable_val(p->mm.pagetable); + if (p->mm.shadow_mode) + cr3 = pagetable_val(p->mm.shadow_table); + else + cr3 = pagetable_val(p->mm.pagetable); for (loop = 0; loop < op->u.debug.in2; loop++) /* length */ { @@ -91,15 +94,13 @@ void pdb_do_debug (dom0_op_t *op) } case 's' : { - unsigned long cpu_mask; struct task_struct * p = find_domain_by_id(op->u.debug.domain); if (p != NULL) { if (p->state != TASK_STOPPED) { - cpu_mask = mark_guest_event(p, _EVENT_STOP); - guest_event_notify(cpu_mask); + send_guest_virq(p, VIRQ_STOP); } put_task_struct(p); } diff --git a/xen/include/asm-i386/pdb.h b/xen/include/asm-i386/pdb.h index d1a8b7a11e..7bfe0254e3 100644 --- a/xen/include/asm-i386/pdb.h +++ b/xen/include/asm-i386/pdb.h @@ -12,7 +12,7 @@ #define __PDB_H__ #include <asm/ptrace.h> -#include <xeno/list.h> +#include <xen/list.h> #include <hypervisor-ifs/hypervisor-if.h> /* for domain id */ extern int pdb_initialized; |