aboutsummaryrefslogtreecommitdiff
path: root/host/include/riscv/host/cpuinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'host/include/riscv/host/cpuinfo.h')
-rw-r--r--host/include/riscv/host/cpuinfo.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/host/include/riscv/host/cpuinfo.h b/host/include/riscv/host/cpuinfo.h
new file mode 100644
index 0000000..b2b53db
--- /dev/null
+++ b/host/include/riscv/host/cpuinfo.h
@@ -0,0 +1,26 @@
+/*
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * Host specific cpu identification for RISC-V.
+ */
+
+#ifndef HOST_CPUINFO_H
+#define HOST_CPUINFO_H
+
+#define CPUINFO_ALWAYS (1u << 0) /* so cpuinfo is nonzero */
+#define CPUINFO_ZBA (1u << 1)
+#define CPUINFO_ZBB (1u << 2)
+#define CPUINFO_ZBS (1u << 3)
+#define CPUINFO_ZICOND (1u << 4)
+#define CPUINFO_ZVE64X (1u << 5)
+
+/* Initialized with a constructor. */
+extern unsigned cpuinfo;
+extern unsigned riscv_lg2_vlenb;
+
+/*
+ * We cannot rely on constructor ordering, so other constructors must
+ * use the function interface rather than the variable above.
+ */
+unsigned cpuinfo_init(void);
+
+#endif /* HOST_CPUINFO_H */