diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2010-11-19 14:06:15 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2010-11-19 14:06:15 +0100 |
commit | abb6c10f3a5be99396c303e60d286606ddc72e17 (patch) | |
tree | 0b3316ca032be864cdb10cfca15c12f57bdda9c0 /memory.c | |
parent | ee8bd1d0bd8f243cba595623050815afe411b7b0 (diff) |
Implement memory load/store operations
Diffstat (limited to 'memory.c')
-rw-r--r-- | memory.c | 20 |
1 files changed, 18 insertions, 2 deletions
@@ -15,10 +15,26 @@ #include "nios2.h" #include "memory.h" -uint8_t memory_get_byte(struct memory *mem, int32_t offset) +uint8_t memory_get_byte(struct memory *mem, int32_t addr) { uint8_t *base = (uint8_t *) mem->base; - return base[offset]; + return base[addr - mem->image_base]; +} + +void memory_set_byte(struct memory *mem, int32_t addr, uint8_t data) +{ + uint8_t *base = (uint8_t *) mem->base; + base[addr - mem->image_base] = data; +} + +uint32_t memory_get_word(struct memory *mem, int32_t addr) +{ + return mem->base[(addr - mem->image_base) / 4]; +} + +void memory_set_word(struct memory *mem, int32_t addr, uint32_t data) +{ + mem->base[(addr - mem->image_base) / 4] = data; } void memory_dump(struct memory *mem, uint32_t offset, size_t count) |