ia64/xen-unstable
changeset 5463:39bf99b109dd
bitkeeper revision 1.1709.1.10 (42b08f028deGQkb0GcmyBpOwUB9Rjw)
More hyperprivops (slow for now)
Signed-off-by: Dan Magenheimer <dan.magenheimer@hp.com>
More hyperprivops (slow for now)
Signed-off-by: Dan Magenheimer <dan.magenheimer@hp.com>
author | djm@kirby.fc.hp.com |
---|---|
date | Wed Jun 15 20:26:42 2005 +0000 (2005-06-15) |
parents | cb924d6ba79d |
children | dfa0c3f7cf60 |
files | xen/arch/ia64/privop.c xen/arch/ia64/process.c |
line diff
1.1 --- a/xen/arch/ia64/privop.c Wed Jun 15 16:27:06 2005 +0000 1.2 +++ b/xen/arch/ia64/privop.c Wed Jun 15 20:26:42 2005 +0000 1.3 @@ -748,10 +748,16 @@ priv_emulate(VCPU *vcpu, REGS *regs, UIN 1.4 #define HYPERPRIVOP_ITC_D 0x5 1.5 #define HYPERPRIVOP_ITC_I 0x6 1.6 #define HYPERPRIVOP_SSM_I 0x7 1.7 -#define HYPERPRIVOP_MAX 0x7 1.8 +#define HYPERPRIVOP_GET_IVR 0x8 1.9 +#define HYPERPRIVOP_GET_TPR 0x9 1.10 +#define HYPERPRIVOP_SET_TPR 0xa 1.11 +#define HYPERPRIVOP_EOI 0xb 1.12 +#define HYPERPRIVOP_SET_ITM 0xc 1.13 +#define HYPERPRIVOP_MAX 0xc 1.14 1.15 char *hyperpriv_str[HYPERPRIVOP_MAX+1] = { 1.16 0, "rfi", "rsm.dt", "ssm.dt", "cover", "itc.d", "itc.i", "ssm.i", 1.17 + "=ivr", "=tpr", "tpr=", "eoi", "itm=", 1.18 0 1.19 }; 1.20 1.21 @@ -797,6 +803,23 @@ ia64_hyperprivop(unsigned long iim, REGS 1.22 case HYPERPRIVOP_SSM_I: 1.23 (void)vcpu_set_psr_i(v); 1.24 return 1; 1.25 + case HYPERPRIVOP_GET_IVR: 1.26 + (void)vcpu_get_ivr(v,&val); 1.27 + regs->r8 = val; 1.28 + return 1; 1.29 + case HYPERPRIVOP_GET_TPR: 1.30 + (void)vcpu_get_tpr(v,&val); 1.31 + regs->r8 = val; 1.32 + return 1; 1.33 + case HYPERPRIVOP_SET_TPR: 1.34 + (void)vcpu_set_tpr(v,regs->r8); 1.35 + return 1; 1.36 + case HYPERPRIVOP_EOI: 1.37 + (void)vcpu_set_eoi(v,0L); 1.38 + return 1; 1.39 + case HYPERPRIVOP_SET_ITM: 1.40 + (void)vcpu_set_itm(v,regs->r8); 1.41 + return 1; 1.42 } 1.43 return 0; 1.44 }
2.1 --- a/xen/arch/ia64/process.c Wed Jun 15 16:27:06 2005 +0000 2.2 +++ b/xen/arch/ia64/process.c Wed Jun 15 20:26:42 2005 +0000 2.3 @@ -754,7 +754,7 @@ if (!running_on_sim) { printf("SSC_OPEN, 2.4 vcpu_set_gr(current,8,-1L); 2.5 break; 2.6 default: 2.7 - printf("ia64_handle_break: bad ssc code %lx, iip=%p\n",ssc,regs->cr_iip); 2.8 + printf("ia64_handle_break: bad ssc code %lx, iip=%p, b0=%p\n",ssc,regs->cr_iip,regs->b0); 2.9 break; 2.10 } 2.11 vcpu_increment_iip(current);