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_