aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorach61@labyrinth.cl.cam.ac.uk <ach61@labyrinth.cl.cam.ac.uk>2004-03-25 17:48:08 +0000
committerach61@labyrinth.cl.cam.ac.uk <ach61@labyrinth.cl.cam.ac.uk>2004-03-25 17:48:08 +0000
commitade82aa1e598d9204f3786606e52e9d8ce9bd7d7 (patch)
tree60d2afc1fec82998e16391252e3057f869d9030d
parent55a7f7956c92001031f4e39b6acfd6b221cc6038 (diff)
downloadxen-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.c35
-rw-r--r--xen/common/debug-linux.c12
-rw-r--r--xen/common/debug.c19
-rw-r--r--xen/include/asm-i386/pdb.h2
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;