25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: memory_fast_v2h.c,v 1.1 2005/08/29 14:36:42 debug Exp $ |
* $Id: memory_fast_v2h.c,v 1.2 2005/11/13 00:14:07 debug Exp $ |
29 |
* |
* |
30 |
* Fast virtual memory to host address, used by binary translated code. |
* Fast virtual memory to host address, used by binary translated code. |
31 |
*/ |
*/ |
143 |
if (paddr >= (cpu->mem->dev_baseaddr[i] & ~0xfff) && |
if (paddr >= (cpu->mem->dev_baseaddr[i] & ~0xfff) && |
144 |
paddr <= ((cpu->mem->dev_baseaddr[i] + |
paddr <= ((cpu->mem->dev_baseaddr[i] + |
145 |
cpu->mem->dev_length[i] - 1) | 0xfff)) { |
cpu->mem->dev_length[i] - 1) | 0xfff)) { |
146 |
if (cpu->mem->dev_flags[i] & MEM_DYNTRANS_OK) { |
if (cpu->mem->dev_flags[i] & DM_DYNTRANS_OK) { |
147 |
paddr -= cpu->mem->dev_baseaddr[i]; |
paddr -= cpu->mem->dev_baseaddr[i]; |
148 |
|
|
149 |
/* Within a device _page_ but not within the |
/* Within a device _page_ but not within the |
156 |
uint64_t low_paddr = paddr & ~0xfff; |
uint64_t low_paddr = paddr & ~0xfff; |
157 |
uint64_t high_paddr = paddr | 0xfff; |
uint64_t high_paddr = paddr | 0xfff; |
158 |
if (!(cpu->mem->dev_flags[i] & |
if (!(cpu->mem->dev_flags[i] & |
159 |
MEM_DYNTRANS_WRITE_OK)) |
DM_DYNTRANS_WRITE_OK)) |
160 |
return NULL; |
return NULL; |
161 |
|
|
162 |
if (low_paddr < cpu->mem-> |
if (low_paddr < cpu->mem-> |