--- np2/i386c/ia32/cpu_mem.h 2004/03/25 15:08:32 1.7 +++ np2/i386c/ia32/cpu_mem.h 2007/02/06 14:20:57 1.10 @@ -1,4 +1,4 @@ -/* $Id: cpu_mem.h,v 1.7 2004/03/25 15:08:32 monaka Exp $ */ +/* $Id: cpu_mem.h,v 1.10 2007/02/06 14:20:57 monaka Exp $ */ /* * Copyright (c) 2002-2004 NONAKA Kimihiro @@ -12,8 +12,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES @@ -50,15 +48,19 @@ void cpu_stack_pop_check(UINT16 s, descr /* * virtual address function */ -void MEMCALL cpu_vmemorywrite_b(int idx, UINT32 offset, UINT8 value) GCC_ATTR_REGPARM; -void MEMCALL cpu_vmemorywrite_w(int idx, UINT32 offset, UINT16 value) GCC_ATTR_REGPARM; -void MEMCALL cpu_vmemorywrite_d(int idx, UINT32 offset, UINT32 value) GCC_ATTR_REGPARM; -UINT8 MEMCALL cpu_vmemoryread_b(int idx, UINT32 offset) GCC_ATTR_REGPARM; -UINT16 MEMCALL cpu_vmemoryread_w(int idx, UINT32 offset) GCC_ATTR_REGPARM; -UINT32 MEMCALL cpu_vmemoryread_d(int idx, UINT32 offset) GCC_ATTR_REGPARM; -UINT32 MEMCALL cpu_memory_access_va_RMW_b(int idx, UINT32 offset, UINT32 (*func)(UINT32, void *), void *arg) GCC_ATTR_REGPARM; -UINT32 MEMCALL cpu_memory_access_va_RMW_w(int idx, UINT32 offset, UINT32 (*func)(UINT32, void *), void *arg) GCC_ATTR_REGPARM; -UINT32 MEMCALL cpu_memory_access_va_RMW_d(int idx, UINT32 offset, UINT32 (*func)(UINT32, void *), void *arg) GCC_ATTR_REGPARM; +void MEMCALL cpu_vmemorywrite_b(int idx, UINT32 offset, UINT8 value); +void MEMCALL cpu_vmemorywrite_w(int idx, UINT32 offset, UINT16 value); +void MEMCALL cpu_vmemorywrite_d(int idx, UINT32 offset, UINT32 value); +void MEMCALL cpu_vmemorywrite_q(int idx, UINT32 offset, UINT64 value); +void MEMCALL cpu_vmemorywrite_f(int idx, UINT32 offset, const REG80 *value); +UINT8 MEMCALL cpu_vmemoryread_b(int idx, UINT32 offset); +UINT16 MEMCALL cpu_vmemoryread_w(int idx, UINT32 offset); +UINT32 MEMCALL cpu_vmemoryread_d(int idx, UINT32 offset); +UINT64 MEMCALL cpu_vmemoryread_q(int idx, UINT32 offset); +REG80 MEMCALL cpu_vmemoryread_f(int idx, UINT32 offset); +UINT32 MEMCALL cpu_memory_access_va_RMW_b(int idx, UINT32 offset, UINT32 (*func)(UINT32, void *), void *arg); +UINT32 MEMCALL cpu_memory_access_va_RMW_w(int idx, UINT32 offset, UINT32 (*func)(UINT32, void *), void *arg); +UINT32 MEMCALL cpu_memory_access_va_RMW_d(int idx, UINT32 offset, UINT32 (*func)(UINT32, void *), void *arg); #define cpu_vmemorywrite(i,o,v) cpu_vmemorywrite_b(i,o,v) #define cpu_vmemoryread(i,o) cpu_vmemoryread_b(i,o) #define cpu_memory_access_va_RMW(i,o,f,a) cpu_memory_access_va_RMW_b(i,o,f,a) @@ -66,9 +68,17 @@ UINT32 MEMCALL cpu_memory_access_va_RMW_ /* * code fetch */ -UINT8 MEMCALL cpu_codefetch(UINT32 madr) GCC_ATTR_REGPARM; -UINT16 MEMCALL cpu_codefetch_w(UINT32 madr) GCC_ATTR_REGPARM; -UINT32 MEMCALL cpu_codefetch_d(UINT32 madr) GCC_ATTR_REGPARM; +UINT8 MEMCALL cpu_codefetch(UINT32 madr); +UINT16 MEMCALL cpu_codefetch_w(UINT32 madr); +UINT32 MEMCALL cpu_codefetch_d(UINT32 madr); + +/* + * additional physical address function + */ +UINT64 MEMCALL cpu_memoryread_q(UINT32 address); +REG80 MEMCALL cpu_memoryread_f(UINT32 address); +void MEMCALL cpu_memorywrite_q(UINT32 address, UINT64 value); +void MEMCALL cpu_memorywrite_f(UINT32 address, const REG80 *value); #ifdef __cplusplus }