Revision 8ab934f9

b/cpu-common.h
65 65
void qemu_ram_remap(ram_addr_t addr, ram_addr_t length);
66 66
/* This should only be used for ram local to a device.  */
67 67
void *qemu_get_ram_ptr(ram_addr_t addr);
68
void *qemu_ram_ptr_length(target_phys_addr_t addr, target_phys_addr_t *size);
68
void *qemu_ram_ptr_length(ram_addr_t addr, ram_addr_t *size);
69 69
/* Same but slower, to use for migration, where the order of
70 70
 * RAMBlocks must not change. */
71 71
void *qemu_safe_ram_ptr(ram_addr_t addr);
b/exec.c
3167 3167

  
3168 3168
/* Return a host pointer to guest's ram. Similar to qemu_get_ram_ptr
3169 3169
 * but takes a size argument */
3170
void *qemu_ram_ptr_length(target_phys_addr_t addr, target_phys_addr_t *size)
3170
void *qemu_ram_ptr_length(ram_addr_t addr, ram_addr_t *size)
3171 3171
{
3172
    if (*size == 0) {
3173
        return NULL;
3174
    }
3172 3175
    if (xen_enabled()) {
3173 3176
        return xen_map_cache(addr, *size, 1);
3174 3177
    } else {
......
3184 3187

  
3185 3188
        fprintf(stderr, "Bad ram offset %" PRIx64 "\n", (uint64_t)addr);
3186 3189
        abort();
3187

  
3188
        *size = 0;
3189
        return NULL;
3190 3190
    }
3191 3191
}
3192 3192

  
......
4052 4052
    target_phys_addr_t page;
4053 4053
    unsigned long pd;
4054 4054
    PhysPageDesc *p;
4055
    target_phys_addr_t addr1 = addr;
4055
    ram_addr_t raddr = ULONG_MAX;
4056
    ram_addr_t rlen;
4057
    void *ret;
4056 4058

  
4057 4059
    while (len > 0) {
4058 4060
        page = addr & TARGET_PAGE_MASK;
......
4080 4082
            *plen = l;
4081 4083
            return bounce.buffer;
4082 4084
        }
4085
        if (!todo) {
4086
            raddr = (pd & TARGET_PAGE_MASK) + (addr & ~TARGET_PAGE_MASK);
4087
        }
4083 4088

  
4084 4089
        len -= l;
4085 4090
        addr += l;
4086 4091
        todo += l;
4087 4092
    }
4088
    *plen = todo;
4089
    return qemu_ram_ptr_length(addr1, plen);
4093
    rlen = todo;
4094
    ret = qemu_ram_ptr_length(raddr, &rlen);
4095
    *plen = rlen;
4096
    return ret;
4090 4097
}
4091 4098

  
4092 4099
/* Unmaps a memory region previously mapped by cpu_physical_memory_map().

Also available in: Unified diff