[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] target/arm: Don't allow guest to use unimplemented granu
From: |
Peter Maydell |
Subject: |
Re: [PATCH 1/2] target/arm: Don't allow guest to use unimplemented granule sizes |
Date: |
Mon, 3 Oct 2022 11:28:40 +0100 |
On Fri, 30 Sept 2022 at 22:05, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> On 9/30/22 10:48, Peter Maydell wrote:
> > @@ -10289,20 +10289,113 @@ static int aa64_va_parameter_tcma(uint64_t tcr,
> > ARMMMUIdx mmu_idx)
> > }
> > }
> >
> > +typedef enum GranuleSize {
> > + /* Same order as TG0 encoding */
> > + Gran4K,
> > + Gran64K,
> > + Gran16K,
> > + GranInvalid,
> > +} GranuleSize;
>
> It might be worth using this in ARMVAParameters. Even if you don't do that
> now, it would
> be worth putting this typedef in internals.h.
I'd assumed you had a reason for using two bools rather than
an enum in ARMVAParameters, so I left that alone :-) But it would
make more sense to consistently use GranuleSize. (I guess for
putting it in internals.h it ought to be named ARMGranSize.)
Putting GranuleSize into ARMVAParameters brings us into the
area of enums in bitfields, where I'm not sure exactly what
the standard says or our supported compilers allow as an
impdef extension.
GranuleSize gsize : 2;
seems to work, but is it portable? Or should I just put
GranuleSize gsize;
and accept that that means the ARMVAParameters goes from
4 bytes to 8 bytes in size?
thanks
-- PMM
- Re: [PATCH 1/2] target/arm: Don't allow guest to use unimplemented granule sizes,
Peter Maydell <=