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

Re: [Xen-devel] [PATCH V3] libxl: write IO ABI for disk frontends



On Thu, 2013-04-25 at 22:36 +0100, Wei Liu wrote:
> @@ -2156,6 +2166,24 @@ static void device_disk_add(libxl__egc *egc, uint32_t 
> domid,
>          flexarray_append(front, "device-type");
>          flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk");
>  
> +        /*
> +         * Old PV kernel disk frontends before 2.6.26 rely on tool stack to
> +         * write disk native protocol to frontend node. Xend does this, port
> +         * this behaviour to xl.
> +         *
> +         * New kernels write this node themselves. In that case it just
> +         * overwrites an existing node which is OK.
> +         */
> +        if (type == LIBXL_DOMAIN_TYPE_PV) {
> +            protocol = xc_domain_get_native_protocol(ctx->xch, domid);

You can declare protocol here instead of globally in the function. The =
NULL is also redundant.

> +            if (protocol) {
> +                strncpy(p, protocol, strlen(protocol));
> +                p[strlen(protocol)] = 0;
> +                flexarray_append(front, "protocol");
> +                flexarray_append(front, p);

GCSPRINTF would be the right way to do this, but actually you can pass
protocol directly to flexarray_append, that is fine since the flexarray
never frees the values which it contains so they either need to be gc'd,
string constants or managed manually.

Ian.


_______________________________________________
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®.