On Fri, 2015-12-11 at 16:47 +0100, Juergen Gross wrote:
> After starting the xenstore domain write the basic data (domid and
> name) to the xenstore.
> 
> Add a new option to init-xenstore-domain to be able to specify the
> domain's name.

Is all this enough to keep "xl list" etc happy?

Do we need to also create a dummy json object like we do for dom0 (init-
xen-dom0)?

> Signed-off-by: Juergen Gross <jgr...@suse.com>
> ---
>  tools/xenstore/init-xenstore-domain.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/xenstore/init-xenstore-domain.c b/tools/xenstore/init-
> xenstore-domain.c
> index eedcf32..2a8a417 100644
> --- a/tools/xenstore/init-xenstore-domain.c
> +++ b/tools/xenstore/init-xenstore-domain.c
> @@ -18,6 +18,7 @@ static char *kernel;
>  static char *ramdisk;
>  static char *flask;
>  static char *param;
> +static char *name = "Xenstore";
>  static int memory;
>  
>  static struct option options[] = {
> @@ -26,6 +27,7 @@ static struct option options[] = {
>       { "flask", 1, NULL, 'f' },
>       { "ramdisk", 1, NULL, 'r' },
>       { "param", 1, NULL, 'p' },
> +     { "name", 1, NULL, 'n' },
>       { NULL, 0, NULL, 0 }
>  };
>  
> @@ -42,7 +44,8 @@ static void usage(void)
>  "  --memory <memory size>     size of the domain in MB, mandatory\n"
>  "  --flask <flask-label>      optional flask label of the domain\n"
>  "  --ramdisk <ramdisk-file>   optional ramdisk file for the domain\n"
> -"  --param <cmdline>          optional additional parameters for the
> domain\n");
> +"  --param <cmdline>          optional additional parameters for the
> domain\n"
> +"  --name <name>              name of the domain (default:
> Xenstore)\n");
>  }
>  
>  static int build(xc_interface *xch)
> @@ -195,6 +198,7 @@ int main(int argc, char** argv)
>       xc_interface *xch;
>       struct xs_handle *xsh;
>       char buf[16];
> +     char path[64];
>       int rv, fd;
>  
>       while ((opt = getopt_long(argc, argv, "", options, NULL)) != -1)
> {
> @@ -214,6 +218,9 @@ int main(int argc, char** argv)
>               case 'p':
>                       param = optarg;
>                       break;
> +             case 'n':
> +                     name = optarg;
> +                     break;
>               }
>       }
>  
> @@ -243,6 +250,10 @@ int main(int argc, char** argv)
>       xsh = xs_open(0);
>       rv = snprintf(buf, 16, "%d", domid);
>       xs_write(xsh, XBT_NULL, "/tool/xenstored/domid", buf, rv);
> +     snprintf(path, 64, "/local/domain/%d/domid", domid);
> +     xs_write(xsh, XBT_NULL, path, buf, rv);
> +     snprintf(path, 64, "/local/domain/%d/name", domid);
> +     xs_write(xsh, XBT_NULL, path, name, strlen(name));
>       xs_daemon_close(xsh);
>  
>       fd = creat("/var/run/xenstored.pid", 0666);

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

Reply via email to