summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c2
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_cmds.c7
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_fmt.c8
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_kproc.c3
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_kvm.c4
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_rawfile.c4
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_target.c4
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_target.h10
-rw-r--r--usr/src/cmd/mdb/intel/kmdb/kaif.c34
-rw-r--r--usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c34
-rw-r--r--usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c18
-rw-r--r--usr/src/cmd/mdb/intel/mdb/proc_amd64dep.c3
-rw-r--r--usr/src/cmd/mdb/intel/mdb/proc_ia32dep.c3
13 files changed, 84 insertions, 50 deletions
diff --git a/usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c b/usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c
index 316ed77e8e..16bbb46a3c 100644
--- a/usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c
+++ b/usr/src/cmd/mdb/common/kmdb/kmdb_kvm.c
@@ -285,6 +285,8 @@ kmt_vtop(mdb_tgt_t *t, mdb_tgt_as_t as, uintptr_t va, physaddr_t *pap)
case (uintptr_t)MDB_TGT_AS_IO:
return (set_errno(EINVAL));
case (uintptr_t)MDB_TGT_AS_VIRT:
+ case (uintptr_t)MDB_TGT_AS_VIRT_I:
+ case (uintptr_t)MDB_TGT_AS_VIRT_S:
if ((asp = (struct as *)kmt_read_kas(t)) == NULL)
return (-1); /* errno is set for us */
break;
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_cmds.c b/usr/src/cmd/mdb/common/mdb/mdb_cmds.c
index fbd404a107..95584e6a89 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_cmds.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_cmds.c
@@ -2090,7 +2090,7 @@ cmd_dis(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
if (opt_f)
as = MDB_TGT_AS_FILE;
else
- as = MDB_TGT_AS_VIRT;
+ as = MDB_TGT_AS_VIRT_I;
if (opt_w == FALSE) {
n++;
@@ -2635,8 +2635,9 @@ tgt_status(const mdb_tgt_status_t *tsp)
return (DCMD_OK);
if (tsp->st_pc != 0) {
- if (mdb_dis_ins2str(mdb.m_disasm, mdb.m_target, MDB_TGT_AS_VIRT,
- buf, sizeof (buf), tsp->st_pc) != tsp->st_pc)
+ if (mdb_dis_ins2str(mdb.m_disasm, mdb.m_target,
+ MDB_TGT_AS_VIRT_I, buf, sizeof (buf), tsp->st_pc) !=
+ tsp->st_pc)
format = "target stopped at:\n%-#16a%8T%s\n";
else
format = "target stopped at %a:\n";
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_fmt.c b/usr/src/cmd/mdb/common/mdb/mdb_fmt.c
index 78d27bdcb9..471d918ca5 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_fmt.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_fmt.c
@@ -21,7 +21,7 @@
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
- * Copyright 2016 Joyent, Inc.
+ * Copyright 2018 Joyent, Inc.
* Copyright (c) 2017 by Delphix. All rights reserved.
*/
@@ -409,6 +409,9 @@ fmt_instr(mdb_tgt_t *t, mdb_tgt_as_t as, mdb_tgt_addr_t addr, size_t cnt)
char buf[BUFSIZ];
uintptr_t naddr;
+ if (as == MDB_TGT_AS_VIRT)
+ as = MDB_TGT_AS_VIRT_I;
+
while (cnt-- != 0) {
naddr = mdb_dis_ins2str(mdb.m_disasm, t, as,
buf, sizeof (buf), addr);
@@ -429,6 +432,9 @@ fmt_dotinstr(mdb_tgt_t *t, mdb_tgt_as_t as, mdb_tgt_addr_t addr, size_t cnt)
uintptr_t naddr;
uint32_t i;
+ if (as == MDB_TGT_AS_VIRT)
+ as = MDB_TGT_AS_VIRT_I;
+
for (mdb_iob_clrflags(mdb.m_out, oflags); cnt-- != 0; addr = naddr) {
if (mdb_tgt_aread(t, as, &i, sizeof (i), addr) != sizeof (i)) {
warn("failed to read data from target");
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_kproc.c b/usr/src/cmd/mdb/common/mdb/mdb_kproc.c
index b61b0a2b0b..f09b97db0d 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_kproc.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_kproc.c
@@ -553,7 +553,8 @@ kp_vtop(mdb_tgt_t *t, mdb_tgt_as_t as, uintptr_t va, physaddr_t *pap)
kp_data_t *kp = t->t_data;
physaddr_t pa;
- if (as != MDB_TGT_AS_VIRT)
+ if (as != MDB_TGT_AS_VIRT && as != MDB_TGT_AS_VIRT_I &&
+ as != MDB_TGT_AS_VIRT_S)
return (set_errno(EINVAL));
if ((pa = kvm_physaddr(kp->kp_cookie, kp->kp_as, va)) != -1ULL) {
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_kvm.c b/usr/src/cmd/mdb/common/mdb/mdb_kvm.c
index 8e96c04350..6b6c982184 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_kvm.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_kvm.c
@@ -23,7 +23,7 @@
*/
/*
- * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2018, Joyent, Inc. All rights reserved.
*/
/*
@@ -802,6 +802,8 @@ kt_vtop(mdb_tgt_t *t, mdb_tgt_as_t as, uintptr_t va, physaddr_t *pap)
case (uintptr_t)MDB_TGT_AS_IO:
return (set_errno(EINVAL));
case (uintptr_t)MDB_TGT_AS_VIRT:
+ case (uintptr_t)MDB_TGT_AS_VIRT_I:
+ case (uintptr_t)MDB_TGT_AS_VIRT_S:
asp = kt->k_as;
break;
default:
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_rawfile.c b/usr/src/cmd/mdb/common/mdb/mdb_rawfile.c
index d2857a6579..529b71a581 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_rawfile.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_rawfile.c
@@ -143,6 +143,8 @@ rf_aread(mdb_tgt_t *t, mdb_tgt_as_t as, void *buf,
{
switch ((uintptr_t)as) {
case (uintptr_t)MDB_TGT_AS_VIRT:
+ case (uintptr_t)MDB_TGT_AS_VIRT_I:
+ case (uintptr_t)MDB_TGT_AS_VIRT_S:
case (uintptr_t)MDB_TGT_AS_PHYS:
if (RF_CORE(t->t_data) != NULL)
return (rf_read(RF_CORE(t->t_data), buf, len, addr));
@@ -160,6 +162,8 @@ rf_awrite(mdb_tgt_t *t, mdb_tgt_as_t as, const void *buf,
{
switch ((uintptr_t)as) {
case (uintptr_t)MDB_TGT_AS_VIRT:
+ case (uintptr_t)MDB_TGT_AS_VIRT_I:
+ case (uintptr_t)MDB_TGT_AS_VIRT_S:
case (uintptr_t)MDB_TGT_AS_PHYS:
if (RF_CORE(t->t_data) != NULL)
return (rf_write(RF_CORE(t->t_data), buf, len, addr));
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_target.c b/usr/src/cmd/mdb/common/mdb/mdb_target.c
index edeac638e9..1357d9b7dc 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_target.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_target.c
@@ -398,6 +398,8 @@ mdb_tgt_aread(mdb_tgt_t *t, mdb_tgt_as_t as,
switch ((uintptr_t)as) {
case (uintptr_t)MDB_TGT_AS_VIRT:
+ case (uintptr_t)MDB_TGT_AS_VIRT_I:
+ case (uintptr_t)MDB_TGT_AS_VIRT_S:
return (t->t_ops->t_vread(t, buf, n, addr));
case (uintptr_t)MDB_TGT_AS_PHYS:
return (t->t_ops->t_pread(t, buf, n, addr));
@@ -421,6 +423,8 @@ mdb_tgt_awrite(mdb_tgt_t *t, mdb_tgt_as_t as,
switch ((uintptr_t)as) {
case (uintptr_t)MDB_TGT_AS_VIRT:
+ case (uintptr_t)MDB_TGT_AS_VIRT_I:
+ case (uintptr_t)MDB_TGT_AS_VIRT_S:
return (t->t_ops->t_vwrite(t, buf, n, addr));
case (uintptr_t)MDB_TGT_AS_PHYS:
return (t->t_ops->t_pwrite(t, buf, n, addr));
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_target.h b/usr/src/cmd/mdb/common/mdb/mdb_target.h
index c36b85e2f3..a703031d61 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_target.h
+++ b/usr/src/cmd/mdb/common/mdb/mdb_target.h
@@ -139,10 +139,12 @@ typedef void * mdb_tgt_as_t; /* Opaque address space id */
typedef uint64_t mdb_tgt_addr_t; /* Generic unsigned address */
typedef uint64_t physaddr_t; /* Physical memory address */
-#define MDB_TGT_AS_VIRT ((mdb_tgt_as_t)-1L) /* Virtual address space */
-#define MDB_TGT_AS_PHYS ((mdb_tgt_as_t)-2L) /* Physical address space */
-#define MDB_TGT_AS_FILE ((mdb_tgt_as_t)-3L) /* Object file address space */
-#define MDB_TGT_AS_IO ((mdb_tgt_as_t)-4L) /* I/o address space */
+#define MDB_TGT_AS_VIRT ((mdb_tgt_as_t)-1L) /* Virtual address space: */
+#define MDB_TGT_AS_VIRT_I ((mdb_tgt_as_t)-2L) /* special case for code */
+#define MDB_TGT_AS_VIRT_S ((mdb_tgt_as_t)-3L) /* special case for stack */
+#define MDB_TGT_AS_PHYS ((mdb_tgt_as_t)-4L) /* Physical address space */
+#define MDB_TGT_AS_FILE ((mdb_tgt_as_t)-5L) /* Object file address space */
+#define MDB_TGT_AS_IO ((mdb_tgt_as_t)-6L) /* I/o address space */
extern ssize_t mdb_tgt_aread(mdb_tgt_t *, mdb_tgt_as_t,
void *, size_t, mdb_tgt_addr_t);
diff --git a/usr/src/cmd/mdb/intel/kmdb/kaif.c b/usr/src/cmd/mdb/intel/kmdb/kaif.c
index 55754f4130..b525a38160 100644
--- a/usr/src/cmd/mdb/intel/kmdb/kaif.c
+++ b/usr/src/cmd/mdb/intel/kmdb/kaif.c
@@ -296,12 +296,12 @@ kaif_brkpt_arm(uintptr_t addr, mdb_instr_t *instrp)
return (set_errno(EMDB_TGTNOTSUP));
}
- if (mdb_tgt_vread(mdb.m_target, instrp, sizeof (mdb_instr_t), addr) !=
- sizeof (mdb_instr_t))
+ if (mdb_tgt_aread(mdb.m_target, MDB_TGT_AS_VIRT_I, instrp,
+ sizeof (mdb_instr_t), addr) != sizeof (mdb_instr_t))
return (-1); /* errno is set for us */
- if (mdb_tgt_vwrite(mdb.m_target, &bkpt, sizeof (mdb_instr_t), addr) !=
- sizeof (mdb_instr_t))
+ if (mdb_tgt_awrite(mdb.m_target, MDB_TGT_AS_VIRT_I, &bkpt,
+ sizeof (mdb_instr_t), addr) != sizeof (mdb_instr_t))
return (-1); /* errno is set for us */
return (0);
@@ -310,8 +310,8 @@ kaif_brkpt_arm(uintptr_t addr, mdb_instr_t *instrp)
static int
kaif_brkpt_disarm(uintptr_t addr, mdb_instr_t instrp)
{
- if (mdb_tgt_vwrite(mdb.m_target, &instrp, sizeof (mdb_instr_t), addr) !=
- sizeof (mdb_instr_t))
+ if (mdb_tgt_awrite(mdb.m_target, MDB_TGT_AS_VIRT_I, &instrp,
+ sizeof (mdb_instr_t), addr) != sizeof (mdb_instr_t))
return (-1); /* errno is set for us */
return (0);
@@ -486,7 +486,7 @@ kaif_step(void)
}
if ((npc = mdb_dis_nextins(mdb.m_disasm, mdb.m_target,
- MDB_TGT_AS_VIRT, pc)) == pc) {
+ MDB_TGT_AS_VIRT_I, pc)) == pc) {
warn("failed to decode instruction at %a for step\n", pc);
return (set_errno(EINVAL));
}
@@ -498,8 +498,8 @@ kaif_step(void)
* versus their 64-bit counterparts.
*/
do {
- if (mdb_tgt_vread(mdb.m_target, &instr, sizeof (mdb_instr_t),
- pc + pcoff) != sizeof (mdb_instr_t)) {
+ if (mdb_tgt_aread(mdb.m_target, MDB_TGT_AS_VIRT_I, &instr,
+ sizeof (mdb_instr_t), pc + pcoff) != sizeof (mdb_instr_t)) {
warn("failed to read at %p for step",
(void *)(pc + pcoff));
return (-1);
@@ -518,8 +518,8 @@ kaif_step(void)
return (set_errno(EMDB_TGTNOTSUP));
case M_ESC:
- if (mdb_tgt_vread(mdb.m_target, &instr, sizeof (mdb_instr_t),
- pc + pcoff) != sizeof (mdb_instr_t)) {
+ if (mdb_tgt_aread(mdb.m_target, MDB_TGT_AS_VIRT_I, &instr,
+ sizeof (mdb_instr_t), pc + pcoff) != sizeof (mdb_instr_t)) {
warn("failed to read at %p for step",
(void *)(pc + pcoff));
return (-1);
@@ -568,8 +568,8 @@ kaif_step(void)
(void) kmdb_dpi_get_register("sp", &sp);
(void) kmdb_dpi_get_register(FLAGS_REG_NAME, &fl);
- if (mdb_tgt_vread(mdb.m_target, &newfl, sizeof (kreg_t),
- sp) != sizeof (kreg_t)) {
+ if (mdb_tgt_aread(mdb.m_target, MDB_TGT_AS_VIRT_S, &newfl,
+ sizeof (kreg_t), sp) != sizeof (kreg_t)) {
warn("failed to read " FLAGS_REG_NAME
" at %p for popfl step\n", (void *)sp);
return (set_errno(EMDB_TGTNOTSUP)); /* XXX ? */
@@ -577,8 +577,8 @@ kaif_step(void)
fl = (fl & ~KREG_EFLAGS_IF_MASK) | KREG_EFLAGS_TF_MASK;
- if (mdb_tgt_vwrite(mdb.m_target, &fl, sizeof (kreg_t),
- sp) != sizeof (kreg_t)) {
+ if (mdb_tgt_awrite(mdb.m_target, MDB_TGT_AS_VIRT_S, &fl,
+ sizeof (kreg_t), sp) != sizeof (kreg_t)) {
warn("failed to update " FLAGS_REG_NAME
" at %p for popfl step\n", (void *)sp);
return (set_errno(EMDB_TGTNOTSUP)); /* XXX ? */
@@ -617,8 +617,8 @@ kaif_step(void)
*/
(void) kmdb_dpi_get_register("sp", &sp);
- if (mdb_tgt_vwrite(mdb.m_target, &oldfl, sizeof (kreg_t),
- sp) != sizeof (kreg_t)) {
+ if (mdb_tgt_awrite(mdb.m_target, MDB_TGT_AS_VIRT_S, &oldfl,
+ sizeof (kreg_t), sp) != sizeof (kreg_t)) {
warn("failed to update pushed " FLAGS_REG_NAME
" at %p after pushfl step\n", (void *)sp);
return (set_errno(EMDB_TGTNOTSUP)); /* XXX ? */
diff --git a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c
index 503b171fad..7740a82d8f 100644
--- a/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_amd64util.c
@@ -245,7 +245,8 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
while (fp != 0) {
int args_style = 0;
- if (mdb_tgt_vread(t, &fr, sizeof (fr), fp) != sizeof (fr)) {
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, &fr, sizeof (fr), fp) !=
+ sizeof (fr)) {
err = EMDB_NOMAP;
goto badfp;
}
@@ -260,8 +261,9 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
if (advance_tortoise != 0) {
struct fr tfr;
- if (mdb_tgt_vread(t, &tfr, sizeof (tfr),
- tortoise_fp) != sizeof (tfr)) {
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, &tfr,
+ sizeof (tfr), tortoise_fp) !=
+ sizeof (tfr)) {
err = EMDB_NOMAP;
goto badfp;
}
@@ -331,7 +333,8 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
insnsize = MIN(MIN(s.st_size, SAVEARGS_INSN_SEQ_LEN),
pc - s.st_value);
- if (mdb_tgt_vread(t, ins, insnsize, s.st_value) != insnsize)
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, ins, insnsize,
+ s.st_value) != insnsize)
argc = 0;
if ((argc != 0) &&
@@ -350,8 +353,8 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
if (args_style == SAVEARGS_STRUCT_ARGS)
size += sizeof (long);
- if (mdb_tgt_vread(t, fr_argv, size, (fp - size))
- != size)
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, fr_argv, size,
+ (fp - size)) != size)
return (-1); /* errno has been set for us */
/*
@@ -370,7 +373,8 @@ mdb_amd64_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
sizeof (fr_argv) -
(reg_argc * sizeof (long)));
- if (mdb_tgt_vread(t, &fr_argv[reg_argc], size,
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S,
+ &fr_argv[reg_argc], size,
fp + sizeof (fr)) != size)
return (-1); /* errno has been set */
}
@@ -435,14 +439,15 @@ mdb_amd64_step_out(mdb_tgt_t *t, uintptr_t *p, kreg_t pc, kreg_t fp, kreg_t sp,
if (pc == s.st_value && curinstr == M_PUSHQ_RBP)
fp = sp - 8;
else if (pc == s.st_value + 1 && curinstr == M_REX_W) {
- if (mdb_tgt_vread(t, &curinstr, sizeof (curinstr),
- pc + 1) == sizeof (curinstr) && curinstr ==
- M_MOVL_RBP)
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, &curinstr,
+ sizeof (curinstr), pc + 1) == sizeof (curinstr) &&
+ curinstr == M_MOVL_RBP)
fp = sp;
}
}
- if (mdb_tgt_vread(t, &fr, sizeof (fr), fp) == sizeof (fr)) {
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, &fr, sizeof (fr), fp) ==
+ sizeof (fr)) {
*p = fr.fr_savpc;
return (0);
}
@@ -477,8 +482,8 @@ mdb_amd64_next(mdb_tgt_t *t, uintptr_t *p, kreg_t pc, mdb_instr_t curinstr)
/* Skip the rex prefix, if any */
callpc = pc;
while (curinstr >= M_REX_LO && curinstr <= M_REX_HI) {
- if (mdb_tgt_vread(t, &curinstr, sizeof (curinstr), ++callpc) !=
- sizeof (curinstr))
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, &curinstr,
+ sizeof (curinstr), ++callpc) != sizeof (curinstr))
return (-1); /* errno is set for us */
}
@@ -487,7 +492,8 @@ mdb_amd64_next(mdb_tgt_t *t, uintptr_t *p, kreg_t pc, mdb_instr_t curinstr)
return (set_errno(EAGAIN));
}
- if ((npc = mdb_dis_nextins(mdb.m_disasm, t, MDB_TGT_AS_VIRT, pc)) == pc)
+ npc = mdb_dis_nextins(mdb.m_disasm, t, MDB_TGT_AS_VIRT_I, pc);
+ if (npc == pc)
return (-1); /* errno is set for us */
*p = npc;
diff --git a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c
index 2f5d650912..22e56a0eda 100644
--- a/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c
+++ b/usr/src/cmd/mdb/intel/mdb/mdb_ia32util.c
@@ -173,7 +173,8 @@ kvm_argcount(mdb_tgt_t *t, uintptr_t eip, ssize_t size)
M_ADD_IMM8 = 0x83 /* ADD imm8 to r/m32 */
};
- if (mdb_tgt_vread(t, ins, sizeof (ins), eip) != sizeof (ins))
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, ins, sizeof (ins), eip) !=
+ sizeof (ins))
return (0);
if (ins[1] != M_MODRM_ESP)
@@ -233,8 +234,8 @@ mdb_ia32_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
err = EMDB_STKALIGN;
goto badfp;
}
- if ((size = mdb_tgt_vread(t, &fr, sizeof (fr), fp)) >=
- (ssize_t)(2 * sizeof (uintptr32_t))) {
+ if ((size = mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, &fr,
+ sizeof (fr), fp)) >= (ssize_t)(2 * sizeof (uintptr32_t))) {
size -= (ssize_t)(2 * sizeof (uintptr32_t));
argc = kvm_argcount(t, fr.fr_savpc, size);
} else {
@@ -252,8 +253,9 @@ mdb_ia32_kvm_stack_iter(mdb_tgt_t *t, const mdb_tgt_gregset_t *gsp,
if (advance_tortoise != 0) {
struct fr tfr;
- if (mdb_tgt_vread(t, &tfr, sizeof (tfr),
- tortoise_fp) != sizeof (tfr)) {
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, &tfr,
+ sizeof (tfr), tortoise_fp) !=
+ sizeof (tfr)) {
err = EMDB_NOMAP;
goto badfp;
}
@@ -335,7 +337,8 @@ mdb_ia32_step_out(mdb_tgt_t *t, uintptr_t *p, kreg_t pc, kreg_t fp, kreg_t sp,
fp = sp;
}
- if (mdb_tgt_vread(t, &fr, sizeof (fr), fp) == sizeof (fr)) {
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_S, &fr, sizeof (fr), fp) ==
+ sizeof (fr)) {
*p = fr.fr_savpc;
return (0);
}
@@ -386,7 +389,8 @@ mdb_ia32_next(mdb_tgt_t *t, uintptr_t *p, kreg_t pc, mdb_instr_t curinstr)
* read the subsequent Mod/RM byte to perform additional decoding.
*/
if (curinstr == M_CALL_REG) {
- if (mdb_tgt_vread(t, &m, sizeof (m), pc + 1) != sizeof (m))
+ if (mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, &m, sizeof (m), pc + 1)
+ != sizeof (m))
return (-1); /* errno is set for us */
/*
diff --git a/usr/src/cmd/mdb/intel/mdb/proc_amd64dep.c b/usr/src/cmd/mdb/intel/mdb/proc_amd64dep.c
index 39fcaaa405..a2f401d74c 100644
--- a/usr/src/cmd/mdb/intel/mdb/proc_amd64dep.c
+++ b/usr/src/cmd/mdb/intel/mdb/proc_amd64dep.c
@@ -144,7 +144,8 @@ pt_read_instr(mdb_tgt_t *t)
const lwpstatus_t *psp = &Pstatus(t->t_pshandle)->pr_lwp;
uint8_t ret = 0;
- (void) mdb_tgt_vread(t, &ret, sizeof (ret), psp->pr_reg[REG_RIP]);
+ (void) mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, &ret, sizeof (ret),
+ psp->pr_reg[REG_RIP]);
return (ret);
}
diff --git a/usr/src/cmd/mdb/intel/mdb/proc_ia32dep.c b/usr/src/cmd/mdb/intel/mdb/proc_ia32dep.c
index 0f9b8ae42c..fe207df5f4 100644
--- a/usr/src/cmd/mdb/intel/mdb/proc_ia32dep.c
+++ b/usr/src/cmd/mdb/intel/mdb/proc_ia32dep.c
@@ -99,7 +99,8 @@ pt_read_instr(mdb_tgt_t *t)
const lwpstatus_t *psp = &Pstatus(t->t_pshandle)->pr_lwp;
uint8_t ret = 0;
- (void) mdb_tgt_vread(t, &ret, sizeof (ret), psp->pr_reg[EIP]);
+ (void) mdb_tgt_aread(t, MDB_TGT_AS_VIRT_I, &ret, sizeof (ret),
+ psp->pr_reg[EIP]);
return (ret);
}