Re: [Xen-devel] [PATCH 3/4] libxl: move libxl__device_from_ to LIBXL_DEFINE_DEVICE_FROM_TYPE

2017-10-31 Thread Wei Liu
On Thu, Oct 05, 2017 at 12:30:47PM +0300, Oleksandr Grytsov wrote:
> From: Oleksandr Grytsov 
> 
> LIBXL_DEFINE_DEVICE_FROM_TYPE uses libxl__..._devtype.type to
> be assigned as device and backend type.
> 
> Signed-off-by: Oleksandr Grytsov 

Acked-by: Wei Liu 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


[Xen-devel] [PATCH 3/4] libxl: move libxl__device_from_ to LIBXL_DEFINE_DEVICE_FROM_TYPE

2017-10-05 Thread Oleksandr Grytsov
From: Oleksandr Grytsov 

LIBXL_DEFINE_DEVICE_FROM_TYPE uses libxl__..._devtype.type to
be assigned as device and backend type.

Signed-off-by: Oleksandr Grytsov 
---
 tools/libxl/libxl_9pfs.c | 19 +++
 tools/libxl/libxl_console.c  | 18 +++---
 tools/libxl/libxl_internal.h | 15 +++
 tools/libxl/libxl_nic.c  | 19 +++
 tools/libxl/libxl_vdispl.c   | 20 
 tools/libxl/libxl_vkb.c  | 15 +--
 tools/libxl/libxl_vsnd.c | 21 +
 tools/libxl/libxl_vtpm.c | 21 -
 8 files changed, 38 insertions(+), 110 deletions(-)

diff --git a/tools/libxl/libxl_9pfs.c b/tools/libxl/libxl_9pfs.c
index 1298db1..e5c41e9 100644
--- a/tools/libxl/libxl_9pfs.c
+++ b/tools/libxl/libxl_9pfs.c
@@ -23,22 +23,6 @@ static int libxl__device_p9_setdefault(libxl__gc *gc, 
uint32_t domid,
 return libxl__resolve_domid(gc, p9->backend_domname, >backend_domid);
 }
 
-static int libxl__device_from_p9(libxl__gc *gc, uint32_t domid,
- libxl_device_p9 *p9,
- libxl__device *device)
-{
-   device->backend_devid   = p9->devid;
-   device->backend_domid   = p9->backend_domid;
-   device->backend_kind= LIBXL__DEVICE_KIND_9PFS;
-   device->devid   = p9->devid;
-   device->domid   = domid;
-   device->kind= LIBXL__DEVICE_KIND_9PFS;
-
-   return 0;
-}
-
-static LIBXL_DEFINE_UPDATE_DEVID(p9)
-
 static int libxl__set_xenstore_p9(libxl__gc *gc, uint32_t domid,
   libxl_device_p9 *p9,
   flexarray_t *back, flexarray_t *front,
@@ -56,6 +40,9 @@ static int libxl__set_xenstore_p9(libxl__gc *gc, uint32_t 
domid,
 #define libxl_device_p9_list NULL
 #define libxl_device_p9_compare NULL
 
+static LIBXL_DEFINE_UPDATE_DEVID(p9)
+static LIBXL_DEFINE_DEVICE_FROM_TYPE(p9)
+
 LIBXL_DEFINE_DEVICE_REMOVE(p9)
 
 DEFINE_DEVICE_TYPE_STRUCT(p9, 9PFS,
diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c
index 002bcae..329db6c 100644
--- a/tools/libxl/libxl_console.c
+++ b/tools/libxl/libxl_console.c
@@ -613,19 +613,6 @@ static int libxl__device_vfb_setdefault(libxl__gc *gc, 
uint32_t domid,
 return rc;
 }
 
-static int libxl__device_from_vfb(libxl__gc *gc, uint32_t domid,
-  libxl_device_vfb *vfb,
-  libxl__device *device)
-{
-device->backend_devid = vfb->devid;
-device->backend_domid = vfb->backend_domid;
-device->backend_kind = LIBXL__DEVICE_KIND_VFB;
-device->devid = vfb->devid;
-device->domid = domid;
-device->kind = LIBXL__DEVICE_KIND_VFB;
-return 0;
-}
-
 int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb,
  const libxl_asyncop_how *ao_how)
 {
@@ -643,8 +630,6 @@ out:
 return AO_INPROGRESS;
 }
 
-static LIBXL_DEFINE_UPDATE_DEVID(vfb)
-
 static int libxl__set_xenstore_vfb(libxl__gc *gc, uint32_t domid,
libxl_device_vfb *vfb,
   flexarray_t *back, flexarray_t *front,
@@ -685,6 +670,9 @@ static int libxl__set_xenstore_vfb(libxl__gc *gc, uint32_t 
domid,
 #define libxl_device_vfb_list NULL
 #define libxl_device_vfb_compare NULL
 
+static LIBXL_DEFINE_UPDATE_DEVID(vfb)
+static LIBXL_DEFINE_DEVICE_FROM_TYPE(vfb)
+
 /* vfb */
 LIBXL_DEFINE_DEVICE_REMOVE(vfb)
 
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index ef9e781..d1a8d8e 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -3455,6 +3455,21 @@ _hidden void libxl__bootloader_run(libxl__egc*, 
libxl__bootloader_state *st);
 return 0;   \
 }
 
+#define LIBXL_DEFINE_DEVICE_FROM_TYPE(name) \
+int libxl__device_from_##name(libxl__gc *gc, uint32_t domid,\
+  libxl_device_##name *type,\
+  libxl__device *device)\
+{   \
+device->backend_devid   = type->devid;  \
+device->backend_domid   = type->backend_domid;  \
+device->backend_kind= libxl__##name##_devtype.type; \
+device->devid   = type->devid;  \
+device->domid   = domid;\
+device->kind= libxl__##name##_devtype.type; \
+\
+return 0;   \
+}
+
 #define LIBXL_DEFINE_DEVICE_REMOVE(type)\
 LIBXL_DEFINE_DEVICE_REMOVE_EXT(type,