worked, thanks!!!
Jimi Xenidis <jimix@xxxxxxxxxxxxxx> wrote on 08/25/2006 08:22:27 AM:
>
>
> Orran || Maria, please test and ack the following patch.
> BTW: Thanks to Jonathan Wildstrom for pointing the H_READ_4 error in
> the rhype code.
>
> --
> diff -r d87d602408d5 xen/arch/powerpc/papr/xlate.c
> --- a/xen/arch/powerpc/papr/xlate.c Thu Aug 24 21:07:46 2006 -0400
> +++ b/xen/arch/powerpc/papr/xlate.c Fri Aug 25 08:13:12 2006 -0400
> @@ -30,12 +30,6 @@
> #include <asm/papr.h>
> #include <asm/hcalls.h>
>
> -static void not_yet(struct cpu_user_regs *regs)
> -{
> - printk("not implemented yet: 0x%lx\n", regs->gprs[3]);
> - for (;;);
> -}
> -
> #ifdef USE_PTE_INSERT
> static inline void pte_insert(union pte volatile *pte,
> ulong vsid, ulong rpn, ulong lrpn)
> @@ -493,8 +487,42 @@ static void h_remove(struct cpu_user_reg
> pte_tlbie(&lpte, ptex);
> }
>
> +static void h_read(struct cpu_user_regs *regs)
> +{
> + ulong flags = regs->gprs[4];
> + ulong ptex = regs->gprs[5];
> + struct vcpu *v = get_current();
> + struct domain *d = v->domain;
> + struct domain_htab *htab = &d->arch.htab;
> + union pte volatile *pte;
> +
> + if (flags & H_READ_4)
> + ptex &= ~0x3UL;
> +
> + if (ptex > (1UL << htab->log_num_ptes)) {
> + regs->gprs[3] = H_Parameter;
> + printk("%s: bad ptex: 0x%lx\n", __func__, ptex);
> + return;
> + }
> + pte = &htab->map[ptex];
> + regs->gprs[4] = pte[0].words.vsid;
> + regs->gprs[5] = pte[0].words.rpn;
> +
> + if (!(flags & H_READ_4)) {
> + /* dump another 3 PTEs */
> + regs->gprs[6] = pte[1].words.vsid;
> + regs->gprs[7] = pte[1].words.rpn;
> + regs->gprs[8] = pte[2].words.vsid;
> + regs->gprs[9] = pte[2].words.rpn;
> + regs->gprs[10] = pte[3].words.vsid;
> + regs->gprs[11] = pte[3].words.rpn;
> + }
> +
> + regs->gprs[3] = H_Success;
> +}
> +
> __init_papr_hcall(H_ENTER, h_enter);
> -__init_papr_hcall(H_READ, not_yet);
> +__init_papr_hcall(H_READ, h_read);
> __init_papr_hcall(H_REMOVE, h_remove);
> __init_papr_hcall(H_CLEAR_MOD, h_clear_mod);
> __init_papr_hcall(H_CLEAR_REF, h_clear_ref);
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|