[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v1 06/22] memory: export AddressSpace
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [RFC v1 06/22] memory: export AddressSpace |
Date: |
Thu, 04 Oct 2012 09:02:09 -0500 |
User-agent: |
Notmuch/0.13.2+93~ged93d79 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) |
Avi Kivity <address@hidden> writes:
> The DMA API will use an AddressSpace to differentiate among different
> initiators.
>
> Signed-off-by: Avi Kivity <address@hidden>
Reviewed-by: Anthony Liguori <address@hidden>
Regards,
Anthony Liguori
> ---
> memory.c | 11 +----------
> memory.h | 21 +++++++++++++++++++++
> 2 files changed, 22 insertions(+), 10 deletions(-)
>
> diff --git a/memory.c b/memory.c
> index 7e9e373..431a867 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -216,17 +216,8 @@ struct FlatView {
> unsigned nr_allocated;
> };
>
> -typedef struct AddressSpace AddressSpace;
> typedef struct AddressSpaceOps AddressSpaceOps;
>
> -/* A system address space - I/O, memory, etc. */
> -struct AddressSpace {
> - MemoryRegion *root;
> - FlatView *current_map;
> - int ioeventfd_nb;
> - MemoryRegionIoeventfd *ioeventfds;
> -};
> -
> #define FOR_EACH_FLAT_RANGE(var, view) \
> for (var = (view)->ranges; var < (view)->ranges + (view)->nr; ++var)
>
> @@ -1510,7 +1501,7 @@ void memory_listener_unregister(MemoryListener
> *listener)
> QTAILQ_REMOVE(&memory_listeners, listener, link);
> }
>
> -static void address_space_init(AddressSpace *as, MemoryRegion *root)
> +void address_space_init(AddressSpace *as, MemoryRegion *root)
> {
> memory_region_transaction_begin();
> as->root = root;
> diff --git a/memory.h b/memory.h
> index 37ce151..a1d75e7 100644
> --- a/memory.h
> +++ b/memory.h
> @@ -157,6 +157,19 @@ struct MemoryRegionPortio {
>
> #define PORTIO_END_OF_LIST() { }
>
> +typedef struct AddressSpace AddressSpace;
> +
> +/**
> + * AddressSpace: describes a mapping of addresses to #MemoryRegion objects
> + */
> +struct AddressSpace {
> + /* All fields are private. */
> + MemoryRegion *root;
> + struct FlatView *current_map;
> + int ioeventfd_nb;
> + struct MemoryRegionIoeventfd *ioeventfds;
> +};
> +
> typedef struct MemoryRegionSection MemoryRegionSection;
>
> /**
> @@ -776,6 +789,14 @@ void memory_global_dirty_log_stop(void);
>
> void mtree_info(fprintf_function mon_printf, void *f);
>
> +/**
> + * address_space_init: initializes an address space
> + *
> + * @as: an uninitialized #AddressSpace
> + * @root: a #MemoryRegion that routes addesses for the address space
> + */
> +void address_space_init(AddressSpace *as, MemoryRegion *root);
> +
> #endif
>
> #endif
> --
> 1.7.12
- [Qemu-devel] [RFC v1 05/22] memory: prepare AddressSpace for exporting, (continued)
[Qemu-devel] [RFC v1 09/22] memory: use new MEMORY_LISTENER_DEFAULT_OPS, Avi Kivity, 2012/10/03
[Qemu-devel] [RFC v1 06/22] memory: export AddressSpace, Avi Kivity, 2012/10/03
- Re: [Qemu-devel] [RFC v1 06/22] memory: export AddressSpace,
Anthony Liguori <=
[Qemu-devel] [RFC v1 07/22] memory: maintain a list of address spaces, Avi Kivity, 2012/10/03
[Qemu-devel] [RFC v1 08/22] memory: provide defaults for MemoryListener operations, Avi Kivity, 2012/10/03