summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon French2019-04-17 17:03:46 +0100
committerJon French2019-04-17 17:04:06 +0100
commit1abd60eb5d5c1ce6b95d4f57731eed27ced3422f (patch)
treea973e71bc47d88a7bd3fb1721241d44bd2afbada
parent632d45d30ac2b90a86ade16953fd900e3c51634b (diff)
add unimplemented C platform definitions for platform_read_mem etc
-rw-r--r--lib/rts.c46
-rw-r--r--lib/rts.h16
2 files changed, 62 insertions, 0 deletions
diff --git a/lib/rts.c b/lib/rts.c
index eacf0a70..43367b71 100644
--- a/lib/rts.c
+++ b/lib/rts.c
@@ -276,6 +276,52 @@ void read_ram(lbits *data,
mpz_clear(byte);
}
+void platform_read_mem(lbits *data,
+ const int read_kind,
+ const uint64_t addr,
+ const mpz_t n)
+{
+ mpz_t addr_size;
+ mpz_init(addr_size);
+ mpz_set_ui(addr_size, 64);
+ mpz_t addr_bv;
+ mpz_init(addr_bv);
+ mpz_set_ui(addr_bv, addr);
+ read_ram(data, addr_size, n, (lbits){.len=0, .bits=NULL}, (lbits){.len=64, .bits=&addr_bv});
+}
+
+unit platform_write_mem_ea(const int write_kind,
+ const uint64_t addr,
+ const mpz_t n)
+{
+ return UNIT;
+}
+
+bool platform_write_mem(const int write_kind,
+ const uint64_t addr,
+ const mpz_t n,
+ const lbits data)
+{
+ mpz_t addr_size;
+ mpz_init(addr_size);
+ mpz_set_ui(addr_size, 64);
+ mpz_t addr_bv;
+ mpz_init(addr_bv);
+ mpz_set_ui(addr_bv, addr);
+ return write_ram(addr_size, n, (lbits){.len=0, .bits=NULL}, (lbits){.len=64, .bits=&addr_bv}, data);
+}
+
+bool platform_excl_res(const unit unit)
+{
+ return true;
+}
+
+unit platform_barrier(const int barrier_kind)
+{
+ return UNIT;
+}
+
+
unit load_raw(fbits addr, const sail_string file)
{
FILE *fp = fopen(file, "r");
diff --git a/lib/rts.h b/lib/rts.h
index c7c1259f..b63dfbbc 100644
--- a/lib/rts.h
+++ b/lib/rts.h
@@ -71,6 +71,22 @@ sbits fast_read_ram(const int64_t data_size,
unit write_tag_bool(const fbits, const bool);
bool read_tag_bool(const fbits);
+void platform_read_mem(lbits *data,
+ const int read_kind,
+ const uint64_t addr,
+ const mpz_t n);
+unit platform_write_mem_ea(const int write_kind,
+ const uint64_t addr,
+ const mpz_t n);
+bool platform_write_mem(const int write_kind,
+ const uint64_t addr,
+ const mpz_t n,
+ const lbits data);
+bool platform_excl_res(const unit unit);
+unit platform_barrier(const int barrier_kind);
+
+
+
unit load_raw(fbits addr, const sail_string file);
void load_image(char *);