[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v1 08/22] memory: provide defaults for MemoryListe
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [RFC v1 08/22] memory: provide defaults for MemoryListener operations |
Date: |
Thu, 04 Oct 2012 09:05:01 -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:
> Many listeners don't need to respond to all MemoryListener callbacks;
> provide suitable defaults instead.
>
> Signed-off-by: Avi Kivity <address@hidden>
> ---
> memory.c | 15 +++++++++++++++
> memory.h | 21 +++++++++++++++++++++
> 2 files changed, 36 insertions(+)
>
> diff --git a/memory.c b/memory.c
> index b58b97c..efefcb8 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -1514,6 +1514,21 @@ void memory_listener_unregister(MemoryListener
> *listener)
> QTAILQ_REMOVE(&memory_listeners, listener, link);
> }
>
> +void memory_listener_default_global(MemoryListener *listener)
> +{
> +}
> +
> +void memory_listener_default_section(MemoryListener *listener,
> + MemoryRegionSection *section)
> +{
> +}
> +
> +void memory_listener_default_eventfd(MemoryListener *listener,
> + MemoryRegionSection *section,
> + bool match_data, uint64_t data,
> EventNotifier *e)
> +{
> +}
> +
> void address_space_init(AddressSpace *as, MemoryRegion *root)
> {
> memory_region_transaction_begin();
> diff --git a/memory.h b/memory.h
> index 46bc5e1..0ef95cb 100644
> --- a/memory.h
> +++ b/memory.h
> @@ -223,6 +223,27 @@ struct MemoryListener {
> QTAILQ_ENTRY(MemoryListener) link;
> };
>
> +#define MEMORY_LISTENER_DEFAULT_OPS \
> + .begin = memory_listener_default_global, \
> + .commit = memory_listener_default_global, \
> + .region_add = memory_listener_default_section, \
> + .region_del = memory_listener_default_section, \
> + .region_nop = memory_listener_default_section, \
> + .log_start = memory_listener_default_section, \
> + .log_stop = memory_listener_default_section, \
> + .log_sync = memory_listener_default_section, \
> + .log_global_start = memory_listener_default_global, \
> + .log_global_stop = memory_listener_default_global, \
> + .eventfd_add = memory_listener_default_eventfd, \
> + .eventfd_del = memory_listener_default_eventfd \
> +
> +void memory_listener_default_global(MemoryListener *listener);
> +void memory_listener_default_section(MemoryListener *listener,
> + MemoryRegionSection *section);
> +void memory_listener_default_eventfd(MemoryListener *listener,
> + MemoryRegionSection *section,
> + bool match_data, uint64_t data,
> EventNotifier *e);
> +
> /**
> * memory_region_init: Initialize a memory region
> *
I think it'd be nicer to check for NULL when invoking the functions in
the memory core.
Then you avoid the exported stub functions entirely.
Regards,
Anthony Liguori
> --
> 1.7.12
- Re: [Qemu-devel] [RFC v1 03/22] kvm: use separate MemoryListeners for memory and I/O, (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
[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
- Re: [Qemu-devel] [RFC v1 08/22] memory: provide defaults for MemoryListener operations,
Anthony Liguori <=
[Qemu-devel] [RFC v1 13/22] xen: use new MEMORY_LISTENER_DEFAULT_OPS, Avi Kivity, 2012/10/03
[Qemu-devel] [RFC v1 10/22] vfio: use new MEMORY_LISTENER_DEFAULT_OPS, Avi Kivity, 2012/10/03
[Qemu-devel] [RFC v1 11/22] xen_pt: use new MEMORY_LISTENER_DEFAULT_OPS, Avi Kivity, 2012/10/03
[Qemu-devel] [RFC v1 12/22] kvm: use new MEMORY_LISTENER_DEFAULT_OPS, Avi Kivity, 2012/10/03
[Qemu-devel] [RFC v1 15/22] memory: move address_space_memory and address_space_io out of memory core, Avi Kivity, 2012/10/03