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;