summaryrefslogtreecommitdiff
path: root/memmap.h
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2018-07-06 17:39:59 -0700
committerMichael Pavone <pavone@retrodev.com>2018-07-06 17:39:59 -0700
commit480b9bb35341fb64afbd0ab6e18b978b2cd6d4f8 (patch)
tree061bc36100397b99945c51a2010a506482fcccbd /memmap.h
parentaad75c86365b71d625a730a0d42c6537a9016feb (diff)
Update controller config when changed in UI without restart
Diffstat (limited to 'memmap.h')
-rw-r--r--memmap.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/memmap.h b/memmap.h
new file mode 100644
index 0000000..f3504b4
--- /dev/null
+++ b/memmap.h
@@ -0,0 +1,41 @@
+#ifndef MEMMAP_H_
+#define MEMMAP_H_
+
+typedef enum {
+ READ_16,
+ READ_8,
+ WRITE_16,
+ WRITE_8
+} ftype;
+
+#define MMAP_READ 0x01
+#define MMAP_WRITE 0x02
+#define MMAP_CODE 0x04
+#define MMAP_PTR_IDX 0x08
+#define MMAP_ONLY_ODD 0x10
+#define MMAP_ONLY_EVEN 0x20
+#define MMAP_FUNC_NULL 0x40
+#define MMAP_BYTESWAP 0x80
+#define MMAP_AUX_BUFF 0x100
+#define MMAP_READ_CODE 0x200
+
+typedef uint16_t (*read_16_fun)(uint32_t address, void * context);
+typedef uint8_t (*read_8_fun)(uint32_t address, void * context);
+typedef void * (*write_16_fun)(uint32_t address, void * context, uint16_t value);
+typedef void * (*write_8_fun)(uint32_t address, void * context, uint8_t value);
+
+typedef struct {
+ uint32_t start;
+ uint32_t end;
+ uint32_t mask;
+ uint32_t aux_mask;
+ uint16_t ptr_index;
+ uint16_t flags;
+ void * buffer;
+ read_16_fun read_16;
+ write_16_fun write_16;
+ read_8_fun read_8;
+ write_8_fun write_8;
+} memmap_chunk;
+
+#endif //MEMMAP_H_