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

Re: [Xen-devel] [PATCH 4/5] libxc: minios: Introduce abstraction for files[]



On Thu, 2015-02-26 at 11:56 +0000, Wei Liu wrote:
> From: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> 
> We are going to want to reuse this code for NetBSD rump kernels, where
> there is no gntmap device and we just want to call the MiniOS gntmap
> code directly.
> 
> As part of this we want to abstract away the use of files[] inside the
> actual functions.  Do this with a #define whose definition we are
> going to make conditional in just a moment.
> 
> No functional change in this patch.
> 
> Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

Wei -- did you not want to Ack- or S-o-b this yourself?

> ---
>  tools/libxc/xc_minios_privcmd.c | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/libxc/xc_minios_privcmd.c b/tools/libxc/xc_minios_privcmd.c
> index 7766b86..27d9076 100644
> --- a/tools/libxc/xc_minios_privcmd.c
> +++ b/tools/libxc/xc_minios_privcmd.c
> @@ -208,12 +208,14 @@ struct xc_osdep_ops xc_privcmd_ops = {
>      },
>  };
>  
> +#define GNTMAP(h) (files[(int)(h)].gntmap)
> +
>  static xc_osdep_handle minios_gnttab_open(xc_gnttab *xcg)
>  {
>      int fd = alloc_fd(FTYPE_GNTMAP);
>      if ( fd == -1 )
>          return XC_OSDEP_OPEN_ERROR;
> -    gntmap_init(&files[fd].gntmap);
> +    gntmap_init(&GNTMAP(h));
>      return (xc_osdep_handle)fd;
>  }
>  
> @@ -225,7 +227,7 @@ static int minios_gnttab_close(xc_gnttab *xcg, 
> xc_osdep_handle h)
>  
>  void minios_gnttab_close_fd(int fd)
>  {
> -    gntmap_fini(&files[fd].gntmap);
> +    gntmap_fini(&GNTMAP(h));
>      files[fd].type = FTYPE_NONE;
>  }
>  
> @@ -235,7 +237,6 @@ static void *minios_gnttab_grant_map(xc_gnttab *xcg, 
> xc_osdep_handle h,
>                                       uint32_t notify_offset,
>                                       evtchn_port_t notify_port)
>  {
> -    int fd = (int)h;
>      int stride = 1;
>      if (flags & XC_GRANT_MAP_SINGLE_DOMAIN)
>          stride = 0;
> @@ -243,7 +244,7 @@ static void *minios_gnttab_grant_map(xc_gnttab *xcg, 
> xc_osdep_handle h,
>          errno = ENOSYS;
>          return NULL;
>      }
> -    return gntmap_map_grant_refs(&files[fd].gntmap,
> +    return gntmap_map_grant_refs(&GNTMAP(h),
>                                   count, domids, stride,
>                                   refs, prot & PROT_WRITE);
>  }
> @@ -252,9 +253,8 @@ static int minios_gnttab_munmap(xc_gnttab *xcg, 
> xc_osdep_handle h,
>                                  void *start_address,
>                                  uint32_t count)
>  {
> -    int fd = (int)h;
>      int ret;
> -    ret = gntmap_munmap(&files[fd].gntmap,
> +    ret = gntmap_munmap(&GNTMAP(h),
>                          (unsigned long) start_address,
>                          count);
>      if (ret < 0) {
> @@ -267,9 +267,8 @@ static int minios_gnttab_munmap(xc_gnttab *xcg, 
> xc_osdep_handle h,
>  static int minios_gnttab_set_max_grants(xc_gnttab *xcg, xc_osdep_handle h,
>                               uint32_t count)
>  {
> -    int fd = (int)h;
>      int ret;
> -    ret = gntmap_set_max_grants(&files[fd].gntmap,
> +    ret = gntmap_set_max_grants(&GNTMAP(h),
>                                  count);
>      if (ret < 0) {
>          errno = -ret;



_______________________________________________
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®.