diff mbox

libxl: add back libxl_device_v{k,f}b_add

Message ID 20170913134409.10815-1-wei.liu2@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Wei Liu Sept. 13, 2017, 1:44 p.m. UTC
The two functions, unlike a lot others, were hand-coded. They were
deleted by accident while the device framework was reworked. Add them
back.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
---
 tools/libxl/libxl_console.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

Comments

Oleksandr Grytsov Sept. 14, 2017, 2:27 p.m. UTC | #1
On Wed, Sep 13, 2017 at 4:44 PM, Wei Liu <wei.liu2@citrix.com> wrote:
> The two functions, unlike a lot others, were hand-coded. They were
> deleted by accident while the device framework was reworked. Add them
> back.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> ---
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Oleksandr Grytsov <oleksandr_grytsov@epam.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
>  tools/libxl/libxl_console.c | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c
> index 6dcad8a88a..68511d7dc5 100644
> --- a/tools/libxl/libxl_console.c
> +++ b/tools/libxl/libxl_console.c
> @@ -603,6 +603,23 @@ static int libxl__device_from_vkb(libxl__gc *gc, uint32_t domid,
>      return 0;
>  }
>
> +int libxl_device_vkb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vkb *vkb,
> +                         const libxl_asyncop_how *ao_how)
> +{
> +    AO_CREATE(ctx, domid, ao_how);
> +    int rc;
> +
> +    rc = libxl__device_add(gc, domid, &libxl__vkb_devtype, vkb);
> +    if (rc) {
> +        LOGD(ERROR, domid, "Unable to add vkb device");
> +        goto out;
> +    }
> +
> +out:
> +    libxl__ao_complete(egc, ao, rc);
> +    return AO_INPROGRESS;
> +}
> +
>  static LIBXL_DEFINE_UPDATE_DEVID(vkb, "vkb")
>
>  static int libxl__device_vfb_setdefault(libxl__gc *gc, uint32_t domid,
> @@ -642,6 +659,23 @@ static int libxl__device_from_vfb(libxl__gc *gc, uint32_t domid,
>      return 0;
>  }
>
> +int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb,
> +                         const libxl_asyncop_how *ao_how)
> +{
> +    AO_CREATE(ctx, domid, ao_how);
> +    int rc;
> +
> +    rc = libxl__device_add(gc, domid, &libxl__vfb_devtype, vfb);
> +    if (rc) {
> +        LOGD(ERROR, domid, "Unable to add vfb device");
> +        goto out;
> +    }
> +
> +out:
> +    libxl__ao_complete(egc, ao, rc);
> +    return AO_INPROGRESS;
> +}
> +
>  static LIBXL_DEFINE_UPDATE_DEVID(vfb, "vfb")
>
>  static int libxl__set_xenstore_vfb(libxl__gc *gc, uint32_t domid,
> --
> 2.11.0
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> https://lists.xen.org/xen-devel

I've removed these functions as they weren't used. For proper removing
they should be removed from header as well.
If they are required by some extern application could they use generic
async function to add vkb and vfb as other devices use:

 static void libxl__device_vkb_add(libxl__egc *egc, uint32_t domid,
                                     libxl_device_vkb *vkb,
                                     libxl__ao_device *aodev)
{
    libxl__device_add_async(egc, domid, &libxl__vkb_devtype, vkb, aodev);
}

LIBXL_DEFINE_DEVICE_ADD(vkb)

?
Wei Liu Sept. 14, 2017, 2:29 p.m. UTC | #2
On Thu, Sep 14, 2017 at 05:27:07PM +0300, Oleksandr Grytsov wrote:
> 
> I've removed these functions as they weren't used. For proper removing
> they should be removed from header as well.
> If they are required by some extern application could they use generic
> async function to add vkb and vfb as other devices use:
> 

They were public functions. That means they can be used by any libxl
users, not just xl.

>  static void libxl__device_vkb_add(libxl__egc *egc, uint32_t domid,
>                                      libxl_device_vkb *vkb,
>                                      libxl__ao_device *aodev)
> {
>     libxl__device_add_async(egc, domid, &libxl__vkb_devtype, vkb, aodev);
> }
> 
> LIBXL_DEFINE_DEVICE_ADD(vkb)

Then that change them from sync to async. I didn't have the time to work
out if that would be okay so I played safe here.
Ian Jackson Sept. 14, 2017, 3:42 p.m. UTC | #3
Wei Liu writes ("Re: [Xen-devel] [PATCH] libxl: add back libxl_device_v{k,f}b_add"):
> On Thu, Sep 14, 2017 at 05:27:07PM +0300, Oleksandr Grytsov wrote:
> > 
> > I've removed these functions as they weren't used. For proper removing
> > they should be removed from header as well.
> > If they are required by some extern application could they use generic
> > async function to add vkb and vfb as other devices use:
> > 
> 
> They were public functions. That means they can be used by any libxl
> users, not just xl.

Surely only
  libxl_device_vkb_add
is public and the other is the implementation.

Anyway,

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>

Thanks,
Ian.
diff mbox

Patch

diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c
index 6dcad8a88a..68511d7dc5 100644
--- a/tools/libxl/libxl_console.c
+++ b/tools/libxl/libxl_console.c
@@ -603,6 +603,23 @@  static int libxl__device_from_vkb(libxl__gc *gc, uint32_t domid,
     return 0;
 }
 
+int libxl_device_vkb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vkb *vkb,
+                         const libxl_asyncop_how *ao_how)
+{
+    AO_CREATE(ctx, domid, ao_how);
+    int rc;
+
+    rc = libxl__device_add(gc, domid, &libxl__vkb_devtype, vkb);
+    if (rc) {
+        LOGD(ERROR, domid, "Unable to add vkb device");
+        goto out;
+    }
+
+out:
+    libxl__ao_complete(egc, ao, rc);
+    return AO_INPROGRESS;
+}
+
 static LIBXL_DEFINE_UPDATE_DEVID(vkb, "vkb")
 
 static int libxl__device_vfb_setdefault(libxl__gc *gc, uint32_t domid,
@@ -642,6 +659,23 @@  static int libxl__device_from_vfb(libxl__gc *gc, uint32_t domid,
     return 0;
 }
 
+int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb,
+                         const libxl_asyncop_how *ao_how)
+{
+    AO_CREATE(ctx, domid, ao_how);
+    int rc;
+
+    rc = libxl__device_add(gc, domid, &libxl__vfb_devtype, vfb);
+    if (rc) {
+        LOGD(ERROR, domid, "Unable to add vfb device");
+        goto out;
+    }
+
+out:
+    libxl__ao_complete(egc, ao, rc);
+    return AO_INPROGRESS;
+}
+
 static LIBXL_DEFINE_UPDATE_DEVID(vfb, "vfb")
 
 static int libxl__set_xenstore_vfb(libxl__gc *gc, uint32_t domid,