sim: Remove the syscall gem5 op.
[gem5.git] / include / gem5 / m5ops.h
index 8a356665f0de95b410906991dbaaf46d26e1043e..87eae7f55882c9c8f7f1ee321d26a66649cf8f08 100644 (file)
@@ -35,8 +35,6 @@ extern "C" {
 
 #include <stdint.h>
 
-#include <gem5/asm/generic/m5op_flags.h>
-
 void m5_arm(uint64_t address);
 void m5_quiesce(void);
 void m5_quiesce_ns(uint64_t ns);
@@ -47,6 +45,9 @@ void m5_wake_cpu(uint64_t cpuid);
 
 void m5_exit(uint64_t ns_delay);
 void m5_fail(uint64_t ns_delay, uint64_t code);
+// m5_sum is for sanity checking the gem5 op interface.
+unsigned m5_sum(unsigned a, unsigned b, unsigned c,
+                unsigned d, unsigned e, unsigned f);
 uint64_t m5_init_param(uint64_t key_str1, uint64_t key_str2);
 void m5_checkpoint(uint64_t ns_delay, uint64_t ns_period);
 void m5_reset_stats(uint64_t ns_delay, uint64_t ns_period);
@@ -58,28 +59,21 @@ uint64_t m5_write_file(void *buffer, uint64_t len, uint64_t offset,
 void m5_debug_break(void);
 void m5_switch_cpu(void);
 void m5_dist_toggle_sync(void);
-void m5_add_symbol(uint64_t addr, char *symbol);
+void m5_add_symbol(uint64_t addr, const char *symbol);
 void m5_load_symbol();
 void m5_panic(void);
 void m5_work_begin(uint64_t workid, uint64_t threadid);
 void m5_work_end(uint64_t workid, uint64_t threadid);
 
-// These operations are for critical path annotation
-void m5a_bsm(char *sm, const void *id, int flags);
-void m5a_esm(char *sm);
-void m5a_begin(int flags, char *st);
-void m5a_end(void);
-void m5a_q(const void *id, char *q, int count);
-void m5a_dq(const void *id, char *q, int count);
-void m5a_wf(const void *id, char *q, char *sm, int count);
-void m5a_we(const void *id, char *q, char *sm, int count);
-void m5a_ws(const void *id, char *q, char *sm);
-void m5a_sq(const void *id, char *q, int count, int flags);
-void m5a_aq(const void *id, char *q, int count);
-void m5a_pq(const void *id, char *q, int count);
-void m5a_l(char *lsm, const void *id, char *sm);
-void m5a_identify(uint64_t id);
-uint64_t m5a_getid(void);
+void m5_se_page_fault();
+
+/*
+ * Send a very generic poke to the workload so it can do something. It's up to
+ * the workload to know what information to look for to interpret an event,
+ * such as what PC it came from, what register values are, or the context of
+ * the workload itself (is this SE mode? which OS is running?).
+ */
+void m5_workload();
 
 #ifdef __cplusplus
 }