|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1] libxl: provide typedefs for device framework functions
On Fri, Sep 22, 2017 at 3:24 PM, Oleksandr Grytsov <al1img@xxxxxxxxx> wrote:
> From: Wei Liu <wei.liu2@xxxxxxxxxx>
>
> Use the new typedefs to avoid copy-n-paste everywhere.
>
> No functional change.
>
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> 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@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |