On Fri, 25 Apr 2025, Andrew Cooper wrote: > The type used for pagetable attributes/permissions is currently unsigned int, > but needs to become architecture dependent as PPC needs unsigned long. > > Introduce mm-types.h to house pte_attr_t. > > Given the new toolchain baseline, we can use __has_include() now to remove the > need for boilerplate on most architectures. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
Reviewed-by: Stefano Stabellini <sstabell...@kernel.org> > --- > CC: Jan Beulich <jbeul...@suse.com> > CC: Roger Pau Monné <roger....@citrix.com> > CC: Stefano Stabellini <sstabell...@kernel.org> > CC: Julien Grall <jul...@xen.org> > CC: Volodymyr Babchuk <volodymyr_babc...@epam.com> > CC: Bertrand Marquis <bertrand.marq...@arm.com> > CC: Michal Orzel <michal.or...@amd.com> > CC: Oleksii Kurochko <oleksii.kuroc...@gmail.com> > CC: Shawn Anastasio <sanasta...@raptorengineering.com> > > __has_include() was one of the justifications for the new toolchain baseline, > and is included in https://gitlab.com/xen-project/xen/-/issues/201 > --- > xen/include/xen/mm-types.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > create mode 100644 xen/include/xen/mm-types.h > > diff --git a/xen/include/xen/mm-types.h b/xen/include/xen/mm-types.h > new file mode 100644 > index 000000000000..19f692e9aaa4 > --- /dev/null > +++ b/xen/include/xen/mm-types.h > @@ -0,0 +1,19 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > +#ifndef XEN_MM_TYPES_H > +#define XEN_MM_TYPES_H > + > +/* > + * Types used to abstract away architecture-specific details in the memory > + * management code. > + * > + * Architectures need only provide their own asm/mm-types.h if they want to > + * override the defaults given here. > + */ > +#if __has_include(<asm/mm-types.h>) > +# include <asm/mm-types.h> > +#else /* !__has_include(<asm/mm-types.h>) */ > + > +typedef unsigned int pte_attr_t; > + > +#endif /* !__has_include(<asm/mm-types.h>) */ > +#endif /* XEN_MM_TYPES_H */ > -- > 2.39.5 >