On 05/19/2011 10:07 PM, Alex Williamson wrote:
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.
> + /* 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?
As far as I can tell, yes.
This might
be easier to describe as a bitmap of supported power of 2 access sizes.
This is uglier to initialize. However we can provide #defines for
common use (MEM_ACCESS_BYTE_TO_LONG, MEM_ACCESS_LONG).
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.