All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] libxl: remove list callback from device framework
@ 2017-09-22 12:24 Oleksandr Grytsov
  2017-09-22 12:24 ` [PATCH v1] libxl: provide typedefs for device framework functions Oleksandr Grytsov
  0 siblings, 1 reply; 8+ messages in thread
From: Oleksandr Grytsov @ 2017-09-22 12:24 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, wei.liu2, Oleksandr Grytsov

From: Oleksandr Grytsov <oleksandr_grytsov@epam.com>

Rebase

Wei Liu (1):
  libxl: provide typedefs for device framework functions

 tools/libxl/libxl_9pfs.c     |  6 ++--
 tools/libxl/libxl_console.c  |  6 ++--
 tools/libxl/libxl_disk.c     |  5 ++--
 tools/libxl/libxl_internal.h | 71 +++++++++++++++++++++++++++-----------------
 tools/libxl/libxl_nic.c      |  9 ++----
 tools/libxl/libxl_vdispl.c   | 10 ++-----
 tools/libxl/libxl_vtpm.c     |  9 ++----
 7 files changed, 58 insertions(+), 58 deletions(-)

-- 
2.7.4


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v1] libxl: provide typedefs for device framework functions
  2017-09-22 12:24 [PATCH v1] libxl: remove list callback from device framework Oleksandr Grytsov
@ 2017-09-22 12:24 ` Oleksandr Grytsov
  2017-09-22 12:26   ` Oleksandr Grytsov
  0 siblings, 1 reply; 8+ messages in thread
From: Oleksandr Grytsov @ 2017-09-22 12:24 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, wei.liu2

From: Wei Liu <wei.liu2@citrix.com>

Use the new typedefs to avoid copy-n-paste everywhere.

No functional change.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
 tools/libxl/libxl_9pfs.c     |  6 ++--
 tools/libxl/libxl_console.c  |  6 ++--
 tools/libxl/libxl_disk.c     |  5 ++--
 tools/libxl/libxl_internal.h | 71 +++++++++++++++++++++++++++-----------------
 tools/libxl/libxl_nic.c      |  9 ++----
 tools/libxl/libxl_vdispl.c   | 10 ++-----
 tools/libxl/libxl_vtpm.c     |  9 ++----
 7 files changed, 58 insertions(+), 58 deletions(-)

diff --git a/tools/libxl/libxl_9pfs.c b/tools/libxl/libxl_9pfs.c
index 61d284c..9db887b 100644
--- a/tools/libxl/libxl_9pfs.c
+++ b/tools/libxl/libxl_9pfs.c
@@ -60,8 +60,6 @@ LIBXL_DEFINE_DEVICE_REMOVE(p9)
 
 DEFINE_DEVICE_TYPE_STRUCT(p9,
     .skip_attach = 1,
-    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
-                                    flexarray_t *back, flexarray_t *front,
-                                    flexarray_t *ro_front))
-                           libxl__set_xenstore_p9
+    .set_xenstore_config = (device_set_xenstore_config_fn_t)
+                           libxl__set_xenstore_p9,
 );
diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c
index 68511d7..624bd01 100644
--- a/tools/libxl/libxl_console.c
+++ b/tools/libxl/libxl_console.c
@@ -737,10 +737,8 @@ LIBXL_DEFINE_DEVICE_REMOVE(vfb)
 
 DEFINE_DEVICE_TYPE_STRUCT(vfb,
     .skip_attach = 1,
-    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
-                                    flexarray_t *back, flexarray_t *front,
-                                    flexarray_t *ro_front))
-                           libxl__set_xenstore_vfb
+    .set_xenstore_config = (device_set_xenstore_config_fn_t)
+                           libxl__set_xenstore_vfb,
 );
 
 libxl_xen_console_reader *
diff --git a/tools/libxl/libxl_disk.c b/tools/libxl/libxl_disk.c
index 06dd4d3..7111b42 100644
--- a/tools/libxl/libxl_disk.c
+++ b/tools/libxl/libxl_disk.c
@@ -1206,9 +1206,8 @@ static int libxl_device_disk_dm_needed(void *e, unsigned domid)
 DEFINE_DEVICE_TYPE_STRUCT(disk,
     .merge       = libxl_device_disk_merge,
     .dm_needed   = libxl_device_disk_dm_needed,
-    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
-                     libxl__disk_from_xenstore,
-    .skip_attach = 1
+    .from_xenstore = (device_from_xenstore_fn_t)libxl__disk_from_xenstore,
+    .skip_attach = 1,
 );
 
 /*
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 81e87ae..c726595 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -3461,28 +3461,46 @@ _hidden void libxl__bootloader_run(libxl__egc*, libxl__bootloader_state *st);
     LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, type, remove, 0)               \
     LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, type, destroy, 1)
 
+typedef void (*device_add_fn_t)(libxl__egc *, libxl__ao *, uint32_t,
+                                libxl_domain_config *, libxl__multidev *);
+typedef void *(*device_list_fn_t)(libxl_ctx *, uint32_t, int *);
+typedef int (*device_set_default_fn_t)(libxl__gc *, uint32_t, void *, bool);
+typedef int (*device_to_device_fn_t)(libxl__gc *, uint32_t, void *,
+                                     libxl__device *);
+typedef void (*device_init_fn_t)(void *);
+typedef void (*device_copy_fn_t)(libxl_ctx *, void *, void *);
+typedef void (*device_dispose_fn_t)(void *);
+typedef int (*device_compare_fn_t)(void *, void *);
+typedef void (*device_merge_fn_t)(libxl_ctx *, void *, void *);
+typedef int (*device_dm_needed_fn_t)(void *, unsigned);
+typedef void (*device_update_config_fn_t)(libxl__gc *, void *, void *);
+typedef int (*device_update_devid_fn_t)(libxl__gc *, uint32_t, void *);
+typedef int (*device_from_xenstore_fn_t)(libxl__gc *, const char *,
+                                         libxl_devid, void *);
+typedef int (*device_set_xenstore_config_fn_t)(libxl__gc *, uint32_t, void *,
+                                               flexarray_t *, flexarray_t *,
+                                               flexarray_t *);
+
 struct libxl_device_type {
     char *type;
     int skip_attach;   /* Skip entry in domcreate_attach_devices() if 1 */
     int ptr_offset;    /* Offset of device array ptr in libxl_domain_config */
     int num_offset;    /* Offset of # of devices in libxl_domain_config */
     int dev_elem_size; /* Size of one device element in array */
-    void (*add)(libxl__egc *, libxl__ao *, uint32_t, libxl_domain_config *,
-                libxl__multidev *);
-    void *(*list)(libxl_ctx *, uint32_t, int *);
-    int (*set_default)(libxl__gc *, uint32_t, void *, bool);
-    int (*to_device)(libxl__gc *, uint32_t, void *, libxl__device *);
-    void (*init)(void *);
-    void (*copy)(libxl_ctx *, void *, void *);
-    void (*dispose)(void *);
-    int (*compare)(void *, void *);
-    void (*merge)(libxl_ctx *, void *, void *);
-    int (*dm_needed)(void *, unsigned);
-    void (*update_config)(libxl__gc *, void *, void *);
-    int (*update_devid)(libxl__gc *, uint32_t, void *);
-    int (*from_xenstore)(libxl__gc *, const char *, libxl_devid, void *);
-    int (*set_xenstore_config)(libxl__gc *, uint32_t, void *, flexarray_t *,
-                               flexarray_t *, flexarray_t *);
+    device_add_fn_t                 add;
+    device_list_fn_t                list;
+    device_set_default_fn_t         set_default;
+    device_to_device_fn_t           to_device;
+    device_init_fn_t                init;
+    device_copy_fn_t                copy;
+    device_dispose_fn_t             dispose;
+    device_compare_fn_t             compare;
+    device_merge_fn_t               merge;
+    device_dm_needed_fn_t           dm_needed;
+    device_update_config_fn_t       update_config;
+    device_update_devid_fn_t        update_devid;
+    device_from_xenstore_fn_t       from_xenstore;
+    device_set_xenstore_config_fn_t set_xenstore_config;
 };
 
 #define DEFINE_DEVICE_TYPE_STRUCT_X(name, sname, ...)                          \
@@ -3492,20 +3510,17 @@ struct libxl_device_type {
         .num_offset    = offsetof(libxl_domain_config, num_ ## name ## s),     \
         .dev_elem_size = sizeof(libxl_device_ ## sname),                       \
         .add           = libxl__add_ ## name ## s,                             \
-        .list          = (void *(*)(libxl_ctx *, uint32_t, int *))             \
-                         libxl_device_ ## sname ## _list,                      \
-        .set_default   = (int (*)(libxl__gc *, uint32_t, void *, bool))\
+        .list          = (device_list_fn_t)libxl_device_ ## sname ## _list,    \
+        .set_default   = (device_set_default_fn_t)                             \
                          libxl__device_ ## sname ## _setdefault,               \
-        .to_device     = (int (*)(libxl__gc *, uint32_t,                       \
-                                  void *, libxl__device *))                    \
-                         libxl__device_from_ ## name,                          \
-        .init          = (void (*)(void *))libxl_device_ ## sname ## _init,    \
-        .copy          = (void (*)(libxl_ctx *, void *, void *))               \
-                         libxl_device_ ## sname ## _copy,                      \
-        .dispose       = (void (*)(void *))libxl_device_ ## sname ## _dispose, \
-        .compare       = (int (*)(void *, void *))                             \
+        .to_device     = (device_to_device_fn_t)libxl__device_from_ ## name,   \
+        .init          = (device_init_fn_t)libxl_device_ ## sname ## _init,    \
+        .copy          = (device_copy_fn_t)libxl_device_ ## sname ## _copy,    \
+        .dispose       = (device_dispose_fn_t)                                 \
+                         libxl_device_ ## sname ## _dispose,                   \
+        .compare       = (device_compare_fn_t)                                 \
                          libxl_device_ ## sname ## _compare,                   \
-        .update_devid  = (int (*)(libxl__gc *, uint32_t, void *))              \
+        .update_devid  = (device_update_devid_fn_t)                            \
                          libxl__device_ ## sname ## _update_devid,             \
         __VA_ARGS__                                                            \
     }
diff --git a/tools/libxl/libxl_nic.c b/tools/libxl/libxl_nic.c
index d81b95b..cf8fd5c 100644
--- a/tools/libxl/libxl_nic.c
+++ b/tools/libxl/libxl_nic.c
@@ -542,12 +542,9 @@ LIBXL_DEFINE_DEVICE_REMOVE(nic)
 
 DEFINE_DEVICE_TYPE_STRUCT(nic,
     .update_config = libxl_device_nic_update_config,
-    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
-                     libxl__nic_from_xenstore,
-    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
-                                    flexarray_t *back, flexarray_t *front,
-                                    flexarray_t *ro_front))
-                           libxl__set_xenstore_nic
+    .from_xenstore = (device_from_xenstore_fn_t)libxl__nic_from_xenstore,
+    .set_xenstore_config = (device_set_xenstore_config_fn_t)
+                           libxl__set_xenstore_nic,
 );
 
 /*
diff --git a/tools/libxl/libxl_vdispl.c b/tools/libxl/libxl_vdispl.c
index befc56b..a2371ed 100644
--- a/tools/libxl/libxl_vdispl.c
+++ b/tools/libxl/libxl_vdispl.c
@@ -269,13 +269,9 @@ LIBXL_DEFINE_DEVICE_REMOVE(vdispl)
 static LIBXL_DEFINE_UPDATE_DEVID(vdispl, "vdispl")
 
 DEFINE_DEVICE_TYPE_STRUCT(vdispl,
-    .update_config = (void (*)(libxl__gc *, void *, void *))
-                     libxl__update_config_vdispl,
-    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
-                     libxl__vdispl_from_xenstore,
-    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
-                                    flexarray_t *back, flexarray_t *front,
-                                    flexarray_t *ro_front))
+    .update_config = (device_update_config_fn_t)libxl__update_config_vdispl,
+    .from_xenstore = (device_from_xenstore_fn_t)libxl__vdispl_from_xenstore,
+    .set_xenstore_config = (device_set_xenstore_config_fn_t)
                            libxl__set_xenstore_vdispl
 );
 
diff --git a/tools/libxl/libxl_vtpm.c b/tools/libxl/libxl_vtpm.c
index 6182cfc..a06f15d 100644
--- a/tools/libxl/libxl_vtpm.c
+++ b/tools/libxl/libxl_vtpm.c
@@ -263,12 +263,9 @@ LIBXL_DEFINE_DEVICE_REMOVE(vtpm)
 
 DEFINE_DEVICE_TYPE_STRUCT(vtpm,
     .update_config = libxl_device_vtpm_update_config,
-    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
-                     libxl__vtpm_from_xenstore,
-    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
-                                    flexarray_t *back, flexarray_t *front,
-                                    flexarray_t *ro_front))
-                           libxl__set_xenstore_vtpm
+    .from_xenstore = (device_from_xenstore_fn_t)libxl__vtpm_from_xenstore,
+    .set_xenstore_config = (device_set_xenstore_config_fn_t)
+                           libxl__set_xenstore_vtpm,
 );
 
 /*
-- 
2.7.4


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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v1] libxl: provide typedefs for device framework functions
  2017-09-22 12:24 ` [PATCH v1] libxl: provide typedefs for device framework functions Oleksandr Grytsov
@ 2017-09-22 12:26   ` Oleksandr Grytsov
  0 siblings, 0 replies; 8+ messages in thread
From: Oleksandr Grytsov @ 2017-09-22 12:26 UTC (permalink / raw)
  To: Xen-devel; +Cc: Ian Jackson, Wei Liu

On Fri, Sep 22, 2017 at 3:24 PM, Oleksandr Grytsov <al1img@gmail.com> wrote:
> From: Wei Liu <wei.liu2@citrix.com>
>
> Use the new typedefs to avoid copy-n-paste everywhere.
>
> No functional change.
>
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
>  tools/libxl/libxl_9pfs.c     |  6 ++--
>  tools/libxl/libxl_console.c  |  6 ++--
>  tools/libxl/libxl_disk.c     |  5 ++--
>  tools/libxl/libxl_internal.h | 71 +++++++++++++++++++++++++++-----------------
>  tools/libxl/libxl_nic.c      |  9 ++----
>  tools/libxl/libxl_vdispl.c   | 10 ++-----
>  tools/libxl/libxl_vtpm.c     |  9 ++----
>  7 files changed, 58 insertions(+), 58 deletions(-)
>
> diff --git a/tools/libxl/libxl_9pfs.c b/tools/libxl/libxl_9pfs.c
> index 61d284c..9db887b 100644
> --- a/tools/libxl/libxl_9pfs.c
> +++ b/tools/libxl/libxl_9pfs.c
> @@ -60,8 +60,6 @@ LIBXL_DEFINE_DEVICE_REMOVE(p9)
>
>  DEFINE_DEVICE_TYPE_STRUCT(p9,
>      .skip_attach = 1,
> -    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
> -                                    flexarray_t *back, flexarray_t *front,
> -                                    flexarray_t *ro_front))
> -                           libxl__set_xenstore_p9
> +    .set_xenstore_config = (device_set_xenstore_config_fn_t)
> +                           libxl__set_xenstore_p9,
>  );
> diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c
> index 68511d7..624bd01 100644
> --- a/tools/libxl/libxl_console.c
> +++ b/tools/libxl/libxl_console.c
> @@ -737,10 +737,8 @@ LIBXL_DEFINE_DEVICE_REMOVE(vfb)
>
>  DEFINE_DEVICE_TYPE_STRUCT(vfb,
>      .skip_attach = 1,
> -    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
> -                                    flexarray_t *back, flexarray_t *front,
> -                                    flexarray_t *ro_front))
> -                           libxl__set_xenstore_vfb
> +    .set_xenstore_config = (device_set_xenstore_config_fn_t)
> +                           libxl__set_xenstore_vfb,
>  );
>
>  libxl_xen_console_reader *
> diff --git a/tools/libxl/libxl_disk.c b/tools/libxl/libxl_disk.c
> index 06dd4d3..7111b42 100644
> --- a/tools/libxl/libxl_disk.c
> +++ b/tools/libxl/libxl_disk.c
> @@ -1206,9 +1206,8 @@ static int libxl_device_disk_dm_needed(void *e, unsigned domid)
>  DEFINE_DEVICE_TYPE_STRUCT(disk,
>      .merge       = libxl_device_disk_merge,
>      .dm_needed   = libxl_device_disk_dm_needed,
> -    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
> -                     libxl__disk_from_xenstore,
> -    .skip_attach = 1
> +    .from_xenstore = (device_from_xenstore_fn_t)libxl__disk_from_xenstore,
> +    .skip_attach = 1,
>  );
>
>  /*
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index 81e87ae..c726595 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -3461,28 +3461,46 @@ _hidden void libxl__bootloader_run(libxl__egc*, libxl__bootloader_state *st);
>      LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, type, remove, 0)               \
>      LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, type, destroy, 1)
>
> +typedef void (*device_add_fn_t)(libxl__egc *, libxl__ao *, uint32_t,
> +                                libxl_domain_config *, libxl__multidev *);
> +typedef void *(*device_list_fn_t)(libxl_ctx *, uint32_t, int *);
> +typedef int (*device_set_default_fn_t)(libxl__gc *, uint32_t, void *, bool);
> +typedef int (*device_to_device_fn_t)(libxl__gc *, uint32_t, void *,
> +                                     libxl__device *);
> +typedef void (*device_init_fn_t)(void *);
> +typedef void (*device_copy_fn_t)(libxl_ctx *, void *, void *);
> +typedef void (*device_dispose_fn_t)(void *);
> +typedef int (*device_compare_fn_t)(void *, void *);
> +typedef void (*device_merge_fn_t)(libxl_ctx *, void *, void *);
> +typedef int (*device_dm_needed_fn_t)(void *, unsigned);
> +typedef void (*device_update_config_fn_t)(libxl__gc *, void *, void *);
> +typedef int (*device_update_devid_fn_t)(libxl__gc *, uint32_t, void *);
> +typedef int (*device_from_xenstore_fn_t)(libxl__gc *, const char *,
> +                                         libxl_devid, void *);
> +typedef int (*device_set_xenstore_config_fn_t)(libxl__gc *, uint32_t, void *,
> +                                               flexarray_t *, flexarray_t *,
> +                                               flexarray_t *);
> +
>  struct libxl_device_type {
>      char *type;
>      int skip_attach;   /* Skip entry in domcreate_attach_devices() if 1 */
>      int ptr_offset;    /* Offset of device array ptr in libxl_domain_config */
>      int num_offset;    /* Offset of # of devices in libxl_domain_config */
>      int dev_elem_size; /* Size of one device element in array */
> -    void (*add)(libxl__egc *, libxl__ao *, uint32_t, libxl_domain_config *,
> -                libxl__multidev *);
> -    void *(*list)(libxl_ctx *, uint32_t, int *);
> -    int (*set_default)(libxl__gc *, uint32_t, void *, bool);
> -    int (*to_device)(libxl__gc *, uint32_t, void *, libxl__device *);
> -    void (*init)(void *);
> -    void (*copy)(libxl_ctx *, void *, void *);
> -    void (*dispose)(void *);
> -    int (*compare)(void *, void *);
> -    void (*merge)(libxl_ctx *, void *, void *);
> -    int (*dm_needed)(void *, unsigned);
> -    void (*update_config)(libxl__gc *, void *, void *);
> -    int (*update_devid)(libxl__gc *, uint32_t, void *);
> -    int (*from_xenstore)(libxl__gc *, const char *, libxl_devid, void *);
> -    int (*set_xenstore_config)(libxl__gc *, uint32_t, void *, flexarray_t *,
> -                               flexarray_t *, flexarray_t *);
> +    device_add_fn_t                 add;
> +    device_list_fn_t                list;
> +    device_set_default_fn_t         set_default;
> +    device_to_device_fn_t           to_device;
> +    device_init_fn_t                init;
> +    device_copy_fn_t                copy;
> +    device_dispose_fn_t             dispose;
> +    device_compare_fn_t             compare;
> +    device_merge_fn_t               merge;
> +    device_dm_needed_fn_t           dm_needed;
> +    device_update_config_fn_t       update_config;
> +    device_update_devid_fn_t        update_devid;
> +    device_from_xenstore_fn_t       from_xenstore;
> +    device_set_xenstore_config_fn_t set_xenstore_config;
>  };
>
>  #define DEFINE_DEVICE_TYPE_STRUCT_X(name, sname, ...)                          \
> @@ -3492,20 +3510,17 @@ struct libxl_device_type {
>          .num_offset    = offsetof(libxl_domain_config, num_ ## name ## s),     \
>          .dev_elem_size = sizeof(libxl_device_ ## sname),                       \
>          .add           = libxl__add_ ## name ## s,                             \
> -        .list          = (void *(*)(libxl_ctx *, uint32_t, int *))             \
> -                         libxl_device_ ## sname ## _list,                      \
> -        .set_default   = (int (*)(libxl__gc *, uint32_t, void *, bool))\
> +        .list          = (device_list_fn_t)libxl_device_ ## sname ## _list,    \
> +        .set_default   = (device_set_default_fn_t)                             \
>                           libxl__device_ ## sname ## _setdefault,               \
> -        .to_device     = (int (*)(libxl__gc *, uint32_t,                       \
> -                                  void *, libxl__device *))                    \
> -                         libxl__device_from_ ## name,                          \
> -        .init          = (void (*)(void *))libxl_device_ ## sname ## _init,    \
> -        .copy          = (void (*)(libxl_ctx *, void *, void *))               \
> -                         libxl_device_ ## sname ## _copy,                      \
> -        .dispose       = (void (*)(void *))libxl_device_ ## sname ## _dispose, \
> -        .compare       = (int (*)(void *, void *))                             \
> +        .to_device     = (device_to_device_fn_t)libxl__device_from_ ## name,   \
> +        .init          = (device_init_fn_t)libxl_device_ ## sname ## _init,    \
> +        .copy          = (device_copy_fn_t)libxl_device_ ## sname ## _copy,    \
> +        .dispose       = (device_dispose_fn_t)                                 \
> +                         libxl_device_ ## sname ## _dispose,                   \
> +        .compare       = (device_compare_fn_t)                                 \
>                           libxl_device_ ## sname ## _compare,                   \
> -        .update_devid  = (int (*)(libxl__gc *, uint32_t, void *))              \
> +        .update_devid  = (device_update_devid_fn_t)                            \
>                           libxl__device_ ## sname ## _update_devid,             \
>          __VA_ARGS__                                                            \
>      }
> diff --git a/tools/libxl/libxl_nic.c b/tools/libxl/libxl_nic.c
> index d81b95b..cf8fd5c 100644
> --- a/tools/libxl/libxl_nic.c
> +++ b/tools/libxl/libxl_nic.c
> @@ -542,12 +542,9 @@ LIBXL_DEFINE_DEVICE_REMOVE(nic)
>
>  DEFINE_DEVICE_TYPE_STRUCT(nic,
>      .update_config = libxl_device_nic_update_config,
> -    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
> -                     libxl__nic_from_xenstore,
> -    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
> -                                    flexarray_t *back, flexarray_t *front,
> -                                    flexarray_t *ro_front))
> -                           libxl__set_xenstore_nic
> +    .from_xenstore = (device_from_xenstore_fn_t)libxl__nic_from_xenstore,
> +    .set_xenstore_config = (device_set_xenstore_config_fn_t)
> +                           libxl__set_xenstore_nic,
>  );
>
>  /*
> diff --git a/tools/libxl/libxl_vdispl.c b/tools/libxl/libxl_vdispl.c
> index befc56b..a2371ed 100644
> --- a/tools/libxl/libxl_vdispl.c
> +++ b/tools/libxl/libxl_vdispl.c
> @@ -269,13 +269,9 @@ LIBXL_DEFINE_DEVICE_REMOVE(vdispl)
>  static LIBXL_DEFINE_UPDATE_DEVID(vdispl, "vdispl")
>
>  DEFINE_DEVICE_TYPE_STRUCT(vdispl,
> -    .update_config = (void (*)(libxl__gc *, void *, void *))
> -                     libxl__update_config_vdispl,
> -    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
> -                     libxl__vdispl_from_xenstore,
> -    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
> -                                    flexarray_t *back, flexarray_t *front,
> -                                    flexarray_t *ro_front))
> +    .update_config = (device_update_config_fn_t)libxl__update_config_vdispl,
> +    .from_xenstore = (device_from_xenstore_fn_t)libxl__vdispl_from_xenstore,
> +    .set_xenstore_config = (device_set_xenstore_config_fn_t)
>                             libxl__set_xenstore_vdispl
>  );
>
> diff --git a/tools/libxl/libxl_vtpm.c b/tools/libxl/libxl_vtpm.c
> index 6182cfc..a06f15d 100644
> --- a/tools/libxl/libxl_vtpm.c
> +++ b/tools/libxl/libxl_vtpm.c
> @@ -263,12 +263,9 @@ LIBXL_DEFINE_DEVICE_REMOVE(vtpm)
>
>  DEFINE_DEVICE_TYPE_STRUCT(vtpm,
>      .update_config = libxl_device_vtpm_update_config,
> -    .from_xenstore = (int (*)(libxl__gc *, const char *, libxl_devid, void *))
> -                     libxl__vtpm_from_xenstore,
> -    .set_xenstore_config = (int (*)(libxl__gc *, uint32_t, void *,
> -                                    flexarray_t *back, flexarray_t *front,
> -                                    flexarray_t *ro_front))
> -                           libxl__set_xenstore_vtpm
> +    .from_xenstore = (device_from_xenstore_fn_t)libxl__vtpm_from_xenstore,
> +    .set_xenstore_config = (device_set_xenstore_config_fn_t)
> +                           libxl__set_xenstore_vtpm,
>  );
>
>  /*
> --
> 2.7.4
>

Please ignore.

-- 
Best Regards,
Oleksandr Grytsov.

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1] libxl: remove list callback from device framework
  2017-09-22 14:17       ` Wei Liu
@ 2017-09-22 14:18         ` Oleksandr Grytsov
  0 siblings, 0 replies; 8+ messages in thread
From: Oleksandr Grytsov @ 2017-09-22 14:18 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel, Ian Jackson, Oleksandr Grytsov

On Fri, Sep 22, 2017 at 5:17 PM, Wei Liu <wei.liu2@citrix.com> wrote:
> On Fri, Sep 22, 2017 at 05:00:44PM +0300, Oleksandr Grytsov wrote:
>> On Fri, Sep 22, 2017 at 4:02 PM, Wei Liu <wei.liu2@citrix.com> wrote:
>> > On Fri, Sep 22, 2017 at 03:28:55PM +0300, Oleksandr Grytsov wrote:
>> >> From: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
>> >>
>> >> As we have generic functions to get device list
>> >> (libxl__device_list) no need to have callback in
>> >> the framework. To resolve issue when XS entry
>> >> doesn't match device name, device type is
>> >> extended with field "entry" which keeps XS entry.
>> >>
>> >> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
>> >
>> > Acked-by: Wei Liu <wei.liu2@citrix.com>
>>
>> Shall I resend the patch with your ack?
>
> If this is the final that I can apply, then no; otherwise please resend.

It is final.

-- 
Best Regards,
Oleksandr Grytsov.

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1] libxl: remove list callback from device framework
  2017-09-22 14:00     ` Oleksandr Grytsov
@ 2017-09-22 14:17       ` Wei Liu
  2017-09-22 14:18         ` Oleksandr Grytsov
  0 siblings, 1 reply; 8+ messages in thread
From: Wei Liu @ 2017-09-22 14:17 UTC (permalink / raw)
  To: Oleksandr Grytsov; +Cc: Xen-devel, Wei Liu, Ian Jackson, Oleksandr Grytsov

On Fri, Sep 22, 2017 at 05:00:44PM +0300, Oleksandr Grytsov wrote:
> On Fri, Sep 22, 2017 at 4:02 PM, Wei Liu <wei.liu2@citrix.com> wrote:
> > On Fri, Sep 22, 2017 at 03:28:55PM +0300, Oleksandr Grytsov wrote:
> >> From: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
> >>
> >> As we have generic functions to get device list
> >> (libxl__device_list) no need to have callback in
> >> the framework. To resolve issue when XS entry
> >> doesn't match device name, device type is
> >> extended with field "entry" which keeps XS entry.
> >>
> >> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
> >
> > Acked-by: Wei Liu <wei.liu2@citrix.com>
> 
> Shall I resend the patch with your ack?

If this is the final that I can apply, then no; otherwise please resend.

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1] libxl: remove list callback from device framework
  2017-09-22 13:02   ` Wei Liu
@ 2017-09-22 14:00     ` Oleksandr Grytsov
  2017-09-22 14:17       ` Wei Liu
  0 siblings, 1 reply; 8+ messages in thread
From: Oleksandr Grytsov @ 2017-09-22 14:00 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel, Ian Jackson, Oleksandr Grytsov

On Fri, Sep 22, 2017 at 4:02 PM, Wei Liu <wei.liu2@citrix.com> wrote:
> On Fri, Sep 22, 2017 at 03:28:55PM +0300, Oleksandr Grytsov wrote:
>> From: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
>>
>> As we have generic functions to get device list
>> (libxl__device_list) no need to have callback in
>> the framework. To resolve issue when XS entry
>> doesn't match device name, device type is
>> extended with field "entry" which keeps XS entry.
>>
>> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
>
> Acked-by: Wei Liu <wei.liu2@citrix.com>

Shall I resend the patch with your ack?

-- 
Best Regards,
Oleksandr Grytsov.

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1] libxl: remove list callback from device framework
  2017-09-22 12:28 ` [PATCH v1] libxl: remove list callback from device framework Oleksandr Grytsov
@ 2017-09-22 13:02   ` Wei Liu
  2017-09-22 14:00     ` Oleksandr Grytsov
  0 siblings, 1 reply; 8+ messages in thread
From: Wei Liu @ 2017-09-22 13:02 UTC (permalink / raw)
  To: Oleksandr Grytsov; +Cc: xen-devel, wei.liu2, ian.jackson, Oleksandr Grytsov

On Fri, Sep 22, 2017 at 03:28:55PM +0300, Oleksandr Grytsov wrote:
> From: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
> 
> As we have generic functions to get device list
> (libxl__device_list) no need to have callback in
> the framework. To resolve issue when XS entry
> doesn't match device name, device type is
> extended with field "entry" which keeps XS entry.
> 
> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v1] libxl: remove list callback from device framework
  2017-09-22 12:28 Oleksandr Grytsov
@ 2017-09-22 12:28 ` Oleksandr Grytsov
  2017-09-22 13:02   ` Wei Liu
  0 siblings, 1 reply; 8+ messages in thread
From: Oleksandr Grytsov @ 2017-09-22 12:28 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson, wei.liu2, Oleksandr Grytsov

From: Oleksandr Grytsov <oleksandr_grytsov@epam.com>

As we have generic functions to get device list
(libxl__device_list) no need to have callback in
the framework. To resolve issue when XS entry
doesn't match device name, device type is
extended with field "entry" which keeps XS entry.

Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
---
 tools/libxl/libxl_checkpoint_device.c |  4 ++--
 tools/libxl/libxl_colo_save.c         |  2 +-
 tools/libxl/libxl_device.c            |  4 ++--
 tools/libxl/libxl_disk.c              | 24 ++++--------------------
 tools/libxl/libxl_domain.c            |  4 ++--
 tools/libxl/libxl_internal.h          | 30 ++++++++++++++++++++++++------
 tools/libxl/libxl_nic.c               |  6 +++---
 tools/libxl/libxl_pci.c               |  2 +-
 tools/libxl/libxl_vdispl.c            | 23 ++---------------------
 tools/libxl/libxl_vtpm.c              | 23 +++--------------------
 10 files changed, 44 insertions(+), 78 deletions(-)

diff --git a/tools/libxl/libxl_checkpoint_device.c b/tools/libxl/libxl_checkpoint_device.c
index ef212e4..f6395dc 100644
--- a/tools/libxl/libxl_checkpoint_device.c
+++ b/tools/libxl/libxl_checkpoint_device.c
@@ -64,11 +64,11 @@ void libxl__checkpoint_devices_setup(libxl__egc *egc,
 
     if (cds->device_kind_flags & (1 << LIBXL__DEVICE_KIND_VIF))
         cds->nics = libxl__device_list(gc, &libxl__nic_devtype, cds->domid,
-                                       "vif", &cds->num_nics);
+                                       &cds->num_nics);
 
     if (cds->device_kind_flags & (1 << LIBXL__DEVICE_KIND_VBD))
         cds->disks = libxl__device_list(gc, &libxl__disk_devtype, cds->domid,
-                                        "vbd", &cds->num_disks);
+                                        &cds->num_disks);
 
     if (cds->num_nics == 0 && cds->num_disks == 0)
         goto out;
diff --git a/tools/libxl/libxl_colo_save.c b/tools/libxl/libxl_colo_save.c
index 43f7dbe..3247cce 100644
--- a/tools/libxl/libxl_colo_save.c
+++ b/tools/libxl/libxl_colo_save.c
@@ -122,7 +122,7 @@ void libxl__colo_save_setup(libxl__egc *egc, libxl__colo_save_state *css)
 
         /* Use this args we can connect to qemu colo-compare */
         cds->nics = libxl__device_list(gc, &libxl__nic_devtype,
-                                       cds->domid, "vif", &cds->num_nics);
+                                       cds->domid, &cds->num_nics);
         if (cds->num_nics > 0) {
             css->cps.checkpoint_host = cds->nics[0].colo_checkpoint_host;
             css->cps.checkpoint_port = cds->nics[0].colo_checkpoint_port;
diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
index 67b7afb..46ca5a4 100644
--- a/tools/libxl/libxl_device.c
+++ b/tools/libxl/libxl_device.c
@@ -1989,7 +1989,7 @@ out:
 }
 
 void *libxl__device_list(libxl__gc *gc, const struct libxl_device_type *dt,
-                         uint32_t domid, const char* name, int *num)
+                         uint32_t domid, int *num)
 {
     void *r = NULL;
     void *list = NULL;
@@ -2002,7 +2002,7 @@ void *libxl__device_list(libxl__gc *gc, const struct libxl_device_type *dt,
     *num = 0;
 
     libxl_path = GCSPRINTF("%s/device/%s",
-                           libxl__xs_libxl_path(gc, domid), name);
+                           libxl__xs_libxl_path(gc, domid), dt->entry);
 
     dir = libxl__xs_directory(gc, XBT_NULL, libxl_path, &ndirs);
 
diff --git a/tools/libxl/libxl_disk.c b/tools/libxl/libxl_disk.c
index 7111b42..263cb56 100644
--- a/tools/libxl/libxl_disk.c
+++ b/tools/libxl/libxl_disk.c
@@ -622,24 +622,6 @@ out:
     return rc;
 }
 
-libxl_device_disk *libxl_device_disk_list(libxl_ctx *ctx, uint32_t domid, int *num)
-{
-    libxl_device_disk *r;
-
-    GC_INIT(ctx);
-
-    r = libxl__device_list(gc, &libxl__disk_devtype, domid, "vbd", num);
-
-    GC_FREE;
-
-    return r;
-}
-
-void libxl_device_disk_list_free(libxl_device_disk *list, int num)
-{
-    libxl__device_list_free(&libxl__disk_devtype, list, num);
-}
-
 int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,
                               libxl_device_disk *disk, libxl_diskinfo *diskinfo)
 {
@@ -741,7 +723,7 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk,
         goto out;
     }
 
-    disks = libxl__device_list(gc, &libxl__disk_devtype, domid, "vbd", &num);
+    disks = libxl__device_list(gc, &libxl__disk_devtype, domid, &num);
     for (i = 0; i < num; i++) {
         if (disks[i].is_cdrom && !strcmp(disk->vdev, disks[i].vdev))
         {
@@ -1201,9 +1183,11 @@ static int libxl_device_disk_dm_needed(void *e, unsigned domid)
            elem->backend_domid == domid;
 }
 
+LIBXL_DEFINE_DEVICE_LIST(disk)
+
 #define libxl__device_disk_update_devid NULL
 
-DEFINE_DEVICE_TYPE_STRUCT(disk,
+DEFINE_DEVICE_TYPE_STRUCT_X(disk, disk, vbd,
     .merge       = libxl_device_disk_merge,
     .dm_needed   = libxl_device_disk_dm_needed,
     .from_xenstore = (device_from_xenstore_fn_t)libxl__disk_from_xenstore,
diff --git a/tools/libxl/libxl_domain.c b/tools/libxl/libxl_domain.c
index 08eccd0..0434ab9 100644
--- a/tools/libxl/libxl_domain.c
+++ b/tools/libxl/libxl_domain.c
@@ -1679,11 +1679,11 @@ int libxl_retrieve_domain_configuration(libxl_ctx *ctx, uint32_t domid,
             if (!dt)
                 break;
 
-            if (!dt->list || !dt->compare)
+            if (!dt->compare)
                 continue;
 
             num_dev = libxl__device_type_get_num(dt, d_config);
-            p = dt->list(CTX, domid, &num);
+            p = libxl__device_list(gc, dt, domid, &num);
             if (p == NULL) {
                 LOGD(DEBUG, domid, "No %s from xenstore",
                      dt->type);
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index c726595..8b71517 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -3461,9 +3461,27 @@ _hidden void libxl__bootloader_run(libxl__egc*, libxl__bootloader_state *st);
     LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, type, remove, 0)               \
     LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, type, destroy, 1)
 
+#define LIBXL_DEFINE_DEVICE_LIST(type)                                  \
+    libxl_device_##type *libxl_device_##type##_list(libxl_ctx *ctx,     \
+                                                    uint32_t domid,     \
+                                                    int *num)           \
+    {                                                                   \
+        libxl_device_##type *r;                                         \
+        GC_INIT(ctx);                                                   \
+        r = libxl__device_list(gc, &libxl__##type##_devtype,            \
+                               domid, num);                             \
+        GC_FREE;                                                        \
+        return r;                                                       \
+    }                                                                   \
+                                                                        \
+    void libxl_device_##type##_list_free(libxl_device_##type *list,     \
+                                         int num)                       \
+    {                                                                   \
+        libxl__device_list_free(&libxl__##type##_devtype, list, num);   \
+    }
+
 typedef void (*device_add_fn_t)(libxl__egc *, libxl__ao *, uint32_t,
                                 libxl_domain_config *, libxl__multidev *);
-typedef void *(*device_list_fn_t)(libxl_ctx *, uint32_t, int *);
 typedef int (*device_set_default_fn_t)(libxl__gc *, uint32_t, void *, bool);
 typedef int (*device_to_device_fn_t)(libxl__gc *, uint32_t, void *,
                                      libxl__device *);
@@ -3483,12 +3501,12 @@ typedef int (*device_set_xenstore_config_fn_t)(libxl__gc *, uint32_t, void *,
 
 struct libxl_device_type {
     char *type;
+    char *entry;
     int skip_attach;   /* Skip entry in domcreate_attach_devices() if 1 */
     int ptr_offset;    /* Offset of device array ptr in libxl_domain_config */
     int num_offset;    /* Offset of # of devices in libxl_domain_config */
     int dev_elem_size; /* Size of one device element in array */
     device_add_fn_t                 add;
-    device_list_fn_t                list;
     device_set_default_fn_t         set_default;
     device_to_device_fn_t           to_device;
     device_init_fn_t                init;
@@ -3503,14 +3521,14 @@ struct libxl_device_type {
     device_set_xenstore_config_fn_t set_xenstore_config;
 };
 
-#define DEFINE_DEVICE_TYPE_STRUCT_X(name, sname, ...)                          \
+#define DEFINE_DEVICE_TYPE_STRUCT_X(name, sname, sentry, ...)                  \
     const struct libxl_device_type libxl__ ## name ## _devtype = {             \
         .type          = #sname,                                               \
+        .entry         = #sentry,                                              \
         .ptr_offset    = offsetof(libxl_domain_config, name ## s),             \
         .num_offset    = offsetof(libxl_domain_config, num_ ## name ## s),     \
         .dev_elem_size = sizeof(libxl_device_ ## sname),                       \
         .add           = libxl__add_ ## name ## s,                             \
-        .list          = (device_list_fn_t)libxl_device_ ## sname ## _list,    \
         .set_default   = (device_set_default_fn_t)                             \
                          libxl__device_ ## sname ## _setdefault,               \
         .to_device     = (device_to_device_fn_t)libxl__device_from_ ## name,   \
@@ -3526,7 +3544,7 @@ struct libxl_device_type {
     }
 
 #define DEFINE_DEVICE_TYPE_STRUCT(name, ...)                                   \
-    DEFINE_DEVICE_TYPE_STRUCT_X(name, name, __VA_ARGS__)
+    DEFINE_DEVICE_TYPE_STRUCT_X(name, name, name, __VA_ARGS__)
 
 static inline void **libxl__device_type_get_ptr(
     const struct libxl_device_type *dt, const libxl_domain_config *d_config)
@@ -4338,7 +4356,7 @@ int libxl__device_add(libxl__gc *gc, uint32_t domid,
  * libxl__device_list_free
  */
 void* libxl__device_list(libxl__gc *gc, const struct libxl_device_type *dt,
-                         uint32_t domid, const char* name, int *num);
+                         uint32_t domid, int *num);
 void libxl__device_list_free(const struct libxl_device_type *dt,
                              void *list, int num);
 #endif
diff --git a/tools/libxl/libxl_nic.c b/tools/libxl/libxl_nic.c
index cf8fd5c..9daecf7 100644
--- a/tools/libxl/libxl_nic.c
+++ b/tools/libxl/libxl_nic.c
@@ -29,7 +29,7 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,
     if (rc)
         return rc;
 
-    nics = libxl__device_list(gc, &libxl__nic_devtype, domid, "vif", &nb);
+    nics = libxl__device_list(gc, &libxl__nic_devtype, domid, &nb);
     if (!nics)
         return ERROR_FAIL;
 
@@ -426,7 +426,7 @@ libxl_device_nic *libxl_device_nic_list(libxl_ctx *ctx, uint32_t domid, int *num
 
     GC_INIT(ctx);
 
-    r = libxl__device_list(gc, &libxl__nic_devtype, domid, "vif", num);
+    r = libxl__device_list(gc, &libxl__nic_devtype, domid, num);
 
     GC_FREE;
 
@@ -540,7 +540,7 @@ LIBXL_DEFINE_DEVICE_ADD(nic)
 LIBXL_DEFINE_DEVICES_ADD(nic)
 LIBXL_DEFINE_DEVICE_REMOVE(nic)
 
-DEFINE_DEVICE_TYPE_STRUCT(nic,
+DEFINE_DEVICE_TYPE_STRUCT_X(nic, nic, vif,
     .update_config = libxl_device_nic_update_config,
     .from_xenstore = (device_from_xenstore_fn_t)libxl__nic_from_xenstore,
     .set_xenstore_config = (device_set_xenstore_config_fn_t)
diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
index f929e5a..88a55ce 100644
--- a/tools/libxl/libxl_pci.c
+++ b/tools/libxl/libxl_pci.c
@@ -1682,7 +1682,7 @@ static int libxl_device_pci_compare(libxl_device_pci *d1,
 
 #define libxl__device_pci_update_devid NULL
 
-DEFINE_DEVICE_TYPE_STRUCT_X(pcidev, pci);
+DEFINE_DEVICE_TYPE_STRUCT_X(pcidev, pci, pci);
 
 /*
  * Local variables:
diff --git a/tools/libxl/libxl_vdispl.c b/tools/libxl/libxl_vdispl.c
index a2371ed..e61ef2d 100644
--- a/tools/libxl/libxl_vdispl.c
+++ b/tools/libxl/libxl_vdispl.c
@@ -94,25 +94,6 @@ static int libxl__set_xenstore_vdispl(libxl__gc *gc, uint32_t domid,
     return 0;
 }
 
-libxl_device_vdispl *libxl_device_vdispl_list(libxl_ctx *ctx, uint32_t domid,
-                                              int *num)
-{
-    libxl_device_vdispl *r;
-
-    GC_INIT(ctx);
-
-    r = libxl__device_list(gc, &libxl__vdispl_devtype, domid, "vdispl", num);
-
-    GC_FREE;
-
-    return r;
-}
-
-void libxl_device_vdispl_list_free(libxl_device_vdispl* list, int num)
-{
-    libxl__device_list_free(&libxl__vdispl_devtype, list, num);
-}
-
 static int libxl__device_vdispl_getconnectors(libxl_ctx *ctx,
                                               const char *path,
                                               libxl_vdisplinfo *info)
@@ -239,8 +220,7 @@ int libxl_devid_to_device_vdispl(libxl_ctx *ctx, uint32_t domid,
 
     libxl_device_vdispl_init(vdispl);
 
-    vdispls = libxl__device_list(gc, &libxl__vdispl_devtype,
-                                 domid, "vdispl", &n);
+    vdispls = libxl__device_list(gc, &libxl__vdispl_devtype, domid, &n);
 
     if (!vdispls) { rc = ERROR_NOTFOUND; goto out; }
 
@@ -267,6 +247,7 @@ LIBXL_DEFINE_DEVICE_ADD(vdispl)
 static LIBXL_DEFINE_DEVICES_ADD(vdispl)
 LIBXL_DEFINE_DEVICE_REMOVE(vdispl)
 static LIBXL_DEFINE_UPDATE_DEVID(vdispl, "vdispl")
+LIBXL_DEFINE_DEVICE_LIST(vdispl)
 
 DEFINE_DEVICE_TYPE_STRUCT(vdispl,
     .update_config = (device_update_config_fn_t)libxl__update_config_vdispl,
diff --git a/tools/libxl/libxl_vtpm.c b/tools/libxl/libxl_vtpm.c
index a06f15d..3f0c563 100644
--- a/tools/libxl/libxl_vtpm.c
+++ b/tools/libxl/libxl_vtpm.c
@@ -104,24 +104,6 @@ static int libxl__vtpm_from_xenstore(libxl__gc *gc, const char *libxl_path,
     return 0;
 }
 
-libxl_device_vtpm *libxl_device_vtpm_list(libxl_ctx *ctx, uint32_t domid, int *num)
-{
-    libxl_device_vtpm *r;
-
-    GC_INIT(ctx);
-
-    r = libxl__device_list(gc, &libxl__vtpm_devtype, domid, "vtpm", num);
-
-    GC_FREE;
-
-    return r;
-}
-
-void libxl_device_vtpm_list_free(libxl_device_vtpm* list, int num)
-{
-    libxl__device_list_free(&libxl__vtpm_devtype, list, num);
-}
-
 int libxl_device_vtpm_getinfo(libxl_ctx *ctx,
                               uint32_t domid,
                               libxl_device_vtpm *vtpm,
@@ -196,7 +178,7 @@ int libxl_devid_to_device_vtpm(libxl_ctx *ctx,
     int nb, i;
     int rc;
 
-    vtpms = libxl__device_list(gc, &libxl__vtpm_devtype, domid, "vtpm", &nb);
+    vtpms = libxl__device_list(gc, &libxl__vtpm_devtype, domid, &nb);
     if (!vtpms)
         return ERROR_FAIL;
 
@@ -231,7 +213,7 @@ int libxl_uuid_to_device_vtpm(libxl_ctx *ctx, uint32_t domid,
     int nb, i;
     int rc;
 
-    vtpms = libxl__device_list(gc, &libxl__vtpm_devtype, domid, "vtpm", &nb);
+    vtpms = libxl__device_list(gc, &libxl__vtpm_devtype, domid, &nb);
     if (!vtpms)
         return ERROR_FAIL;
 
@@ -260,6 +242,7 @@ static void libxl_device_vtpm_update_config(libxl__gc *gc, void *d, void *s)
 LIBXL_DEFINE_DEVICE_ADD(vtpm)
 static LIBXL_DEFINE_DEVICES_ADD(vtpm)
 LIBXL_DEFINE_DEVICE_REMOVE(vtpm)
+LIBXL_DEFINE_DEVICE_LIST(vtpm)
 
 DEFINE_DEVICE_TYPE_STRUCT(vtpm,
     .update_config = libxl_device_vtpm_update_config,
-- 
2.7.4


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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-09-22 14:18 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-22 12:24 [PATCH v1] libxl: remove list callback from device framework Oleksandr Grytsov
2017-09-22 12:24 ` [PATCH v1] libxl: provide typedefs for device framework functions Oleksandr Grytsov
2017-09-22 12:26   ` Oleksandr Grytsov
2017-09-22 12:28 Oleksandr Grytsov
2017-09-22 12:28 ` [PATCH v1] libxl: remove list callback from device framework Oleksandr Grytsov
2017-09-22 13:02   ` Wei Liu
2017-09-22 14:00     ` Oleksandr Grytsov
2017-09-22 14:17       ` Wei Liu
2017-09-22 14:18         ` Oleksandr Grytsov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.