mirror of https://github.com/xemu-project/xemu.git
ram allocation functions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2404 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
1193610e5d
commit
e9a1ab19d1
|
@ -848,6 +848,8 @@ void cpu_register_physical_memory(target_phys_addr_t start_addr,
|
||||||
unsigned long size,
|
unsigned long size,
|
||||||
unsigned long phys_offset);
|
unsigned long phys_offset);
|
||||||
uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr);
|
uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr);
|
||||||
|
ram_addr_t qemu_ram_alloc(unsigned int size);
|
||||||
|
void qemu_ram_free(ram_addr_t addr);
|
||||||
int cpu_register_io_memory(int io_index,
|
int cpu_register_io_memory(int io_index,
|
||||||
CPUReadMemoryFunc **mem_read,
|
CPUReadMemoryFunc **mem_read,
|
||||||
CPUWriteMemoryFunc **mem_write,
|
CPUWriteMemoryFunc **mem_write,
|
||||||
|
|
19
exec.c
19
exec.c
|
@ -82,6 +82,7 @@ int phys_ram_size;
|
||||||
int phys_ram_fd;
|
int phys_ram_fd;
|
||||||
uint8_t *phys_ram_base;
|
uint8_t *phys_ram_base;
|
||||||
uint8_t *phys_ram_dirty;
|
uint8_t *phys_ram_dirty;
|
||||||
|
static ram_addr_t phys_ram_alloc_offset = 0;
|
||||||
|
|
||||||
CPUState *first_cpu;
|
CPUState *first_cpu;
|
||||||
/* current CPU in the current thread. It is only valid inside
|
/* current CPU in the current thread. It is only valid inside
|
||||||
|
@ -1812,6 +1813,24 @@ uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr)
|
||||||
return p->phys_offset;
|
return p->phys_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* XXX: better than nothing */
|
||||||
|
ram_addr_t qemu_ram_alloc(unsigned int size)
|
||||||
|
{
|
||||||
|
ram_addr_t addr;
|
||||||
|
if ((phys_ram_alloc_offset + size) >= phys_ram_size) {
|
||||||
|
fprintf(stderr, "Not enough memory (requested_size = %u, max memory = %d)\n",
|
||||||
|
size, phys_ram_size);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
addr = phys_ram_alloc_offset;
|
||||||
|
phys_ram_alloc_offset = TARGET_PAGE_ALIGN(phys_ram_alloc_offset + size);
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void qemu_ram_free(ram_addr_t addr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static uint32_t unassigned_mem_readb(void *opaque, target_phys_addr_t addr)
|
static uint32_t unassigned_mem_readb(void *opaque, target_phys_addr_t addr)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_UNASSIGNED
|
#ifdef DEBUG_UNASSIGNED
|
||||||
|
|
Loading…
Reference in New Issue