[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH RFC 2/4] xl: add support for channels



On Wed, Jun 11, 2014 at 09:24:27PM +0100, David Scott wrote:
> This adds support for channel declarations of the form:
> 
>   channel = [ "name=...,type=...[,path=...][,backend=...]" ]
> 
> where 'name' is a label to identify the channel to the frontend.
> 
> If 'type = none' then the channel is connected to /dev/null
> If 'type = pty' then the channel is connected to a pty in the
>   backend domain
> If 'type = path' then data is read from the channel and written
>   to the file given by 'path = ...' in the backend domain.
> If 'type = socket' then the channel is connected to a Unix domain
>   socket given by 'path = ...' in the backend domain.
> 
> Signed-off-by: David Scott <dave.scott@xxxxxxxxxx>
> ---
>  tools/libxl/xl_cmdimpl.c |   62 
> +++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 61 insertions(+), 1 deletion(-)
> 

You also need to document this new config option in manpage.

And possibly the spec of defining channel should be documented too.

> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 5195914..2657b5d 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -736,7 +736,7 @@ static void parse_config_data(const char *config_source,
>      long l;
>      XLU_Config *config;
>      XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *vtpms;
> -    XLU_ConfigList *ioports, *irqs, *iomem;
> +    XLU_ConfigList *channels, *ioports, *irqs, *iomem;
>      int num_ioports, num_irqs, num_iomem;
>      int pci_power_mgmt = 0;
>      int pci_msitranslate = 0;
> @@ -1289,6 +1289,66 @@ static void parse_config_data(const char 
> *config_source,
>          }
>      }
>  
> +    if (!xlu_cfg_get_list (config, "channel", &channels, 0, 0)) {
> +        d_config->num_channels = 0;
> +        d_config->channels = NULL;
> +        while ((buf = xlu_cfg_get_listitem (channels, 
> d_config->num_channels)) != NULL) {

Line too long.

> +            libxl_device_channel *channel;
> +            char *buf2 = strdup(buf);
> +            char *p, *p2;
> +            d_config->channels = (libxl_device_channel *) 
> realloc(d_config->channels, sizeof (libxl_device_channel) * 
> (d_config->num_channels + 1));

Ditto.

And please use xrealloc instead, which handles allocation failure for you.

Wei.

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.