[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] exec: move io_mem_read/write to memory.h
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] exec: move io_mem_read/write to memory.h |
Date: |
Thu, 13 Jun 2013 18:39:33 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130514 Thunderbird/17.0.6 |
Il 13/06/2013 18:26, Michael S. Tsirkin ha scritto:
> On Thu, Jun 13, 2013 at 06:04:41PM -0400, Paolo Bonzini wrote:
>> Il 13/06/2013 08:59, Michael S. Tsirkin ha scritto:
>>> implementation is in memory.c, move function
>>> to match. This allows use from places that
>>> don't pull in exec-all.h
>>
>> But they shouldn't be used. :)
>>
>> Everything except the current users (TCG, and address_space_rw and
>> friends) should go through exec.c.
>>
>> Paolo
>
> OK but still. It's an interface that memory.c exports.
>
> If you want to mark it as internal, make this clear
> in the name but IMO it's a bad idea to force
> everyone to use grep to find where the implementation
> of each function is.
Yes, I agree. To add to the mess, io_mem_{read,write} are just
old-fashioned names for (static) memory_region_dispatch_{read,write}.
I need to understand whether/how the per-arch calls to
softmmu_template.h could be moved to exec.c. Then io_mem_{read,write}
can just disappear, and memory_region_dispatch_{read,write} can move to
memory-internal.h.
Paolo
>>> Signed-off-by: Michael S. Tsirkin <address@hidden>
>>> ---
>>>
>>> include/exec/exec-all.h | 5 -----
>>> include/exec/memory.h | 5 +++++
>>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
>>> index 6362074..28cb37d 100644
>>> --- a/include/exec/exec-all.h
>>> +++ b/include/exec/exec-all.h
>>> @@ -367,11 +367,6 @@ bool is_tcg_gen_code(uintptr_t pc_ptr);
>>> #if !defined(CONFIG_USER_ONLY)
>>>
>>> struct MemoryRegion *iotlb_to_region(hwaddr index);
>>> -uint64_t io_mem_read(struct MemoryRegion *mr, hwaddr addr,
>>> - unsigned size);
>>> -void io_mem_write(struct MemoryRegion *mr, hwaddr addr,
>>> - uint64_t value, unsigned size);
>>> -
>>> void tlb_fill(CPUArchState *env1, target_ulong addr, int is_write, int
>>> mmu_idx,
>>> uintptr_t retaddr);
>>>
>>> diff --git a/include/exec/memory.h b/include/exec/memory.h
>>> index 9e88320..edeb1f2 100644
>>> --- a/include/exec/memory.h
>>> +++ b/include/exec/memory.h
>>> @@ -888,6 +888,11 @@ void address_space_unmap(AddressSpace *as, void
>>> *buffer, hwaddr len,
>>> int is_write, hwaddr access_len);
>>>
>>>
>>> +uint64_t io_mem_read(struct MemoryRegion *mr, hwaddr addr,
>>> + unsigned size);
>>> +void io_mem_write(struct MemoryRegion *mr, hwaddr addr,
>>> + uint64_t value, unsigned size);
>>> +
>>> #endif
>>>
>>> #endif
>>>
>
>