filename | src/mem.h |
changeset | 10:c898b37506e0 |
next | 11:0a82ef380c45 |
author | nkeynes |
date | Sun Dec 11 05:15:36 2005 +0000 (18 years ago) |
permissions | -rw-r--r-- |
last change | Add CPU disasembly options to mode dropdown Split sh4/mem.c into core mem.c and sh4/mem.c Start adding copyright comments to file headers |
file | annotate | diff | log | raw |
nkeynes@10 | 1 | #ifndef dream_sh4_mem_H |
nkeynes@10 | 2 | #define dream_sh4_mem_H |
nkeynes@10 | 3 | |
nkeynes@10 | 4 | #include <stdint.h> |
nkeynes@10 | 5 | |
nkeynes@10 | 6 | #ifdef __cplusplus |
nkeynes@10 | 7 | extern "C" { |
nkeynes@10 | 8 | #endif |
nkeynes@10 | 9 | |
nkeynes@10 | 10 | typedef struct mem_region { |
nkeynes@10 | 11 | uint32_t base; |
nkeynes@10 | 12 | uint32_t size; |
nkeynes@10 | 13 | char *name; |
nkeynes@10 | 14 | char *mem; |
nkeynes@10 | 15 | int flags; |
nkeynes@10 | 16 | } *mem_region_t; |
nkeynes@10 | 17 | |
nkeynes@10 | 18 | #define MAX_IO_REGIONS 24 |
nkeynes@10 | 19 | #define MAX_MEM_REGIONS 8 |
nkeynes@10 | 20 | |
nkeynes@10 | 21 | #define MEM_REGION_MAIN "System RAM" |
nkeynes@10 | 22 | #define MEM_REGION_VIDEO "Video RAM" |
nkeynes@10 | 23 | #define MEM_REGION_AUDIO "Audio RAM" |
nkeynes@10 | 24 | #define MEM_REGION_AUDIO_SCRATCH "Audio Scratch RAM" |
nkeynes@10 | 25 | |
nkeynes@10 | 26 | #define MB * (1024 * 1024) |
nkeynes@10 | 27 | #define KB * 1024 |
nkeynes@10 | 28 | |
nkeynes@10 | 29 | int32_t sh4_read_long( uint32_t addr ); |
nkeynes@10 | 30 | int32_t sh4_read_word( uint32_t addr ); |
nkeynes@10 | 31 | int32_t sh4_read_byte( uint32_t addr ); |
nkeynes@10 | 32 | void sh4_write_long( uint32_t addr, uint32_t val ); |
nkeynes@10 | 33 | void sh4_write_word( uint32_t addr, uint32_t val ); |
nkeynes@10 | 34 | void sh4_write_byte( uint32_t addr, uint32_t val ); |
nkeynes@10 | 35 | int32_t sh4_read_phys_word( uint32_t addr ); |
nkeynes@10 | 36 | |
nkeynes@10 | 37 | void *mem_create_ram_region( uint32_t base, uint32_t size, char *name ); |
nkeynes@10 | 38 | void *mem_load_rom( char *name, uint32_t base, uint32_t size, uint32_t crc ); |
nkeynes@10 | 39 | char *mem_get_region( uint32_t addr ); |
nkeynes@10 | 40 | char *mem_get_region_by_name( char *name ); |
nkeynes@10 | 41 | int mem_has_page( uint32_t addr ); |
nkeynes@10 | 42 | char *mem_get_page( uint32_t addr ); |
nkeynes@10 | 43 | |
nkeynes@10 | 44 | void mem_init( void ); |
nkeynes@10 | 45 | void mem_reset( void ); |
nkeynes@10 | 46 | |
nkeynes@10 | 47 | #define ENABLE_WATCH 1 |
nkeynes@10 | 48 | |
nkeynes@10 | 49 | #define WATCH_WRITE 1 |
nkeynes@10 | 50 | #define WATCH_READ 2 |
nkeynes@10 | 51 | #define WATCH_EXEC 3 /* AKA Breakpoint :) */ |
nkeynes@10 | 52 | |
nkeynes@10 | 53 | typedef struct watch_point *watch_point_t; |
nkeynes@10 | 54 | |
nkeynes@10 | 55 | watch_point_t mem_new_watch( uint32_t start, uint32_t end, int flags ); |
nkeynes@10 | 56 | void mem_delete_watch( watch_point_t watch ); |
nkeynes@10 | 57 | watch_point_t mem_is_watched( uint32_t addr, int size, int op ); |
nkeynes@10 | 58 | |
nkeynes@10 | 59 | extern char **page_map; |
nkeynes@10 | 60 | #ifdef __cplusplus |
nkeynes@10 | 61 | } |
nkeynes@10 | 62 | #endif |
nkeynes@10 | 63 | #endif |
.