[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 4/5] libxc: minios: introduce abstraction for files[]
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> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Acked-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- Changes in v2: 1. Fix a bug spotted by JÃrgen. --- tools/libxc/xc_minios_common.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tools/libxc/xc_minios_common.c b/tools/libxc/xc_minios_common.c index 8b08cde..c38b5f2 100644 --- a/tools/libxc/xc_minios_common.c +++ b/tools/libxc/xc_minios_common.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(fd)); 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(fd)); 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(fd), 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(fd), (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(fd), count); if (ret < 0) { errno = -ret; -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |