From: Alex Williamson <alex.williamson@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC v1] Add declarations for hierarchical memory region API
Date: Thu, 19 May 2011 13:07:02 -0600 [thread overview]
Message-ID: <1305832022.3100.5.camel@x201> (raw)
In-Reply-To: <1305814352-15044-2-git-send-email-avi@redhat.com>
On Thu, 2011-05-19 at 10:12 -0400, Avi Kivity wrote:
> The memory API separates the attributes of a memory region (its size, how
> reads or writes are handled, dirty logging, and coalescing) from where it
> is mapped and whether it is enabled. This allows a device to configure
> a memory region once, then hand it off to its parent bus to map it according
> to the bus configuration.
>
> Hierarchical registration also allows a device to compose a region out of
> a number of sub-regions with different properties; for example some may be
> RAM while others may be MMIO.
>
> Signed-off-by: Avi Kivity <avi@redhat.com>
> ---
> memory.h | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 142 insertions(+), 0 deletions(-)
> create mode 100644 memory.h
>
> diff --git a/memory.h b/memory.h
> new file mode 100644
> index 0000000..77c5951
> --- /dev/null
> +++ b/memory.h
> @@ -0,0 +1,142 @@
> +#ifndef MEMORY_H
> +#define MEMORY_H
> +
> +#include <stdint.h>
> +#include <stdbool.h>
> +#include "qemu-common.h"
> +#include "cpu-common.h"
> +#include "targphys.h"
> +#include "qemu-queue.h"
> +
> +typedef struct MemoryRegionOps MemoryRegionOps;
> +typedef struct MemoryRegion MemoryRegion;
> +
> +/*
> + * Memory region callbacks
> + */
> +struct MemoryRegionOps {
> + /* Read from the memory region. @addr is relative to @mr; @size is
> + * in bytes. */
> + uint64_t (*read)(MemoryRegion *mr,
> + target_phys_addr_t addr,
> + unsigned size);
> + /* Write to the memory region. @addr is relative to @mr; @size is
> + * in bytes. */
> + void (*write)(MemoryRegion *mr,
> + target_phys_addr_t addr,
> + uint64_t data,
> + unsigned size);
> + /* Guest-visible constraints: */
> + struct {
> + /* If nonzero, specify bounds on access sizes beyond which a machine
> + * check is thrown.
> + */
> + unsigned min_access_size;
> + unsigned max_access_size;
Do we always support all access sizes between min and max? This might
be easier to describe as a bitmap of supported power of 2 access sizes.
Thanks,
Alex
next prev parent reply other threads:[~2011-05-19 19:07 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-19 14:12 [Qemu-devel] [RFC v1] Memory API Avi Kivity
2011-05-19 14:12 ` [Qemu-devel] [RFC v1] Add declarations for hierarchical memory region API Avi Kivity
2011-05-19 19:07 ` Alex Williamson [this message]
2011-05-20 9:18 ` Avi Kivity
2011-05-19 19:27 ` Jan Kiszka
2011-05-20 9:20 ` Avi Kivity
2011-05-19 20:43 ` Anthony Liguori
2011-05-20 9:23 ` Avi Kivity
2011-05-20 14:06 ` Richard Henderson
2011-05-20 14:31 ` Anthony Liguori
2011-05-20 14:40 ` Richard Henderson
2011-05-20 14:46 ` Anthony Liguori
2011-05-20 18:16 ` Blue Swirl
2011-05-22 6:40 ` Avi Kivity
2011-05-22 6:39 ` Avi Kivity
2011-05-22 15:46 ` Anthony Liguori
2011-05-22 15:52 ` Avi Kivity
2011-05-22 6:38 ` Avi Kivity
2011-05-22 15:44 ` Anthony Liguori
2011-05-22 15:56 ` Avi Kivity
2011-05-22 7:01 ` Avi Kivity
2011-05-19 21:04 ` Stefan Weil
2011-05-20 9:26 ` Avi Kivity
2011-05-19 21:11 ` Stefan Hajnoczi
2011-05-20 9:28 ` Avi Kivity
2011-05-20 17:59 ` Blue Swirl
2011-05-22 6:45 ` Avi Kivity
2011-05-22 9:32 ` Blue Swirl
2011-05-22 11:36 ` Avi Kivity
2011-05-22 12:06 ` Blue Swirl
2011-05-22 12:18 ` Avi Kivity
2011-05-22 15:32 ` Blue Swirl
2011-05-22 15:36 ` Avi Kivity
2011-05-22 7:04 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1305832022.3100.5.camel@x201 \
--to=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).