1.1 --- a/src/mem.c Sun Nov 04 08:49:18 2007 +0000
1.2 +++ b/src/mem.c Thu Nov 08 11:54:16 2007 +0000
1.5 - * $Id: mem.c,v 1.21 2007-11-04 08:49:18 nkeynes Exp $
1.6 + * $Id: mem.c,v 1.22 2007-11-08 11:54:16 nkeynes Exp $
1.7 * mem.c is responsible for creating and maintaining the overall system memory
1.8 * map, as visible from the SH4 processor.
1.12 #include "dreamcast.h"
1.14 -char **page_map = NULL;
1.15 +sh4ptr_t *page_map = NULL;
1.17 int mem_load(FILE *f);
1.18 void mem_save(FILE *f);
1.21 int mem_save_block( const gchar *file, uint32_t start, uint32_t length )
1.25 int len = 4096, total = 0;
1.26 uint32_t addr = start;
1.27 FILE *f = fopen(file,"w");
1.30 int mem_load_block( const gchar *file, uint32_t start, uint32_t length )
1.34 int len = 4096, total = 0;
1.35 uint32_t addr = start;
1.38 void *mem_load_rom( const gchar *file, uint32_t base, uint32_t size, uint32_t crc,
1.39 const gchar *region_name )
1.49 /* CRC check only if we loaded something */
1.50 - calc_crc = crc32(0L, (unsigned char *)mem, size);
1.51 + calc_crc = crc32(0L, (sh4ptr_t)mem, size);
1.52 if( calc_crc != crc ) {
1.53 WARN( "Bios CRC Mismatch in %s: %08X (expected %08X)",
1.54 file, calc_crc, crc);
1.59 -char *mem_get_region_by_name( const char *name )
1.60 +sh4ptr_t mem_get_region_by_name( const char *name )
1.63 for( i=0; i<num_mem_rgns; i++ ) {
1.65 /* P4 area (on-chip I/O channels */
1.66 P4_io[(io->base&0x1FFFFFFF)>>19] = io;
1.68 - page_map[io->base>>12] = (char *)num_io_rgns;
1.69 + page_map[io->base>>12] = (sh4ptr_t )num_io_rgns;
1.71 io_rgn[num_io_rgns] = io;
1.73 @@ -343,19 +343,19 @@
1.75 int mem_has_page( uint32_t addr )
1.77 - char *page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.78 + sh4ptr_t page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.79 return page != NULL;
1.82 -char *mem_get_page( uint32_t addr )
1.83 +sh4ptr_t mem_get_page( uint32_t addr )
1.85 - char *page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.86 + sh4ptr_t page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.90 -char *mem_get_region( uint32_t addr )
1.91 +sh4ptr_t mem_get_region( uint32_t addr )
1.93 - char *page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.94 + sh4ptr_t page = page_map[ (addr & 0x1FFFFFFF) >> 12 ];
1.95 if( ((uintptr_t)page) < MAX_IO_REGIONS ) { /* IO Region */
1.99 if( addr > 0xFF000000 ) {
1.100 return P4_io[(addr&0x00FFFFFF)>>12];
1.102 - char *page = page_map[(addr&0x1FFFFFFF)>>12];
1.103 + sh4ptr_t page = page_map[(addr&0x1FFFFFFF)>>12];
1.104 if( ((uintptr_t)page) < MAX_IO_REGIONS ) {
1.105 return io_rgn[(uintptr_t)page];