--- hatari/src/uae-cpu/memory.h 2019/04/01 07:11:00 1.1.1.4 +++ hatari/src/uae-cpu/memory.h 2019/04/09 08:53:25 1.1.1.7 @@ -7,8 +7,8 @@ * * Adaptation to Hatari by Thomas Huth * - * This file is distributed under the GNU Public License, version 2 or at - * your option any later version. Read the file gpl.txt for details. + * This file is distributed under the GNU General Public License, version 2 + * or at your option any later version. Read the file gpl.txt for details. */ #ifndef UAE_MEMORY_H @@ -16,6 +16,9 @@ #include "maccess.h" +#define call_mem_get_func(func, addr) ((*func)(addr)) +#define call_mem_put_func(func, addr, v) ((*func)(addr, v)) + /* Enabling this adds one additional native memory reference per 68k memory * access, but saves one shift (on the x86). Enabling this is probably @@ -33,8 +36,6 @@ typedef int (*check_func)(uaecptr, uae_u extern char *address_space, *good_address_map; -#undef DIRECT_MEMFUNCS_SUCCESSFUL - typedef struct { /* These ones should be self-explanatory... */ @@ -65,7 +66,7 @@ extern addrbank mem_banks[65536]; #define put_mem_bank(addr, b) (mem_banks[bankindex(addr)] = *(b)) #endif -extern void memory_init(uae_u32 f_STMemSize, uae_u32 f_TTMemSize, uae_u32 f_RomMemStart); +extern void memory_init(uae_u32 nNewSTMemSize, uae_u32 nNewTTMemSize, uae_u32 nNewRomMemStart); extern void memory_uninit (void); extern void map_banks(addrbank *bank, int first, int count); @@ -91,48 +92,43 @@ extern void byteput(uaecptr addr, uae_u3 #endif -#ifndef MD_HAVE_MEM_1_FUNCS - -#define longget_1 longget -#define wordget_1 wordget -#define byteget_1 byteget -#define longput_1 longput -#define wordput_1 wordput -#define byteput_1 byteput - -#endif -STATIC_INLINE uae_u32 get_long(uaecptr addr) +static inline uae_u32 get_long(uaecptr addr) { - return longget_1(addr); + return longget(addr); } -STATIC_INLINE uae_u32 get_word(uaecptr addr) + +static inline uae_u32 get_word(uaecptr addr) { - return wordget_1(addr); + return wordget(addr); } -STATIC_INLINE uae_u32 get_byte(uaecptr addr) + +static inline uae_u32 get_byte(uaecptr addr) { - return byteget_1(addr); + return byteget(addr); } -STATIC_INLINE void put_long(uaecptr addr, uae_u32 l) + +static inline void put_long(uaecptr addr, uae_u32 l) { - longput_1(addr, l); + longput(addr, l); } -STATIC_INLINE void put_word(uaecptr addr, uae_u32 w) + +static inline void put_word(uaecptr addr, uae_u32 w) { - wordput_1(addr, w); + wordput(addr, w); } -STATIC_INLINE void put_byte(uaecptr addr, uae_u32 b) + +static inline void put_byte(uaecptr addr, uae_u32 b) { - byteput_1(addr, b); + byteput(addr, b); } -STATIC_INLINE uae_u8 *get_real_address(uaecptr addr) +static inline uae_u8 *get_real_address(uaecptr addr) { return get_mem_bank(addr).xlateaddr(addr); } -STATIC_INLINE int valid_address(uaecptr addr, uae_u32 size) +static inline int valid_address(uaecptr addr, uae_u32 size) { return get_mem_bank(addr).check(addr, size); }