aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xentrace
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-04-12 13:13:24 +0000
committerIan Campbell <ian.campbell@citrix.com>2013-04-24 17:34:05 +0100
commit91610ea67499168514b906616a7b7dacbcff4416 (patch)
tree4f07b213c9ff1e2659dfebf919dd115ed25acfd8 /tools/xentrace
parent5a07cc93810b74d0c5e5c52df795da2ff044dc83 (diff)
downloadxen-91610ea67499168514b906616a7b7dacbcff4416.tar.gz
xen-91610ea67499168514b906616a7b7dacbcff4416.tar.bz2
xen-91610ea67499168514b906616a7b7dacbcff4416.zip
xenctx: remove remnants of ia64 support
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Jan Beulich <jbeulich@suse.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/xentrace')
-rw-r--r--tools/xentrace/xenctx.c302
1 files changed, 1 insertions, 301 deletions
diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c
index 62327f7e9f..70a5455b55 100644
--- a/tools/xentrace/xenctx.c
+++ b/tools/xentrace/xenctx.c
@@ -49,18 +49,6 @@ int guest_word_size = sizeof (unsigned long);
/* Word-length of the context record we get from xen */
int ctxt_word_size = sizeof (unsigned long);
int guest_protected_mode = 1;
-#elif defined (__ia64__)
-/* On ia64, we can't translate virtual address to physical address. */
-#define NO_TRANSLATION
-typedef size_t guest_word_t;
-
-/* Which registers should be displayed. */
-int disp_cr_regs;
-int disp_ar_regs;
-int disp_br_regs;
-int disp_bank_regs;
-int disp_tlb;
-
#elif defined(__arm__)
#define NO_TRANSLATION
typedef uint64_t guest_word_t;
@@ -442,248 +430,6 @@ static guest_word_t frame_pointer(vcpu_guest_context_any_t *ctx)
return ctx->x64.user_regs.rbp;
}
-#elif defined(__ia64__)
-
-#define PTE_ED_SHIFT 52
-#define PTE_ED_MASK 1
-#define PTE_PPN_SHIFT 12
-#define PTE_PPN_MASK 0x3fffffffff
-#define PTE_AR_SHIFT 9
-#define PTE_AR_MASK 7
-#define PTE_PL_SHIFT 7
-#define PTE_PL_MASK 3
-#define PTE_D_SHIFT 6
-#define PTE_D_MASK 1
-#define PTE_A_SHIFT 5
-#define PTE_A_MASK 1
-#define PTE_MA_SHIFT 2
-#define PTE_MA_MASK 7
-#define PTE_P_SHIFT 0
-#define PTE_P_MASK 1
-#define ITIR_KEY_SHIFT 8
-#define ITIR_KEY_MASK 0xffffff
-#define ITIR_PS_SHIFT 2
-#define ITIR_PS_MASK 0x3f
-#define ITIR_PS_MIN 12
-#define ITIR_PS_MAX 28
-#define RR_RID_SHIFT 8
-#define RR_RID_MASK 0xffffff
-#define PSR_BN (1UL << 44)
-#define CFM_SOF_MASK 0x3f
-
-static void print_tr(int i, const struct ia64_tr_entry *tr)
-{
- int ps_val, ma_val;
- unsigned long pa;
-
- static const char ps[][5] = {" 4K", " 8K", " 16K", " ",
- " 64K", " ", "256K", " ",
- " 1M", " ", " 4M", " ",
- " 16M", " ", " 64M", " ",
- "256M"};
- static const char ma[][4] = {"WB ", " ", " ", " ",
- "UC ", "UCE", "WC ", "Nat"};
-
- ps_val = tr->itir >> ITIR_PS_SHIFT & ITIR_PS_MASK;
- ma_val = tr->pte >> PTE_MA_SHIFT & PTE_MA_MASK;
- pa = (tr->pte >> PTE_PPN_SHIFT & PTE_PPN_MASK) << PTE_PPN_SHIFT;
- pa = (pa >> ps_val) << ps_val;
- printf(" [%d] %ld %06lx %016lx %013lx %02x %s %ld %ld %ld %ld "
- "%ld %d %s %06lx\n", i,
- tr->pte >> PTE_P_SHIFT & PTE_P_MASK,
- tr->rid >> RR_RID_SHIFT & RR_RID_MASK,
- tr->vadr, pa, ps_val,
- ((ps_val >= ITIR_PS_MIN && ps_val <= ITIR_PS_MAX) ?
- ps[ps_val - ITIR_PS_MIN] : " "),
- tr->pte >> PTE_ED_SHIFT & PTE_ED_MASK,
- tr->pte >> PTE_PL_SHIFT & PTE_PL_MASK,
- tr->pte >> PTE_AR_SHIFT & PTE_AR_MASK,
- tr->pte >> PTE_A_SHIFT & PTE_A_MASK,
- tr->pte >> PTE_D_SHIFT & PTE_D_MASK,
- ma_val, ma[ma_val],
- tr->itir >> ITIR_KEY_SHIFT & ITIR_KEY_MASK);
-}
-
-void print_ctx(vcpu_guest_context_any_t *ctx)
-{
- struct vcpu_guest_context_regs *regs = &ctx->c.regs;
- struct vcpu_tr_regs *tr = &ctx->c.regs.tr;
- int i;
- unsigned int rbs_size, cfm_sof;
-
- printf(" ip: %016lx ", regs->ip);
- print_symbol(regs->ip);
- printf("\n");
- printf(" psr: %016lx ", regs->psr);
- printf(" cfm: %016lx ", regs->cfm);
- printf(" pr: %016lx\n", regs->pr);
-
- if (disp_br_regs) {
- printf(" b0: %016lx ", regs->b[0]);
- printf(" b1: %016lx ", regs->b[1]);
- printf(" b2: %016lx\n", regs->b[2]);
- printf(" b3: %016lx ", regs->b[3]);
- printf(" b4: %016lx ", regs->b[4]);
- printf(" b5: %016lx\n", regs->b[5]);
- printf(" b6: %016lx ", regs->b[6]);
- printf(" b7: %016lx\n", regs->b[7]);
- } else {
- printf(" b0: %016lx\n", regs->b[0]);
- }
-
- if (disp_cr_regs) {
- printf ("\n"
- " CR:\n");
- printf(" dcr: %016lx ", regs->cr.dcr);
- printf(" itm: %016lx ", regs->cr.itm);
- printf(" iva: %016lx\n", regs->cr.iva);
- printf(" pta: %016lx ", regs->cr.pta);
- printf(" ipsr: %016lx ", regs->cr.ipsr);
- printf(" isr: %016lx\n", regs->cr.isr);
- printf(" iip: %016lx ", regs->cr.iip);
- printf(" ifa: %016lx ", regs->cr.ifa);
- printf(" itir: %016lx\n", regs->cr.itir);
- printf(" iipa: %016lx ", regs->cr.iipa);
- printf(" ifs: %016lx ", regs->cr.ifs);
- printf(" iim: %016lx\n", regs->cr.iim);
- printf(" iha: %016lx ", regs->cr.iha);
- printf(" lid: %016lx ", regs->cr.lid);
- printf(" ivr: %016lx\n", regs->cr.ivr);
- printf(" tpr: %016lx ", regs->cr.tpr);
- printf(" eoi: %016lx ", regs->cr.eoi);
- printf(" irr0: %016lx\n", regs->cr.irr[0]);
- printf(" irr1: %016lx ", regs->cr.irr[1]);
- printf(" irr2: %016lx ", regs->cr.irr[2]);
- printf(" irr3: %016lx\n", regs->cr.irr[3]);
- printf(" itv: %016lx ", regs->cr.itv);
- printf(" pmv: %016lx ", regs->cr.pmv);
- printf(" cmcv: %016lx\n", regs->cr.cmcv);
- printf(" lrr0: %016lx ", regs->cr.lrr0);
- printf(" lrr1: %016lx ", regs->cr.lrr1);
- printf(" ev_cb:%016lx\n", ctx->c.event_callback_ip);
-
- }
- if (disp_ar_regs) {
- printf ("\n"
- " AR:\n");
- printf(" kr0: %016lx ", regs->ar.kr[0]);
- printf(" kr1: %016lx ", regs->ar.kr[1]);
- printf(" kr2: %016lx\n", regs->ar.kr[2]);
- printf(" kr3: %016lx ", regs->ar.kr[3]);
- printf(" kr4: %016lx ", regs->ar.kr[4]);
- printf(" kr5: %016lx\n", regs->ar.kr[5]);
- printf(" kr6: %016lx ", regs->ar.kr[6]);
- printf(" kr7: %016lx ", regs->ar.kr[7]);
- printf(" rsc: %016lx\n", regs->ar.rsc);
- printf(" bsp: %016lx ", regs->ar.bsp);
- printf(" bsps: %016lx ", regs->ar.bspstore);
- printf(" rnat: %016lx\n", regs->ar.rnat);
- printf(" csd: %016lx ", regs->ar.csd);
- printf(" ccv: %016lx ", regs->ar.ccv);
- printf(" unat: %016lx\n", regs->ar.unat);
- printf(" fpsr: %016lx ", regs->ar.fpsr);
- printf(" itc: %016lx\n", regs->ar.itc);
- printf(" pfs: %016lx ", regs->ar.pfs);
- printf(" lc: %016lx ", regs->ar.lc);
- printf(" ec: %016lx\n", regs->ar.ec);
- }
- printf("\n");
- printf(" r1: %016lx ", regs->r[1]);
- printf(" r2: %016lx ", regs->r[2]);
- printf(" r3: %016lx\n", regs->r[3]);
- printf(" r4: %016lx ", regs->r[4]);
- printf(" r5: %016lx ", regs->r[5]);
- printf(" r6: %016lx\n", regs->r[6]);
- printf(" r7: %016lx ", regs->r[7]);
- printf(" r8: %016lx ", regs->r[8]);
- printf(" r9: %016lx\n", regs->r[9]);
- printf(" r10: %016lx ", regs->r[10]);
- printf(" r11: %016lx ", regs->r[11]);
- printf(" sp: %016lx\n", regs->r[12]);
- printf(" tp: %016lx ", regs->r[13]);
- printf(" r14: %016lx ", regs->r[14]);
- printf(" r15: %016lx\n", regs->r[15]);
- if (disp_bank_regs) {
- printf(" Bank %d (current) Bank %d\n",
- (regs->psr & PSR_BN) ? 1 : 0, (regs->psr & PSR_BN) ? 0 : 1);
- printf ("16:%016lx ", regs->r[16]);
- printf ("17:%016lx ", regs->r[17]);
- printf ("16:%016lx ", regs->bank[0]);
- printf ("17:%016lx\n", regs->bank[1]);
- printf ("18:%016lx ", regs->r[18]);
- printf ("19:%016lx ", regs->r[19]);
- printf ("18:%016lx ", regs->bank[2]);
- printf ("19:%016lx\n", regs->bank[3]);
- printf ("20:%016lx ", regs->r[20]);
- printf ("21:%016lx ", regs->r[21]);
- printf ("20:%016lx ", regs->bank[4]);
- printf ("21:%016lx\n", regs->bank[5]);
- printf ("22:%016lx ", regs->r[22]);
- printf ("23:%016lx ", regs->r[23]);
- printf ("22:%016lx ", regs->bank[6]);
- printf ("23:%016lx\n", regs->bank[7]);
- printf ("24:%016lx ", regs->r[24]);
- printf ("25:%016lx ", regs->r[25]);
- printf ("24:%016lx ", regs->bank[8]);
- printf ("25:%016lx\n", regs->bank[9]);
- printf ("26:%016lx ", regs->r[26]);
- printf ("27:%016lx ", regs->r[27]);
- printf ("26:%016lx ", regs->bank[10]);
- printf ("27:%016lx\n", regs->bank[11]);
- printf ("28:%016lx ", regs->r[28]);
- printf ("29:%016lx ", regs->r[29]);
- printf ("28:%016lx ", regs->bank[12]);
- printf ("29:%016lx\n", regs->bank[13]);
- printf ("30:%016lx ", regs->r[30]);
- printf ("31:%016lx ", regs->r[31]);
- printf ("30:%016lx ", regs->bank[14]);
- printf ("31:%016lx\n", regs->bank[15]);
- } else {
- printf(" r16: %016lx ", regs->r[16]);
- printf(" r17: %016lx ", regs->r[17]);
- printf(" r18: %016lx\n", regs->r[18]);
- printf(" r19: %016lx ", regs->r[19]);
- printf(" r20: %016lx ", regs->r[20]);
- printf(" r21: %016lx\n", regs->r[21]);
- printf(" r22: %016lx ", regs->r[22]);
- printf(" r23: %016lx ", regs->r[23]);
- printf(" r24: %016lx\n", regs->r[24]);
- printf(" r25: %016lx ", regs->r[25]);
- printf(" r26: %016lx ", regs->r[26]);
- printf(" r27: %016lx\n", regs->r[27]);
- printf(" r28: %016lx ", regs->r[28]);
- printf(" r29: %016lx ", regs->r[29]);
- printf(" r30: %016lx\n", regs->r[30]);
- printf(" r31: %016lx\n", regs->r[31]);
- }
-
- printf("\n");
- rbs_size = (regs->ar.bsp - regs->ar.bspstore) / 8;
- cfm_sof = (regs->cfm & CFM_SOF_MASK);
- for (i = 0; i < cfm_sof; i++) {
- int off = cfm_sof - i;
- unsigned int rbs_off =
- (((62 - ((rbs_size + regs->rbs_voff) % 63) + off)) / 63) + off;
- if (rbs_off > rbs_size)
- break;
- printf(" r%02d: %016lx%s", 32 + i,
- regs->rbs[rbs_size - rbs_off],
- (i % 3) != 2 ? " " : "\n");
- }
- if ((i % 3) != 0)
- printf ("\n");
-
- if (disp_tlb) {
- printf("\n itr: P rid va pa ps ed pl "
- "ar a d ma key\n");
- for (i = 0; i < 8; i++)
- print_tr(i, &tr->itrs[i]);
- printf("\n dtr: P rid va pa ps ed pl "
- "ar a d ma key\n");
- for (i = 0; i < 8; i++)
- print_tr(i, &tr->dtrs[i]);
- }
-}
#elif defined(__arm__)
static void print_ctx(vcpu_guest_context_any_t *ctx)
{
@@ -940,12 +686,7 @@ static void usage(void)
printf(" -S --stack-trace print a complete stack trace.\n");
printf(" -k, --kernel-start\n");
printf(" set user/kernel split. (default 0xc0000000)\n");
-#ifdef __ia64__
- printf(" -r LIST, --regs=LIST display more registers.\n");
- printf(" -a --all same as --regs=tlb,cr,ar,br,bk\n");
-#else
printf(" -a --all display more registers\n");
-#endif
printf(" -C --all-vcpus print info for all vcpus\n");
}
@@ -953,19 +694,12 @@ int main(int argc, char **argv)
{
int ch;
int ret;
- static const char *sopts = "fs:hak:SC"
-#ifdef __ia64__
- "r:"
-#endif
- ;
+ static const char *sopts = "fs:hak:SC";
static const struct option lopts[] = {
{"stack-trace", 0, NULL, 'S'},
{"symbol-table", 1, NULL, 's'},
{"frame-pointers", 0, NULL, 'f'},
{"kernel-start", 1, NULL, 'k'},
-#ifdef __ia64__
- {"regs", 1, NULL, 'r'},
-#endif
{"all", 0, NULL, 'a'},
{"all-vcpus", 0, NULL, 'C'},
{"help", 0, NULL, 'h'},
@@ -986,43 +720,9 @@ int main(int argc, char **argv)
case 'S':
xenctx.stack_trace = 1;
break;
-#ifdef __ia64__
- case 'r':
- {
- char *r;
-
- r = strtok(optarg, ",");
- while (r) {
- if (strcmp (r, "cr") == 0)
- disp_cr_regs = 1;
- else if (strcmp (r, "ar") == 0)
- disp_ar_regs = 1;
- else if (strcmp (r, "br") == 0)
- disp_br_regs = 1;
- else if (strcmp (r, "bk") == 0)
- disp_bank_regs = 1;
- else if (strcmp (r, "tlb") == 0)
- disp_tlb = 1;
- else {
- fprintf(stderr,"unknown register set %s\n", r);
- exit(-1);
- }
- r = strtok(NULL, "'");
- }
- }
- break;
- case 'a':
- disp_cr_regs = 1;
- disp_ar_regs = 1;
- disp_br_regs = 1;
- disp_bank_regs = 1;
- disp_tlb = 1;
- break;
-#else
case 'a':
xenctx.disp_all = 1;
break;
-#endif
case 'C':
xenctx.all_vcpus = 1;
break;