[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/5] memory: get rid of cpu_register_io_memory()
From: |
TeLeMan |
Subject: |
Re: [Qemu-devel] [PATCH 5/5] memory: get rid of cpu_register_io_memory() |
Date: |
Mon, 19 Mar 2012 12:52:09 +0800 |
On Fri, Mar 9, 2012 at 01:20, Avi Kivity <address@hidden> wrote:
> The return value of cpu_register_io_memory() is no longer used anywhere, so
> we can remove it and all associated data and code.
>
> Signed-off-by: Avi Kivity <address@hidden>
> ---
> cpu-all.h | 8 -------
> exec-all.h | 1 -
> exec-obsolete.h | 3 --
> exec.c | 57
> -------------------------------------------------------
> memory.c | 5 +---
> 5 files changed, 1 insertions(+), 73 deletions(-)
>
> diff --git a/cpu-all.h b/cpu-all.h
> index 80e6d42..b87f2ce 100644
> --- a/cpu-all.h
> +++ b/cpu-all.h
> @@ -498,14 +498,6 @@ extern RAMList ram_list;
> extern const char *mem_path;
> extern int mem_prealloc;
>
> -/* physical memory access */
> -
> -/* MMIO pages are identified by a combination of an IO device index and
> - 3 flags. The ROMD code stores the page ram offset in iotlb entry,
> - so only a limited number of ids are avaiable. */
> -
> -#define IO_MEM_NB_ENTRIES (1 << TARGET_PAGE_BITS)
> -
> /* Flags stored in the low bits of the TLB virtual address. These are
> defined so that fast path ram access is all zeros. */
> /* Zero if TLB entry is valid. */
> diff --git a/exec-all.h b/exec-all.h
> index 4e8c7f5..3ec60a2 100644
> --- a/exec-all.h
> +++ b/exec-all.h
> @@ -304,7 +304,6 @@ uint64_t io_mem_read(struct MemoryRegion *mr,
> target_phys_addr_t addr,
> unsigned size);
> void io_mem_write(struct MemoryRegion *mr, target_phys_addr_t addr,
> uint64_t value, unsigned size);
> -extern struct MemoryRegion *io_mem_region[IO_MEM_NB_ENTRIES];
>
> void tlb_fill(CPUState *env1, target_ulong addr, int is_write, int mmu_idx,
> void *retaddr);
> diff --git a/exec-obsolete.h b/exec-obsolete.h
> index 4dbe476..792c831 100644
> --- a/exec-obsolete.h
> +++ b/exec-obsolete.h
> @@ -32,9 +32,6 @@ void qemu_ram_free(ram_addr_t addr);
> void qemu_ram_free_from_ptr(ram_addr_t addr);
>
> struct MemoryRegion;
> -int cpu_register_io_memory(MemoryRegion *mr);
> -void cpu_unregister_io_memory(int table_address);
> -
> struct MemoryRegionSection;
> void cpu_register_physical_memory_log(struct MemoryRegionSection *section,
> bool readonly);
> diff --git a/exec.c b/exec.c
> index 6e14048..0c86bce 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -214,9 +214,6 @@ struct PhysPageEntry {
> static void io_mem_init(void);
> static void memory_map_init(void);
>
> -/* io memory support */
> -MemoryRegion *io_mem_region[IO_MEM_NB_ENTRIES];
> -static char io_mem_used[IO_MEM_NB_ENTRIES];
> static MemoryRegion io_mem_watch;
> #endif
>
> @@ -3503,53 +3500,6 @@ static subpage_t *subpage_init(target_phys_addr_t base)
> return mmio;
> }
>
> -static int get_free_io_mem_idx(void)
> -{
> - int i;
> -
> - for (i = 0; i<IO_MEM_NB_ENTRIES; i++)
> - if (!io_mem_used[i]) {
> - io_mem_used[i] = 1;
> - return i;
> - }
> - fprintf(stderr, "RAN out out io_mem_idx, max %d !\n", IO_MEM_NB_ENTRIES);
> - return -1;
> -}
> -
> -/* mem_read and mem_write are arrays of functions containing the
> - function to access byte (index 0), word (index 1) and dword (index
> - 2). Functions can be omitted with a NULL function pointer.
> - If io_index is non zero, the corresponding io zone is
> - modified. If it is zero, a new io zone is allocated. The return
> - value can be used with cpu_register_physical_memory(). (-1) is
> - returned if error. */
> -static int cpu_register_io_memory_fixed(int io_index, MemoryRegion *mr)
> -{
> - if (io_index <= 0) {
> - io_index = get_free_io_mem_idx();
> - if (io_index == -1)
> - return io_index;
> - } else {
> - if (io_index >= IO_MEM_NB_ENTRIES)
> - return -1;
> - }
> -
> - io_mem_region[io_index] = mr;
> -
> - return io_index;
> -}
> -
> -int cpu_register_io_memory(MemoryRegion *mr)
> -{
> - return cpu_register_io_memory_fixed(0, mr);
> -}
> -
> -void cpu_unregister_io_memory(int io_index)
> -{
> - io_mem_region[io_index] = NULL;
> - io_mem_used[io_index] = 0;
> -}
> -
> static uint16_t dummy_section(MemoryRegion *mr)
> {
> MemoryRegionSection section = {
> @@ -3569,11 +3519,7 @@ MemoryRegion *iotlb_to_region(target_phys_addr_t index)
>
> static void io_mem_init(void)
> {
> - int i;
> -
> - /* Must be first: */
> memory_region_init_io(&io_mem_ram, &error_mem_ops, NULL, "ram",
> UINT64_MAX);
> - assert(io_mem_ram.ram_addr == 0);
> memory_region_init_io(&io_mem_rom, &rom_mem_ops, NULL, "rom", UINT64_MAX);
> memory_region_init_io(&io_mem_unassigned, &unassigned_mem_ops, NULL,
> "unassigned", UINT64_MAX);
> @@ -3581,9 +3527,6 @@ static void io_mem_init(void)
> "notdirty", UINT64_MAX);
> memory_region_init_io(&io_mem_subpage_ram, &subpage_ram_ops, NULL,
> "subpage-ram", UINT64_MAX);
> - for (i=0; i<5; i++)
> - io_mem_used[i] = 1;
> -
> memory_region_init_io(&io_mem_watch, &watch_mem_ops, NULL,
> "watch", UINT64_MAX);
> }
> diff --git a/memory.c b/memory.c
> index bc76f55..22b0352 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -781,13 +781,11 @@ static void
> memory_region_destructor_ram_from_ptr(MemoryRegion *mr)
>
> static void memory_region_destructor_iomem(MemoryRegion *mr)
> {
> - cpu_unregister_io_memory(mr->ram_addr);
> }
>
> static void memory_region_destructor_rom_device(MemoryRegion *mr)
> {
> qemu_ram_free(mr->ram_addr & TARGET_PAGE_MASK);
> - cpu_unregister_io_memory(mr->ram_addr & ~TARGET_PAGE_MASK);
> }
>
> static bool memory_region_wrong_endianness(MemoryRegion *mr)
> @@ -942,7 +940,7 @@ void memory_region_init_io(MemoryRegion *mr,
> mr->opaque = opaque;
> mr->terminates = true;
> mr->destructor = memory_region_destructor_iomem;
> - mr->ram_addr = cpu_register_io_memory(mr);
> + mr->ram_addr = ~(ram_addr_t)0;
Why not 0 but -1?
> }
>
> void memory_region_init_ram(MemoryRegion *mr,
> @@ -992,7 +990,6 @@ void memory_region_init_rom_device(MemoryRegion *mr,
> mr->rom_device = true;
> mr->destructor = memory_region_destructor_rom_device;
> mr->ram_addr = qemu_ram_alloc(size, mr);
> - mr->ram_addr |= cpu_register_io_memory(mr);
> }
>
> static uint64_t invalid_read(void *opaque, target_phys_addr_t addr,
> --
> 1.7.9
>
>
- [Qemu-devel] [PATCH 1/5] memory: make phys_page_find() return an unadjusted section, (continued)
[Qemu-devel] [PATCH 4/5] memory: dispatch directly via MemoryRegion, Avi Kivity, 2012/03/08
[Qemu-devel] [PATCH 2/5] memory: store section indices in iotlb instead of io indices, Avi Kivity, 2012/03/08
[Qemu-devel] [PATCH 5/5] memory: get rid of cpu_register_io_memory(), Avi Kivity, 2012/03/08
- Re: [Qemu-devel] [PATCH 5/5] memory: get rid of cpu_register_io_memory(),
TeLeMan <=