All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Olaf Hering <olaf@aepfle.de>
Cc: Wei Liu <wei.liu2@citrix.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>,
	xen-devel@lists.xen.org
Subject: Re: [PATCH v3 4/4] libxl: add support for vscsi
Date: Wed, 11 Mar 2015 15:33:26 +0000	[thread overview]
Message-ID: <1426088006.21353.282.camel@citrix.com> (raw)
In-Reply-To: <1425635156-2357-5-git-send-email-olaf@aepfle.de>

On Fri, 2015-03-06 at 10:45 +0100, Olaf Hering wrote:
> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
> index 6bbc52d..1ad52e3 100644
> --- a/tools/libxl/libxl.h
> +++ b/tools/libxl/libxl.h

Needs a LIBXL_HAVE define too.

> @@ -1224,6 +1224,35 @@ int libxl_device_channel_getinfo(libxl_ctx *ctx, uint32_t domid,
>                                   libxl_device_channel *channel,
>                                   libxl_channelinfo *channelinfo);
>  
> +/* Virtual SCSI */
> +int libxl_device_vscsi_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vscsi *vscsi,
> +                           const libxl_asyncop_how *ao_how)
> +                           LIBXL_EXTERNAL_CALLERS_ONLY;
> +int libxl_device_vscsi_remove(libxl_ctx *ctx, uint32_t domid,
> +                              libxl_device_vscsi *vscsi,
> +                              const libxl_asyncop_how *ao_how)
> +                              LIBXL_EXTERNAL_CALLERS_ONLY;
> +int libxl_device_vscsi_destroy(libxl_ctx *ctx, uint32_t domid,
> +                               libxl_device_vscsi *vscsi,
> +                               const libxl_asyncop_how *ao_how)
> +                               LIBXL_EXTERNAL_CALLERS_ONLY;
> +
> +libxl_device_vscsi *libxl_device_vscsi_list(libxl_ctx *ctx, uint32_t domid, int *num);
> +int libxl_device_vscsi_getinfo(libxl_ctx *ctx,
> +                               uint32_t domid,
> +                               libxl_device_vscsi *vscsi_host,
> +                               libxl_vscsi_dev *vscsi_dev,
> +                               libxl_vscsiinfo *vscsiinfo);

> +void libxl_device_vscsi_append_dev(libxl_ctx *ctx, libxl_device_vscsi *hst,
> +                                   libxl_vscsi_dev *dev);
> +int libxl_device_vscsi_get_host(libxl_ctx *ctx,
> +                                uint32_t domid,
> +                                const char *cfg,
> +                                libxl_device_vscsi **vscsi_host);

What do these two non-standard functions do?

In general the caller would be expected to provide a libxl_device_vscsi,
which will be filled in, rather than having the function allocate one.

> +int libxl_device_vscsi_parse(libxl_ctx *ctx, const char *cfg,
> +                             libxl_device_vscsi *vscsi_host,
> +                             libxl_vscsi_dev *vscsi_dev);

Like with disk, this is xend/xl specific but might be of use to other
toolstacks, therefore it belongs in libxlu not in libxl proper.

(this might apply to get_host too, depending on what it does)

> +
>  /* Virtual TPMs */
>  int libxl_device_vtpm_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vtpm *vtpm,
>                            const libxl_asyncop_how *ao_how)

> +int libxl_device_vscsi_parse_pdev(libxl__gc *gc, char *pdev, unsigned int *hst,
> +                                unsigned int *chn, unsigned int *tgt,
> +                                unsigned int *lun)
> +{
> +
> +    return ERROR_NOPARAVIRT;

That's a rather odd error code to use here.

(also, unnecessary blank line)

> diff --git a/tools/libxl/libxl_netbsd.c b/tools/libxl/libxl_netbsd.c
> index 898e160..b8972f0 100644
> --- a/tools/libxl/libxl_netbsd.c
> +++ b/tools/libxl/libxl_netbsd.c
> @@ -95,3 +95,11 @@ libxl_device_model_version libxl__default_device_model(libxl__gc *gc)
>  {
>      return LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
>  }
> +
> +int libxl_device_vscsi_parse_pdev(libxl__gc *gc, char *pdev, unsigned int *hst,
> +                                unsigned int *chn, unsigned int *tgt,
> +                                unsigned int *lun)
> +{
> +
> +    return ERROR_NOPARAVIRT;

As before.

> +}
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index 47af340..e56f231 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -542,6 +542,37 @@ libxl_device_channel = Struct("device_channel", [
>             ])),
>  ])
>  
> +libxl_vscsi_pdev_type = Enumeration("vscsi_pdev_type", [
> +    (0, "INVALID"),
> +    (1, "DEV"),
> +    (2, "WWN"),
> +    (3, "HCTL"),
> +    ], init_val = "LIBXL_VSCSI_PDEV_TYPE_INVALID")

You don't need init_val if it happens to be zero.

> +
> +libxl_vscsi_hctl = Struct("vscsi_hctl", [
> +    ("hst", uint32),
> +    ("chn", uint32),
> +    ("tgt", uint32),
> +    ("lun", uint32),
> +    ])
> +
> +libxl_vscsi_dev = Struct("vscsi_dev", [
> +    ("vscsi_dev_id",     libxl_devid),
> +    ("remove",           bool),
> +    ("p_devname",        string),
> +    ("pdev_type",        libxl_vscsi_pdev_type),
> +    ("pdev",             libxl_vscsi_hctl),
> +    ("vdev",             libxl_vscsi_hctl),

Are these last two valid for LIBXL_VSCSI_PDEV_TYPE != HCTL?

> +    ])
> +
> +libxl_device_vscsi = Struct("device_vscsi", [
> +    ("backend_domid",    libxl_domid),
> +    ("devid",            libxl_devid),
> +    ("v_hst",            uint32),
> +    ("vscsi_devs",       Array(libxl_vscsi_dev, "num_vscsi_devs")),
> +    ("feature_host",     bool),

What is this feature thing? What does !host imply?

> diff --git a/tools/libxl/libxl_vscsi.c b/tools/libxl/libxl_vscsi.c
> new file mode 100644
> index 0000000..ab4cb5f
> --- /dev/null
> +++ b/tools/libxl/libxl_vscsi.c

Needs a copyright and a license.

  parent reply	other threads:[~2015-03-11 15:33 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-06  9:45 [PATCH v3 0/4] libbxl: add support for pvscsi, iteration 3 Olaf Hering
2015-03-06  9:45 ` [PATCH v3 1/4] vscsiif.h: fix WWN notation for p-dev property Olaf Hering
2015-03-06  9:45 ` [PATCH v3 2/4] docs: add vscsi to xenstore-paths.markdown Olaf Hering
2015-03-06 13:55   ` Wei Liu
2015-03-06 15:07     ` Olaf Hering
2015-03-06  9:45 ` [PATCH v3 3/4] docs: add pvscsi.txt Olaf Hering
2015-03-06 13:55   ` Wei Liu
2015-03-06 15:11     ` Olaf Hering
2015-03-06 15:37       ` Wei Liu
2015-03-11 15:23       ` Ian Campbell
2015-03-06  9:45 ` [PATCH v3 4/4] libxl: add support for vscsi Olaf Hering
2015-03-06 14:31   ` Wei Liu
2015-03-06 15:25     ` Olaf Hering
2015-03-06 15:53       ` Wei Liu
2015-03-09 16:08     ` Olaf Hering
2015-03-09 16:46       ` Wei Liu
2015-03-11 15:24     ` Ian Campbell
2015-03-11 15:33   ` Ian Campbell [this message]
2015-03-11 16:02     ` Olaf Hering
2015-03-11 16:09       ` Ian Campbell
2015-03-13 13:49         ` Olaf Hering
2015-03-11 16:06     ` Olaf Hering
2015-03-12 16:07     ` Olaf Hering
2015-03-12 16:47       ` Ian Campbell
2015-03-13 13:45         ` Olaf Hering
2015-03-13 15:10           ` Wei Liu
2015-03-16  8:16             ` Olaf Hering
2015-03-16 11:30               ` Wei Liu
2015-03-12 16:20     ` Olaf Hering
2015-03-12 16:46       ` Ian Campbell
2015-03-13 13:44         ` Olaf Hering
2015-03-13 14:18           ` Ian Campbell
2015-03-26 12:55             ` Olaf Hering
2015-03-26 13:46               ` Ian Campbell
2015-03-27  7:38                 ` Olaf Hering
2015-04-10  9:23   ` wating for backend changes (was Re: [PATCH v3 4/4] libxl: add support for vscsi) Olaf Hering
2015-04-14 15:55     ` Olaf Hering
2015-04-15 11:50     ` Ian Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1426088006.21353.282.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=olaf@aepfle.de \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.