| version 1.5, 2004/03/12 13:34:08 | version 1.12, 2011/01/15 17:17:23 | 
| Line 1 | Line 1 | 
 | /*      $Id$    */ |  | 
 |  |  | 
 | /* | /* | 
| * Copyright (c) 2002-2003 NONAKA Kimihiro | * Copyright (c) 2002-2004 NONAKA Kimihiro | 
 | * All rights reserved. | * All rights reserved. | 
 | * | * | 
 | * Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | 
| Line 12 | Line 10 | 
 | * 2. Redistributions in binary form must reproduce the above copyright | * 2. Redistributions in binary form must reproduce the above copyright | 
 | *    notice, this list of conditions and the following disclaimer in the | *    notice, this list of conditions and the following disclaimer in the | 
 | *    documentation and/or other materials provided with the distribution. | *    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 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | 
 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | 
| Line 40  extern "C" { | Line 36  extern "C" { | 
 | /* | /* | 
 | * memory access check | * memory access check | 
 | */ | */ | 
| void cpu_memoryread_check(descriptor_t *sd, UINT32 madr, UINT length, int e); | void cpu_stack_push_check(UINT16 s, descriptor_t *sdp, UINT32 sp, UINT len); | 
| void cpu_memorywrite_check(descriptor_t *sd, UINT32 madr, UINT length, int e); | void cpu_stack_pop_check(UINT16 s, descriptor_t *sdp, UINT32 sp, UINT len); | 
| void cpu_stack_push_check(UINT16 s, descriptor_t *sd, UINT32 madr, UINT length); | #define SS_PUSH_CHECK(sp, len) \ | 
| void cpu_stack_pop_check(UINT16 s, descriptor_t *sd, UINT32 madr, UINT length); | cpu_stack_push_check(CPU_SS_INDEX, &CPU_SS_DESC, (sp), (len)) | 
| #define STACK_PUSH_CHECK(s, sd, addr, n) cpu_stack_push_check(s, sd, addr, n) | #define SS_POP_CHECK(sp, len) \ | 
| #define STACK_POP_CHECK(s, sd, addr, n) cpu_stack_pop_check(s, sd, addr, n) | cpu_stack_pop_check(CPU_SS_INDEX, &CPU_SS_DESC, (sp), (len)) | 
 |  |  | 
 | /* | /* | 
 | * virtual address function | * virtual address function | 
 | */ | */ | 
| void MEMCALL cpu_vmemorywrite(int idx, UINT32 address, UINT8 value); | void MEMCALL cpu_vmemorywrite_b(int idx, UINT32 offset, UINT8 value); | 
| void MEMCALL cpu_vmemorywrite_w(int idx, UINT32 address, UINT16 value); | void MEMCALL cpu_vmemorywrite_w(int idx, UINT32 offset, UINT16 value); | 
| void MEMCALL cpu_vmemorywrite_d(int idx, UINT32 address, UINT32 value); | void MEMCALL cpu_vmemorywrite_d(int idx, UINT32 offset, UINT32 value); | 
| UINT8 MEMCALL cpu_vmemoryread(int idx, UINT32 address); | void MEMCALL cpu_vmemorywrite_q(int idx, UINT32 offset, UINT64 value); | 
| UINT16 MEMCALL cpu_vmemoryread_w(int idx, UINT32 address); | void MEMCALL cpu_vmemorywrite_f(int idx, UINT32 offset, const REG80 *value); | 
| UINT32 MEMCALL cpu_vmemoryread_d(int idx, UINT32 address); | 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) | 
 |  |  | 
 | /* | /* | 
 | * code fetch | * code fetch | 
 | */ | */ | 
| UINT8 MEMCALL cpu_codefetch(UINT32 madr); | UINT8 MEMCALL cpu_codefetch(UINT32 offset); | 
| UINT16 MEMCALL cpu_codefetch_w(UINT32 madr); | UINT16 MEMCALL cpu_codefetch_w(UINT32 offset); | 
| UINT32 MEMCALL cpu_codefetch_d(UINT32 madr); | UINT32 MEMCALL cpu_codefetch_d(UINT32 offset); | 
|  |  | 
|  | /* | 
|  | * additional physical address function | 
|  | */ | 
|  | UINT64 MEMCALL cpu_memoryread_q(UINT32 paddr); | 
|  | REG80 MEMCALL cpu_memoryread_f(UINT32 paddr); | 
|  | void MEMCALL cpu_memorywrite_q(UINT32 paddr, UINT64 value); | 
|  | void MEMCALL cpu_memorywrite_f(UINT32 paddr, const REG80 *value); | 
 |  |  | 
 | #ifdef __cplusplus | #ifdef __cplusplus | 
 | } | } |