* libvirt.c: Main interfaces for the libvirt library to handle virtualization
* domains from a process running in domain 0
*
- * Copyright (C) 2005-2006, 2008-2010 Red Hat, Inc.
+ * Copyright (C) 2005-2006, 2008-2011 Red Hat, Inc.
*
* See COPYING.LIB for the License of this software
*
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
+/* Helper macro to print debugging information about a domain DOM,
+ * followed by a literal string FMT and any other printf arguments.
+ */
+#define VIR_DOMAIN_DEBUG(dom, fmt, ...) \
+ char _uuidstr[VIR_UUID_STRING_BUFLEN]; \
+ const char *_domname = NULL; \
+ \
+ if (!VIR_IS_DOMAIN(dom)) { \
+ memset(_uuidstr, 0, sizeof(_uuidstr)); \
+ } else { \
+ virUUIDFormat((dom)->uuid, _uuidstr); \
+ _domname = (dom)->name; \
+ } \
+ \
+ DEBUG("dom=%p, (VM: name=%s, uuid=%s), " fmt, \
+ dom, NULLSTR(_domname), _uuidstr, __VA_ARGS__)
+
+#define VIR_DOMAIN_DEBUG0(dom) VIR_DOMAIN_DEBUG(dom, "%s", "")
/**
* virInitialize:
virConnectPtr
virDomainGetConnect (virDomainPtr dom)
{
- DEBUG("dom=%p", dom);
+ VIR_DOMAIN_DEBUG0(dom);
virResetLastError();
virDomainPtr
virDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
{
- DEBUG("conn=%p, uuid=%s", conn, uuid);
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(uuid, uuidstr);
+
+ DEBUG("conn=%p, uuid=%s", conn, uuidstr);
virResetLastError();
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
int
virDomainFree(virDomainPtr domain)
{
- DEBUG("domain=%p", domain);
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
return(-1);
}
virMutexLock(&domain->conn->lock);
- DEBUG("domain=%p refs=%d", domain, domain->refs);
+ VIR_DOMAIN_DEBUG(domain, "refs=%d", domain->refs);
domain->refs++;
virMutexUnlock(&domain->conn->lock);
return 0;
virDomainSuspend(virDomainPtr domain)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
virDomainResume(virDomainPtr domain)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
{
char filepath[4096];
virConnectPtr conn;
- DEBUG("domain=%p, to=%s", domain, to);
+
+ VIR_DOMAIN_DEBUG(domain, "to=%s", to);
virResetLastError();
{
char filepath[4096];
virConnectPtr conn;
- DEBUG("domain=%p, to=%s, flags=%d", domain, to, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "to=%s, flags=%d", to, flags);
virResetLastError();
virDomainShutdown(virDomainPtr domain)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
virDomainReboot(virDomainPtr domain, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, flags=%u", domain, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "flags=%u", flags);
virResetLastError();
int
virDomainGetUUID(virDomainPtr domain, unsigned char *uuid)
{
- DEBUG("domain=%p, uuid=%p", domain, uuid);
+ VIR_DOMAIN_DEBUG(domain, "uuid=%p", uuid);
virResetLastError();
virDomainGetUUIDString(virDomainPtr domain, char *buf)
{
unsigned char uuid[VIR_UUID_BUFLEN];
- DEBUG("domain=%p, buf=%p", domain, buf);
+
+ VIR_DOMAIN_DEBUG(domain, "buf=%p", buf);
virResetLastError();
unsigned int
virDomainGetID(virDomainPtr domain)
{
- DEBUG("domain=%p", domain);
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
virDomainGetOSType(virDomainPtr domain)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
virDomainGetMaxMemory(virDomainPtr domain)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
virDomainSetMaxMemory(virDomainPtr domain, unsigned long memory)
{
virConnectPtr conn;
- DEBUG("domain=%p, memory=%lu", domain, memory);
+
+ VIR_DOMAIN_DEBUG(domain, "memory=%lu", memory);
virResetLastError();
virDomainSetMemory(virDomainPtr domain, unsigned long memory)
{
virConnectPtr conn;
- DEBUG("domain=%p, memory=%lu", domain, memory);
+
+ VIR_DOMAIN_DEBUG(domain, "memory=%lu", memory);
virResetLastError();
int nparams, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, params=%p, nparams=%d, flags=%u", domain, params, nparams, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u",
+ params, nparams, flags);
virResetLastError();
int *nparams, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, params=%p, nparams=%d, flags=%u", domain, params, (nparams)?*nparams:-1, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u",
+ params, (nparams) ? *nparams : -1, flags);
virResetLastError();
virDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
{
virConnectPtr conn;
- DEBUG("domain=%p, info=%p", domain, info);
+
+ VIR_DOMAIN_DEBUG(domain, "info=%p", info);
virResetLastError();
virDomainGetXMLDesc(virDomainPtr domain, int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, flags=%d", domain, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "flags=%d", flags);
virResetLastError();
unsigned long bandwidth)
{
virDomainPtr ddomain = NULL;
- DEBUG("domain=%p, dconn=%p, flags=%lu, dname=%s, uri=%s, bandwidth=%lu",
- domain, dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth);
+
+ VIR_DOMAIN_DEBUG(domain, "dconn=%p, flags=%lu, dname=%s, uri=%s, bandwidth=%lu",
+ dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth);
virResetLastError();
const char *dname,
unsigned long bandwidth)
{
- DEBUG("domain=%p, duri=%p, flags=%lu, dname=%s, bandwidth=%lu",
- domain, NULLSTR(duri), flags, NULLSTR(dname), bandwidth);
+ VIR_DOMAIN_DEBUG(domain, "duri=%p, flags=%lu, dname=%s, bandwidth=%lu",
+ NULLSTR(duri), flags, NULLSTR(dname), bandwidth);
virResetLastError();
unsigned long bandwidth)
{
virConnectPtr conn;
- VIR_DEBUG("domain=%p, cookie=%p, cookielen=%d, uri=%s, flags=%lu, "
- "dname=%s, bandwidth=%lu", domain, cookie, cookielen, uri, flags,
- NULLSTR(dname), bandwidth);
+
+ VIR_DOMAIN_DEBUG(domain, "cookie=%p, cookielen=%d, uri=%s, flags=%lu, "
+ "dname=%s, bandwidth=%lu", cookie, cookielen, uri, flags,
+ NULLSTR(dname), bandwidth);
virResetLastError();
{
virConnectPtr conn;
char *schedtype;
- DEBUG("domain=%p, nparams=%p", domain, nparams);
+
+ VIR_DOMAIN_DEBUG(domain, "nparams=%p", nparams);
virResetLastError();
virSchedParameterPtr params, int *nparams)
{
virConnectPtr conn;
- DEBUG("domain=%p, params=%p, nparams=%p", domain, params, nparams);
+
+ VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%p", params, nparams);
virResetLastError();
virSchedParameterPtr params, int nparams)
{
virConnectPtr conn;
- DEBUG("domain=%p, params=%p, nparams=%d", domain, params, nparams);
+
+ VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d", params, nparams);
virResetLastError();
{
virConnectPtr conn;
struct _virDomainBlockStats stats2 = { -1, -1, -1, -1, -1 };
- DEBUG("domain=%p, path=%s, stats=%p, size=%zi", dom, path, stats, size);
+
+ VIR_DOMAIN_DEBUG(dom, "path=%s, stats=%p, size=%zi", path, stats, size);
virResetLastError();
virConnectPtr conn;
struct _virDomainInterfaceStats stats2 = { -1, -1, -1, -1,
-1, -1, -1, -1 };
- DEBUG("domain=%p, path=%s, stats=%p, size=%zi", dom, path, stats, size);
+
+ VIR_DOMAIN_DEBUG(dom, "path=%s, stats=%p, size=%zi",
+ path, stats, size);
virResetLastError();
{
virConnectPtr conn;
unsigned long nr_stats_ret = 0;
- DEBUG("domain=%p, stats=%p, nr_stats=%u", dom, stats, nr_stats);
+
+ VIR_DOMAIN_DEBUG(dom, "stats=%p, nr_stats=%u", stats, nr_stats);
if (flags != 0) {
virLibDomainError (dom, VIR_ERR_INVALID_ARG,
unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, path=%s, offset=%lld, size=%zi, buffer=%p",
- dom, path, offset, size, buffer);
+
+ VIR_DOMAIN_DEBUG(dom, "path=%s, offset=%lld, size=%zi, buffer=%p",
+ path, offset, size, buffer);
virResetLastError();
unsigned int flags)
{
virConnectPtr conn;
- DEBUG ("domain=%p, start=%lld, size=%zi, buffer=%p, flags=%d",
- dom, start, size, buffer, flags);
+
+ VIR_DOMAIN_DEBUG(dom, "start=%lld, size=%zi, buffer=%p, flags=%d",
+ start, size, buffer, flags);
virResetLastError();
virDomainGetBlockInfo(virDomainPtr domain, const char *path, virDomainBlockInfoPtr info, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, info=%p flags=%u", domain, info, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "info=%p flags=%u", info, flags);
virResetLastError();
int
virDomainUndefine(virDomainPtr domain) {
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
int
virDomainCreate(virDomainPtr domain) {
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
int
virDomainCreateWithFlags(virDomainPtr domain, unsigned int flags) {
virConnectPtr conn;
- DEBUG("domain=%p, flags=%d", domain, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "flags=%d", flags);
virResetLastError();
int *autostart)
{
virConnectPtr conn;
- DEBUG("domain=%p, autostart=%p", domain, autostart);
+
+ VIR_DOMAIN_DEBUG(domain, "autostart=%p", autostart);
virResetLastError();
int autostart)
{
virConnectPtr conn;
- DEBUG("domain=%p, autostart=%d", domain, autostart);
+
+ VIR_DOMAIN_DEBUG(domain, "autostart=%d", autostart);
virResetLastError();
virDomainSetVcpus(virDomainPtr domain, unsigned int nvcpus)
{
virConnectPtr conn;
- DEBUG("domain=%p, nvcpus=%u", domain, nvcpus);
+
+ VIR_DOMAIN_DEBUG(domain, "nvcpus=%u", nvcpus);
virResetLastError();
unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, nvcpus=%u, flags=%u", domain, nvcpus, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "nvcpus=%u, flags=%u", nvcpus, flags);
virResetLastError();
virDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, flags=%u", domain, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "flags=%u", flags);
virResetLastError();
unsigned char *cpumap, int maplen)
{
virConnectPtr conn;
- DEBUG("domain=%p, vcpu=%u, cpumap=%p, maplen=%d", domain, vcpu, cpumap, maplen);
+
+ VIR_DOMAIN_DEBUG(domain, "vcpu=%u, cpumap=%p, maplen=%d",
+ vcpu, cpumap, maplen);
virResetLastError();
unsigned char *cpumaps, int maplen)
{
virConnectPtr conn;
- DEBUG("domain=%p, info=%p, maxinfo=%d, cpumaps=%p, maplen=%d", domain, info, maxinfo, cpumaps, maplen);
+
+ VIR_DOMAIN_DEBUG(domain, "info=%p, maxinfo=%d, cpumaps=%p, maplen=%d",
+ info, maxinfo, cpumaps, maplen);
virResetLastError();
virDomainGetMaxVcpus(virDomainPtr domain)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
virDomainAttachDevice(virDomainPtr domain, const char *xml)
{
virConnectPtr conn;
- DEBUG("domain=%p, xml=%s", domain, xml);
+
+ VIR_DOMAIN_DEBUG(domain, "xml=%s", xml);
virResetLastError();
const char *xml, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, xml=%s, flags=%d", domain, xml, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%d", xml, flags);
virResetLastError();
virDomainDetachDevice(virDomainPtr domain, const char *xml)
{
virConnectPtr conn;
- DEBUG("domain=%p, xml=%s", domain, xml);
+
+ VIR_DOMAIN_DEBUG(domain, "xml=%s", xml);
virResetLastError();
const char *xml, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, xml=%s, flags=%d", domain, xml, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%d", xml, flags);
virResetLastError();
const char *xml, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, xml=%s, flags=%d", domain, xml, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "xml=%s, flags=%d", xml, flags);
virResetLastError();
virNetworkPtr
virNetworkLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
{
- DEBUG("conn=%p, uuid=%s", conn, uuid);
+ char uuidstr[VIR_UUID_STRING_BUFLEN];
+ virUUIDFormat(uuid, uuidstr);
+
+ DEBUG("conn=%p, uuid=%s", conn, uuidstr);
virResetLastError();
*/
int virDomainIsPersistent(virDomainPtr dom)
{
- DEBUG("dom=%p", dom);
+ VIR_DOMAIN_DEBUG0(dom);
virResetLastError();
*/
int virDomainIsUpdated(virDomainPtr dom)
{
- DEBUG("dom=%p", dom);
+ VIR_DOMAIN_DEBUG0(dom);
virResetLastError();
virDomainGetJobInfo(virDomainPtr domain, virDomainJobInfoPtr info)
{
virConnectPtr conn;
- DEBUG("domain=%p, info=%p", domain, info);
+
+ VIR_DOMAIN_DEBUG(domain, "info=%p", info);
virResetLastError();
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
{
virConnectPtr conn;
- DEBUG("domain=%p, downtime=%llu, flags=%u", domain, downtime, flags);
+ VIR_DOMAIN_DEBUG(domain, "downtime=%llu, flags=%u", downtime, flags);
virResetLastError();
void *opaque,
virFreeCallback freecb)
{
- DEBUG("conn=%p dom=%p, eventID=%d, cb=%p, opaque=%p, freecb=%p", conn, dom, eventID, cb, opaque, freecb);
+ VIR_DOMAIN_DEBUG(dom, "conn=%p, eventID=%d, cb=%p, opaque=%p, freecb=%p",
+ conn, eventID, cb, opaque, freecb);
+
virResetLastError();
if (!VIR_IS_CONNECT(conn)) {
{
virConnectPtr conn;
- VIR_DEBUG("dom=%p, flags=%u", dom, flags);
+ VIR_DOMAIN_DEBUG(dom, "flags=%u", flags);
virResetLastError();
{
virConnectPtr conn;
- VIR_DEBUG("dom=%p, flags=%u", dom, flags);
+ VIR_DOMAIN_DEBUG(dom, "flags=%u", flags);
virResetLastError();
{
virConnectPtr conn;
- VIR_DEBUG("dom=%p, flags=%u", dom, flags);
+ VIR_DOMAIN_DEBUG(dom, "flags=%u", flags);
virResetLastError();
{
virConnectPtr conn;
- DEBUG("domain=%p, xmlDesc=%s, flags=%u", domain, xmlDesc, flags);
+ VIR_DOMAIN_DEBUG(domain, "xmlDesc=%s, flags=%u", xmlDesc, flags);
virResetLastError();
virDomainSnapshotNum(virDomainPtr domain, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p", domain);
+
+ VIR_DOMAIN_DEBUG0(domain);
virResetLastError();
{
virConnectPtr conn;
- DEBUG("domain=%p, names=%p, nameslen=%d, flags=%u",
- domain, names, nameslen, flags);
+ VIR_DOMAIN_DEBUG(domain, "names=%p, nameslen=%d, flags=%u",
+ names, nameslen, flags);
virResetLastError();
unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, name=%s, flags=%u", domain, name, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "name=%s, flags=%u", name, flags);
virResetLastError();
virDomainHasCurrentSnapshot(virDomainPtr domain, unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, flags=%u", domain, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "flags=%u", flags);
virResetLastError();
unsigned int flags)
{
virConnectPtr conn;
- DEBUG("domain=%p, flags=%u", domain, flags);
+
+ VIR_DOMAIN_DEBUG(domain, "flags=%u", flags);
virResetLastError();
unsigned int flags)
{
virConnectPtr conn;
- DEBUG("dom=%p devname=%s, st=%p flags=%u", dom, NULLSTR(devname), st, flags);
+
+ VIR_DOMAIN_DEBUG(dom, "devname=%s, st=%p, flags=%u",
+ NULLSTR(devname), st, flags);
virResetLastError();