On 4/25/25 1:24 PM, 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.
Not only PPC, RISC-V needs it too.
Introduce mm-types.h to house pte_attr_t.
Do we really want a separate mm-types.h? If yes then: Reviewed-by: Oleksii Kurochko<[email protected]> ~ Oleksii
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<[email protected]> --- CC: Jan Beulich<[email protected]> CC: Roger Pau Monné<[email protected]> CC: Stefano Stabellini<[email protected]> CC: Julien Grall<[email protected]> CC: Volodymyr Babchuk<[email protected]> CC: Bertrand Marquis<[email protected]> CC: Michal Orzel<[email protected]> CC: Oleksii Kurochko<[email protected]> CC: Shawn Anastasio<[email protected]> __has_include() was one of the justifications for the new toolchain baseline, and is included inhttps://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 */
