Mercurial > repos > blastem
comparison backend.h @ 1079:329ff62ea391
Add a new memory map flag to support an auxilliary buffer for translating code from MMAP_PTR_IDX chunks for which the pointer is null
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 04 Oct 2016 18:30:24 -0700 |
parents | 6b07af1515b5 |
children | 8f14767661fa |
comparison
equal
deleted
inserted
replaced
1078:c4bfbf55d418 | 1079:329ff62ea391 |
---|---|
53 #define MMAP_PTR_IDX 0x08 | 53 #define MMAP_PTR_IDX 0x08 |
54 #define MMAP_ONLY_ODD 0x10 | 54 #define MMAP_ONLY_ODD 0x10 |
55 #define MMAP_ONLY_EVEN 0x20 | 55 #define MMAP_ONLY_EVEN 0x20 |
56 #define MMAP_FUNC_NULL 0x40 | 56 #define MMAP_FUNC_NULL 0x40 |
57 #define MMAP_BYTESWAP 0x80 | 57 #define MMAP_BYTESWAP 0x80 |
58 #define MMAP_AUX_BUFF 0x100 | |
58 | 59 |
59 typedef uint16_t (*read_16_fun)(uint32_t address, void * context); | 60 typedef uint16_t (*read_16_fun)(uint32_t address, void * context); |
60 typedef uint8_t (*read_8_fun)(uint32_t address, void * context); | 61 typedef uint8_t (*read_8_fun)(uint32_t address, void * context); |
61 typedef void * (*write_16_fun)(uint32_t address, void * context, uint16_t value); | 62 typedef void * (*write_16_fun)(uint32_t address, void * context, uint16_t value); |
62 typedef void * (*write_8_fun)(uint32_t address, void * context, uint8_t value); | 63 typedef void * (*write_8_fun)(uint32_t address, void * context, uint8_t value); |
63 | 64 |
64 typedef struct { | 65 typedef struct { |
65 uint32_t start; | 66 uint32_t start; |
66 uint32_t end; | 67 uint32_t end; |
67 uint32_t mask; | 68 uint32_t mask; |
69 uint32_t aux_mask; | |
68 uint16_t ptr_index; | 70 uint16_t ptr_index; |
69 uint16_t flags; | 71 uint16_t flags; |
70 void * buffer; | 72 void * buffer; |
71 read_16_fun read_16; | 73 read_16_fun read_16; |
72 write_16_fun write_16; | 74 write_16_fun write_16; |