* src/libvirt.c (virConnectGetSysinfo): New function. * docs/formatdomain.html.in: Mention it. --- Is my cross-page link in formatdomain correct? I didn't see any other examples of XML documentation linking to an API call. docs/formatdomain.html.in | 4 +++- src/libvirt.c | 42 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 43c78fc..dd91de7 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -125,7 +125,9 @@ The <code>mode</code> 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 <a href="libvirt-libvirt.html#virConnectGetSysinfo"> + <code>virConnectGetSysinfo</code></a> call can be + used to see what values are copied), or "sysinfo" (use the values in the <a href="#elementsSysinfo">sysinfo</a> element). If not specified, the hypervisor default is used. <span class="since"> Since 0.8.7</span> diff --git a/src/libvirt.c b/src/libvirt.c index c65b1e5..479a9b5 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. * @@ -1594,6 +1594,46 @@ error: } /** + * 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 + * <sysinfo> 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 * @type: value of the 'type' attribute in the <domain> element -- 1.7.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list