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<oleksii.kuroc...@gmail.com>

~ 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<andrew.coop...@citrix.com>
---
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 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 */

Reply via email to