--- uae/src/include/memory.h 2018/04/24 16:42:26 1.1.1.4 +++ uae/src/include/memory.h 2018/04/24 16:57:02 1.1.1.7 @@ -15,6 +15,10 @@ #define SAVE_MEMORY_BANKS #endif +extern int special_mem; +#define S_READ 1 +#define S_WRITE 2 + typedef uae_u32 (*mem_get_func)(uaecptr) REGPARAM; typedef void (*mem_put_func)(uaecptr, uae_u32) REGPARAM; typedef uae_u8 *(*xlate_func)(uaecptr) REGPARAM; @@ -141,37 +145,45 @@ extern void byteput(uaecptr addr, uae_u3 #endif -static __inline__ uae_u32 get_long(uaecptr addr) +STATIC_INLINE uae_u32 get_long(uaecptr addr) { return longget_1(addr); } -static __inline__ uae_u32 get_word(uaecptr addr) +STATIC_INLINE uae_u32 get_word(uaecptr addr) { return wordget_1(addr); } -static __inline__ uae_u32 get_byte(uaecptr addr) +STATIC_INLINE uae_u32 get_byte(uaecptr addr) { return byteget_1(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); } -static __inline__ void put_word(uaecptr addr, uae_u32 w) +STATIC_INLINE void put_word(uaecptr addr, uae_u32 w) { wordput_1(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); } -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); } + +/* For faster access in custom chip emulation. */ +extern uae_u32 chipmem_lget (uaecptr) REGPARAM; +extern uae_u32 chipmem_wget (uaecptr) REGPARAM; +extern uae_u32 chipmem_bget (uaecptr) REGPARAM; +extern void chipmem_lput (uaecptr, uae_u32) REGPARAM; +extern void chipmem_wput (uaecptr, uae_u32) REGPARAM; +extern void chipmem_bput (uaecptr, uae_u32) REGPARAM;