WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] General code clean-up of xc_linux.c.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] General code clean-up of xc_linux.c.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 16 Dec 2009 22:40:17 -0800
Delivery-date: Wed, 16 Dec 2009 22:40:34 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1261031275 0
# Node ID ba42d74c9adc0bb73f06236d15e241e55777fe96
# Parent  549c77a3f4c5bfa6ca06b654ac77e245fe33b9e3
General code clean-up of xc_linux.c.

Signed-off-by: Patrick Colp <Patrick.Colp@xxxxxxxxxx>
---
 tools/libxc/xc_linux.c |  171 ++++++++++++++++++++++---------------------------
 1 files changed, 77 insertions(+), 94 deletions(-)

diff -r 549c77a3f4c5 -r ba42d74c9adc tools/libxc/xc_linux.c
--- a/tools/libxc/xc_linux.c    Thu Dec 17 06:27:55 2009 +0000
+++ b/tools/libxc/xc_linux.c    Thu Dec 17 06:27:55 2009 +0000
@@ -40,7 +40,9 @@ int xc_interface_open(void)
         PERROR("Could not get file handle flags");
         goto error;
     }
+
     flags |= FD_CLOEXEC;
+
     if ( fcntl(fd, F_SETFD, flags) < 0 )
     {
         PERROR("Could not set file handle flags");
@@ -53,6 +55,7 @@ int xc_interface_open(void)
     saved_errno = errno;
     close(fd);
     errno = saved_errno;
+
     return -1;
 }
 
@@ -66,30 +69,32 @@ void *xc_map_foreign_batch(int xc_handle
 {
     privcmd_mmapbatch_t ioctlx;
     void *addr;
-    addr = mmap(NULL, num*PAGE_SIZE, prot, MAP_SHARED, xc_handle, 0);
-    if ( addr == MAP_FAILED ) {
+
+    addr = mmap(NULL, num << PAGE_SHIFT, prot, MAP_SHARED, xc_handle, 0);
+    if ( addr == MAP_FAILED )
+    {
         perror("xc_map_foreign_batch: mmap failed");
         return NULL;
     }
 
-    ioctlx.num=num;
-    ioctlx.dom=dom;
-    ioctlx.addr=(unsigned long)addr;
-    ioctlx.arr=arr;
+    ioctlx.num = num;
+    ioctlx.dom = dom;
+    ioctlx.addr = (unsigned long)addr;
+    ioctlx.arr = arr;
+
     if ( ioctl(xc_handle, IOCTL_PRIVCMD_MMAPBATCH, &ioctlx) < 0 )
     {
         int saved_errno = errno;
         perror("xc_map_foreign_batch: ioctl failed");
-        (void)munmap(addr, num*PAGE_SIZE);
+        (void)munmap(addr, num << PAGE_SHIFT);
         errno = saved_errno;
         return NULL;
     }
+
     return addr;
-
-}
-
-void *xc_map_foreign_range(int xc_handle, uint32_t dom,
-                           int size, int prot,
+}
+
+void *xc_map_foreign_range(int xc_handle, uint32_t dom, int size, int prot,
                            unsigned long mfn)
 {
     xen_pfn_t *arr;
@@ -108,9 +113,9 @@ void *xc_map_foreign_range(int xc_handle
     return ret;
 }
 
-void *xc_map_foreign_ranges(int xc_handle, uint32_t dom,
-                            size_t size, int prot, size_t chunksize,
-                            privcmd_mmap_entry_t entries[], int nentries)
+void *xc_map_foreign_ranges(int xc_handle, uint32_t dom, size_t size, int prot,
+                            size_t chunksize, privcmd_mmap_entry_t entries[],
+                            int nentries)
 {
     xen_pfn_t *arr;
     int num_per_entry;
@@ -139,8 +144,7 @@ static int do_privcmd(int xc_handle, uns
 
 int do_xen_hypercall(int xc_handle, privcmd_hypercall_t *hypercall)
 {
-    return do_privcmd(xc_handle,
-                      IOCTL_PRIVCMD_HYPERCALL,
+    return do_privcmd(xc_handle, IOCTL_PRIVCMD_HYPERCALL,
                       (unsigned long)hypercall);
 }
 
@@ -157,16 +161,10 @@ static int find_sysfsdir(char *sysfsdir)
     if ( (fp = fopen(MTAB, "r")) == NULL )
         return -1;
 
-    while ( fscanf(fp, "%*s %"
-                   STR(MAX_PATH)
-                   "s %"
-                   STR(MAX_PATH)
-                   "s %*s %*d %*d\n",
+    while ( fscanf(fp, "%*s %"STR(MAX_PATH)"s %"STR(MAX_PATH)"s %*s %*d %*d\n",
                    sysfsdir, type) == 2 )
-    {
         if ( strncmp(type, "sysfs", 5) == 0 )
             break;
-    }
 
     fclose(fp);
 
@@ -231,7 +229,7 @@ int xc_evtchn_open(void)
     if ( (fd = open(EVTCHN_DEV_NAME, O_RDWR)) == -1 )
     {
         if ( (errno == ENOENT) &&
-            ((mkdir("/dev/xen", 0755) == 0) || (errno == EEXIST)) &&
+             ((mkdir("/dev/xen", 0755) == 0) || (errno == EEXIST)) &&
              (mknod(EVTCHN_DEV_NAME, S_IFCHR|0600, devnum) == 0) )
             goto reopen;
 
@@ -360,14 +358,14 @@ int xc_gnttab_open(void)
     struct stat st;
     int fd;
     int devnum;
-    
+
     devnum = xc_find_device_number("gntdev");
-    
+
     /* Make sure any existing device file links to correct device. */
     if ( (lstat(GNTTAB_DEV_NAME, &st) != 0) || !S_ISCHR(st.st_mode) ||
          (st.st_rdev != devnum) )
         (void)unlink(GNTTAB_DEV_NAME);
-    
+
 reopen:
     if ( (fd = open(GNTTAB_DEV_NAME, O_RDWR)) == -1 )
     {
@@ -375,11 +373,11 @@ reopen:
              ((mkdir("/dev/xen", 0755) == 0) || (errno == EEXIST)) &&
              (mknod(GNTTAB_DEV_NAME, S_IFCHR|0600, devnum) == 0) )
             goto reopen;
-        
+
         PERROR("Could not open grant table interface");
         return -1;
     }
-    
+
     return fd;
 }
 
@@ -388,26 +386,25 @@ int xc_gnttab_close(int xcg_handle)
     return close(xcg_handle);
 }
 
-void *xc_gnttab_map_grant_ref(int xcg_handle,
-                              uint32_t domid,
-                              uint32_t ref,
+void *xc_gnttab_map_grant_ref(int xcg_handle, uint32_t domid, uint32_t ref,
                               int prot)
 {
     struct ioctl_gntdev_map_grant_ref map;
     void *addr;
-    
+
     map.count = 1;
     map.refs[0].domid = domid;
-    map.refs[0].ref   = ref;
+    map.refs[0].ref = ref;
 
     if ( ioctl(xcg_handle, IOCTL_GNTDEV_MAP_GRANT_REF, &map) )
         return NULL;
-    
+
     addr = mmap(NULL, PAGE_SIZE, prot, MAP_SHARED, xcg_handle, map.index);
     if ( addr == MAP_FAILED )
     {
         int saved_errno = errno;
         struct ioctl_gntdev_unmap_grant_ref unmap_grant;
+
         /* Unmap the driver slots used to store the grant information. */
         perror("xc_gnttab_map_grant_ref: mmap failed");
         unmap_grant.index = map.index;
@@ -416,34 +413,31 @@ void *xc_gnttab_map_grant_ref(int xcg_ha
         errno = saved_errno;
         return NULL;
     }
-    
+
     return addr;
 }
 
-static void *do_gnttab_map_grant_refs(int xcg_handle,
-                               uint32_t count,
-                               uint32_t *domids,
-                               int domids_stride,
-                               uint32_t *refs,
-                               int prot)
+static void *do_gnttab_map_grant_refs(int xcg_handle, uint32_t count,
+                                      uint32_t *domids, int domids_stride,
+                                      uint32_t *refs, int prot)
 {
     struct ioctl_gntdev_map_grant_ref *map;
     void *addr = NULL;
     int i;
-    
+
     map = malloc(sizeof(*map) +
-                 (count-1) * sizeof(struct ioctl_gntdev_map_grant_ref));
+                 (count - 1) * sizeof(struct ioctl_gntdev_map_grant_ref));
     if ( map == NULL )
         return NULL;
 
     for ( i = 0; i < count; i++ )
     {
         map->refs[i].domid = domids[i * domids_stride];
-        map->refs[i].ref   = refs[i];
+        map->refs[i].ref = refs[i];
     }
 
     map->count = count;
-    
+
     if ( ioctl(xcg_handle, IOCTL_GNTDEV_MAP_GRANT_REF, map) )
         goto out;
 
@@ -453,6 +447,7 @@ static void *do_gnttab_map_grant_refs(in
     {
         int saved_errno = errno;
         struct ioctl_gntdev_unmap_grant_ref unmap_grant;
+
         /* Unmap the driver slots used to store the grant information. */
         perror("xc_gnttab_map_grant_refs: mmap failed");
         unmap_grant.index = map->index;
@@ -464,30 +459,23 @@ static void *do_gnttab_map_grant_refs(in
 
  out:
     free(map);
+
     return addr;
 }
 
-void *xc_gnttab_map_grant_refs(int xcg_handle,
-                               uint32_t count,
-                               uint32_t *domids,
-                               uint32_t *refs,
-                               int prot)
+void *xc_gnttab_map_grant_refs(int xcg_handle, uint32_t count, uint32_t 
*domids,
+                               uint32_t *refs, int prot)
 {
     return do_gnttab_map_grant_refs(xcg_handle, count, domids, 1, refs, prot);
 }
 
-void *xc_gnttab_map_domain_grant_refs(int xcg_handle,
-                               uint32_t count,
-                               uint32_t domid,
-                               uint32_t *refs,
-                               int prot)
+void *xc_gnttab_map_domain_grant_refs(int xcg_handle, uint32_t count,
+                                      uint32_t domid, uint32_t *refs, int prot)
 {
     return do_gnttab_map_grant_refs(xcg_handle, count, &domid, 0, refs, prot);
 }
 
-int xc_gnttab_munmap(int xcg_handle,
-                     void *start_address,
-                     uint32_t count)
+int xc_gnttab_munmap(int xcg_handle, void *start_address, uint32_t count)
 {
     struct ioctl_gntdev_get_offset_for_vaddr get_offset;
     struct ioctl_gntdev_unmap_grant_ref unmap_grant;
@@ -503,7 +491,7 @@ int xc_gnttab_munmap(int xcg_handle,
      * mmap() the pages.
      */
     get_offset.vaddr = (unsigned long)start_address;
-    if ( (rc = ioctl(xcg_handle, IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR, 
+    if ( (rc = ioctl(xcg_handle, IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR,
                      &get_offset)) )
         return rc;
 
@@ -516,7 +504,7 @@ int xc_gnttab_munmap(int xcg_handle,
     /* Next, unmap the memory. */
     if ( (rc = munmap(start_address, count * getpagesize())) )
         return rc;
-    
+
     /* Finally, unmap the driver slots used to store the grant information. */
     unmap_grant.index = get_offset.offset;
     unmap_grant.count = count;
@@ -526,8 +514,7 @@ int xc_gnttab_munmap(int xcg_handle,
     return 0;
 }
 
-int xc_gnttab_set_max_grants(int xcg_handle,
-                             uint32_t count)
+int xc_gnttab_set_max_grants(int xcg_handle, uint32_t count)
 {
     struct ioctl_gntdev_set_max_grants set_max;
     int rc;
@@ -539,13 +526,12 @@ int xc_gnttab_set_max_grants(int xcg_han
     return 0;
 }
 
-int xc_gnttab_op(int xc_handle, int cmd,
-                 void * op, int op_size, int count)
+int xc_gnttab_op(int xc_handle, int cmd, void * op, int op_size, int count)
 {
     int ret = 0;
     DECLARE_HYPERCALL;
 
-    hypercall.op     = __HYPERVISOR_grant_table_op;
+    hypercall.op = __HYPERVISOR_grant_table_op;
     hypercall.arg[0] = cmd;
     hypercall.arg[1] = (unsigned long)op;
     hypercall.arg[2] = count;
@@ -570,9 +556,9 @@ int xc_gnttab_get_version(int xc_handle,
     int rc;
 
     query.dom = domid;
-    rc = xc_gnttab_op(xc_handle, GNTTABOP_get_version,
-                      &query, sizeof(query), 1);
-    if (rc < 0)
+    rc = xc_gnttab_op(xc_handle, GNTTABOP_get_version, &query, sizeof(query),
+                      1);
+    if ( rc < 0 )
         return rc;
     else
         return query.version;
@@ -587,35 +573,32 @@ static void *_gnttab_map_table(int xc_ha
     xen_pfn_t *pfn_list = NULL;
     grant_entry_v1_t *gnt = NULL;
 
-    if (!gnt_num)
+    if ( !gnt_num )
         return NULL;
 
     query.dom = domid;
-    rc = xc_gnttab_op(xc_handle, GNTTABOP_query_size,
-                     &query, sizeof(query), 1);
-
-    if (rc || (query.status != GNTST_okay) )
+    rc = xc_gnttab_op(xc_handle, GNTTABOP_query_size, &query, sizeof(query), 
1);
+
+    if ( rc || (query.status != GNTST_okay) )
     {
         ERROR("Could not query dom's grant size\n", domid);
         return NULL;
     }
 
-    *gnt_num = query.nr_frames *
-            (PAGE_SIZE / sizeof(grant_entry_v1_t) );
+    *gnt_num = query.nr_frames * (PAGE_SIZE / sizeof(grant_entry_v1_t) );
 
     frame_list = malloc(query.nr_frames * sizeof(unsigned long));
-    if (!frame_list || lock_pages(frame_list, query.nr_frames *
-                                              sizeof(unsigned long)))
+    if ( !frame_list || lock_pages(frame_list,
+                                   query.nr_frames * sizeof(unsigned long)) )
     {
         ERROR("Alloc/lock frame_list in xc_gnttab_map_table\n");
-        if (frame_list)
+        if ( frame_list )
             free(frame_list);
         return NULL;
     }
 
     pfn_list = malloc(query.nr_frames * sizeof(xen_pfn_t));
-
-    if (!pfn_list)
+    if ( !pfn_list )
     {
         ERROR("Could not lock pfn_list in xc_gnttab_map_table\n");
         goto err;
@@ -626,33 +609,33 @@ static void *_gnttab_map_table(int xc_ha
     set_xen_guest_handle(setup.frame_list, frame_list);
 
     /* XXX Any race with other setup_table hypercall? */
-    rc = xc_gnttab_op(xc_handle, GNTTABOP_setup_table,
-                      &setup, sizeof(setup), 1);
-
-    if (rc ||( setup.status != GNTST_okay) )
+    rc = xc_gnttab_op(xc_handle, GNTTABOP_setup_table, &setup, sizeof(setup),
+                      1);
+
+    if ( rc || (setup.status != GNTST_okay) )
     {
         ERROR("Could not get grant table frame list\n");
         goto err;
     }
 
-    for (i = 0; i < setup.nr_frames; i++)
+    for ( i = 0; i < setup.nr_frames; i++ )
         pfn_list[i] = frame_list[i];
 
-    gnt = xc_map_foreign_pages(xc_handle, domid, PROT_READ,
-                               pfn_list, setup.nr_frames);
-    if (!gnt)
+    gnt = xc_map_foreign_pages(xc_handle, domid, PROT_READ, pfn_list,
+                               setup.nr_frames);
+    if ( !gnt )
     {
         ERROR("Could not map grant table\n");
         goto err;
     }
 
 err:
-    if (frame_list)
-    {
-        unlock_pages(frame_list, query.nr_frames *  sizeof(unsigned long));
+    if ( frame_list )
+    {
+        unlock_pages(frame_list, query.nr_frames * sizeof(unsigned long));
         free(frame_list);
     }
-    if (pfn_list)
+    if ( pfn_list )
         free(pfn_list);
 
     return gnt;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] General code clean-up of xc_linux.c., Xen patchbot-unstable <=