main
memmap.h
1#ifndef MEMMAP_H_
2#define MEMMAP_H_
3
4typedef enum {
5 READ_16,
6 READ_8,
7 WRITE_16,
8 WRITE_8
9} ftype;
10
11#define MMAP_READ 0x01
12#define MMAP_WRITE 0x02
13#define MMAP_CODE 0x04
14#define MMAP_PTR_IDX 0x08
15#define MMAP_ONLY_ODD 0x10
16#define MMAP_ONLY_EVEN 0x20
17#define MMAP_FUNC_NULL 0x40
18#define MMAP_BYTESWAP 0x80
19#define MMAP_AUX_BUFF 0x100
20#define MMAP_READ_CODE 0x200
21
22typedef uint16_t (*read_16_fun)(uint32_t address, void * context);
23typedef uint8_t (*read_8_fun)(uint32_t address, void * context);
24typedef void * (*write_16_fun)(uint32_t address, void * context, uint16_t value);
25typedef void * (*write_8_fun)(uint32_t address, void * context, uint8_t value);
26
27typedef struct {
28 uint32_t start;
29 uint32_t end;
30 uint32_t mask;
31 uint32_t aux_mask;
32 uint16_t ptr_index;
33 uint16_t flags;
34 void * buffer;
35 read_16_fun read_16;
36 write_16_fun write_16;
37 read_8_fun read_8;
38 write_8_fun write_8;
39} memmap_chunk;
40
41#endif //MEMMAP_H_