[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 3/8] xen/arm: Implement p2m_type_t as an enum



On 05.12.13 16:42, Julien Grall wrote:
> Until now, Xen doesn't know the type of the page (ram, foreign page, 
> mmio,...).
> Introduce p2m_type_t with basic types:
>     - p2m_invalid: Nothing is mapped here
>     - p2m_ram_rw: Normal read/write guest RAM
>     - p2m_ram_ro: Read-only guest RAM
>     - p2m_mmio_direct: Read/write mapping of device memory
>     - p2m_map_foreign: RAM page from foreign guest
> 
> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
> ---
>  xen/include/asm-arm/p2m.h |   13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
> index f079f00..b24f94a 100644
> --- a/xen/include/asm-arm/p2m.h
> +++ b/xen/include/asm-arm/p2m.h
> @@ -20,6 +20,16 @@ struct p2m_domain {
>      uint8_t vmid;
>  };
>  
> +typedef enum {
> +    p2m_invalid = 0,        /* Nothing mapped here */
> +    p2m_ram_rw = 1,         /* Normal read/write guest RAM */
> +    p2m_ram_ro = 2,         /* Read-only; writes are silently dropped */
> +    p2m_mmio_direct = 3,    /* Read/write mapping of genuine MMIO area */
> +    p2m_map_foreign = 4,    /* Ram pages from foreign domain */
> +} p2m_type_t;
> +
> +#define p2m_is_foreign(_t) ((_t) == p2m_map_foreign)
> +

Is it possible to merge p2m_type_t with x86 and move into common code?

Christoph


>  /* Initialise vmid allocator */
>  void p2m_vmid_allocator_init(void);
>  
> @@ -72,7 +82,6 @@ p2m_pod_decrease_reservation(struct domain *d,
>                               unsigned int order);
>  
>  /* Look up a GFN and take a reference count on the backing page. */
> -typedef int p2m_type_t;
>  typedef unsigned int p2m_query_t;
>  #define P2M_ALLOC    (1u<<0)   /* Populate PoD and paged-out entries */
>  #define P2M_UNSHARE  (1u<<1)   /* Break CoW sharing */
> @@ -110,8 +119,6 @@ static inline int get_page_and_type(struct page_info 
> *page,
>      return rc;
>  }
>  
> -#define p2m_is_foreign(_t) (0)
> -
>  #endif /* _XEN_P2M_H */
>  
>  /*
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.