static int domain_create_ring(struct domain *dom)
{
int err, remote_port, ring_ref, rc;
+ char *type, path[PATH_MAX];
err = xs_gather(xs, dom->serialpath,
"ring-ref", "%u", &ring_ref,
} else
dom->use_consolepath = 0;
+ sprintf(path, "%s/type", dom->use_consolepath ? dom->conspath: dom->serialpath);
+ type = xs_read(xs, XBT_NULL, path, NULL);
+ if (type && strcmp(type, "xenconsoled") != 0) {
+ free(type);
+ return 0;
+ }
+ free(type);
+
if ((ring_ref == dom->ring_ref) && (remote_port == dom->remote_port))
goto out;
else:
to_store[n] = str(v)
+ # Figure out if we need to tell xenconsoled to ignore this guest's
+ # console - device model will handle console if it is running
+ constype = "ioemu"
+ if 'device_model' not in self.info['platform']:
+ constype = "xenconsoled"
+
f('console/port', self.console_port)
f('console/ring-ref', self.console_mfn)
+ f('console/type', constype)
f('store/port', self.store_port)
f('store/ring-ref', self.store_mfn)