#include <stdint.h>
+#include <gem5/asm/generic/m5ops.h>
+
void m5_arm(uint64_t address);
void m5_quiesce(void);
void m5_quiesce_ns(uint64_t ns);
*/
void m5_workload();
+/*
+ * Create _addr and _semi versions all declarations, e.g. m5_exit_addr and
+ * m5_exit_semi. These expose the the memory and semihosting variants of the
+ * ops.
+ *
+ * Some of those declarations are not defined for certain ISAs, e.g. X86
+ * does not have _semi, but we felt that ifdefing them out could cause more
+ * trouble tham leaving them in.
+ */
+#define M5OP(name, func) __typeof__(name) M5OP_MERGE_TOKENS(name, _addr); \
+ __typeof__(name) M5OP_MERGE_TOKENS(name, _semi);
+M5OP_FOREACH
+#undef M5OP
+
#ifdef __cplusplus
}
#endif