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
	
	 bellard
						bellard