qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 27/40] target/arm: Add VHE system register redirection and


From: Peter Maydell
Subject: Re: [PATCH v4 27/40] target/arm: Add VHE system register redirection and aliasing
Date: Fri, 6 Dec 2019 18:41:16 +0000

On Fri, 6 Dec 2019 at 18:36, Richard Henderson
<address@hidden> wrote:

> >> +static void el2_e2h_write(CPUARMState *env, const ARMCPRegInfo *ri,
> >> +                          uint64_t value)
> >> +{
> >> +    CPWriteFn *writefn;
> >> +
> >> +    if (redirect_for_e2h(env)) {
> >> +        /* Switch to the saved EL2 version of the register.  */
> >> +        ri = ri->opaque;
> >> +        writefn = ri->writefn;
> >> +    } else {
> >> +        writefn = ri->orig_writefn;
> >> +    }
> >> +    if (writefn == NULL) {
> >> +        writefn = raw_write;
> >> +    }
> >> +    writefn(env, ri, value);
> >> +}
> >
> > I see how this works when we have a readfn or writefn,
> > but how does the redirection work where the access
> > goes directly via .fieldoffset ?
>
> When there is no .writefn, we use raw_write, which uses fieldoffset.

Yes, that's what I mean. There's no 'if redirect then this
fieldoffset else that fieldoffset' codepath, so how does
it update the right field?

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]