diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index c543dab6ad..417a8a2737 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -125,7 +125,10 @@
The mode
attribute must be specified, and is either
"emulate" (let the hypervisor generate all values), "host" (copy
all of Block 0 and Block 1, except for the UUID, from the host's
- SMBIOS values), or "sysinfo" (use the values in
+ SMBIOS values;
+ the
+ virConnectGetSysinfo
call can be
+ used to see what values are copied), or "sysinfo" (use the values in
the sysinfo element). If not
specified, the hypervisor default is used.
Since 0.8.7
diff --git a/src/libvirt.c b/src/libvirt.c
index c65b1e5691..479a9b5aa6 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -776,7 +776,7 @@ virRegisterStateDriver(virStateDriverPtr driver)
/**
* virStateInitialize:
- * @privileged: set to 1 if running with root priviledge, 0 otherwise
+ * @privileged: set to 1 if running with root privilege, 0 otherwise
*
* Initialize all virtualization drivers.
*
@@ -1593,6 +1593,46 @@ error:
return NULL;
}
+/**
+ * virConnectGetSysinfo:
+ * @conn: pointer to a hypervisor connection
+ * @flags: callers should always pass 0
+ *
+ * This returns the XML description of the sysinfo details for the
+ * host on which the hypervisor is running, in the same format as the
+ * element of a domain XML. This information is generally
+ * available only for hypervisors running with root privileges.
+ *
+ * Returns the XML string which must be freed by the caller, or
+ * NULL if there was an error.
+ */
+char *
+virConnectGetSysinfo (virConnectPtr conn, unsigned int flags)
+{
+ DEBUG("conn=%p", conn);
+
+ virResetLastError();
+
+ if (!VIR_IS_CONNECT(conn)) {
+ virLibConnError(VIR_ERR_INVALID_CONN, __FUNCTION__);
+ virDispatchError(NULL);
+ return NULL;
+ }
+
+ if (conn->driver->getSysinfo) {
+ char *ret = conn->driver->getSysinfo (conn, flags);
+ if (!ret)
+ goto error;
+ return ret;
+ }
+
+ virLibConnError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+ virDispatchError(conn);
+ return NULL;
+}
+
/**
* virConnectGetMaxVcpus:
* @conn: pointer to the hypervisor connection