--- a/src/mem.c Tue Jan 10 14:00:00 2006 +0000 +++ b/src/mem.c Wed May 24 11:50:19 2006 +0000 @@ -1,5 +1,5 @@ /** - * $Id: mem.c,v 1.11 2006-01-10 14:00:00 nkeynes Exp $ + * $Id: mem.c,v 1.12 2006-05-20 02:38:58 nkeynes Exp $ * mem.c is responsible for creating and maintaining the overall system memory * map, as visible from the SH4 processor. * @@ -222,7 +222,8 @@ } struct mem_region *mem_map_region( void *mem, uint32_t base, uint32_t size, - char *name, int flags ) + char *name, int flags, uint32_t repeat_offset, + uint32_t repeat_until ) { int i; mem_rgn[num_mem_rgns].base = base; @@ -232,14 +233,23 @@ mem_rgn[num_mem_rgns].mem = mem; num_mem_rgns++; - for( i=0; i>PAGE_BITS; i++ ) - page_map[(base>>PAGE_BITS)+i] = mem + (i<>PAGE_BITS; i++ ) + page_map[(base>>PAGE_BITS)+i] = mem + (i<>PAGE_BITS ); - mem_map_region( mem, base, size, name, MEM_FLAG_RAM ); + mem_map_region( mem, base, size, name, MEM_FLAG_RAM, repeat_offset, repeat_until ); + return mem; } @@ -270,7 +281,7 @@ close(fd); return NULL; } - mem_map_region( mem, base, size, file, MEM_FLAG_ROM ); + mem_map_region( mem, base, size, file, MEM_FLAG_ROM, size, base ); /* CRC check */ calc_crc = crc32(0L, mem, size);