diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index 691a940bd3..c4e73b7344 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -85,8 +85,7 @@ xenDaemonFormatSxprNet(virConnectPtr conn ATTRIBUTE_UNUSED, int xendConfigVersion, int isAttach); static int -xenDaemonFormatSxprOnePCI(virConnectPtr conn, - virDomainHostdevDefPtr def, +xenDaemonFormatSxprOnePCI(virDomainHostdevDefPtr def, virBufferPtr buf, int detach); @@ -98,12 +97,12 @@ virDomainXMLDevID(virDomainPtr domain, int ref_len); #endif -#define virXendError(conn, code, ...) \ - virReportErrorHelper(conn, VIR_FROM_XEND, code, __FILE__, \ +#define virXendError(code, ...) \ + virReportErrorHelper(NULL, VIR_FROM_XEND, code, __FILE__, \ __FUNCTION__, __LINE__, __VA_ARGS__) -#define virXendErrorInt(conn, code, ival) \ - virXendError(conn, code, "%d", ival) +#define virXendErrorInt(code, ival) \ + virXendError(code, "%d", ival) /** * do_connect: @@ -123,7 +122,7 @@ do_connect(virConnectPtr xend) s = socket(priv->addrfamily, SOCK_STREAM, priv->addrprotocol); if (s == -1) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to create a socket")); return -1; } @@ -146,7 +145,7 @@ do_connect(virConnectPtr xend) * error */ if (xenHavePrivilege()) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to connect to xend")); } } @@ -167,7 +166,7 @@ do_connect(virConnectPtr xend) * Returns the number of bytes exchanged, or -1 in case of error */ static size_t -wr_sync(virConnectPtr xend, int fd, void *buffer, size_t size, int do_read) +wr_sync(int fd, void *buffer, size_t size, int do_read) { size_t offset = 0; @@ -193,10 +192,10 @@ wr_sync(virConnectPtr xend, int fd, void *buffer, size_t size, int do_read) /* unrecoverable error */ if (len == -1) { if (do_read) - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to read from Xen Daemon")); else - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to write to Xen Daemon")); return (-1); @@ -210,7 +209,6 @@ wr_sync(virConnectPtr xend, int fd, void *buffer, size_t size, int do_read) /** * sread: - * @xend: the xend connection object * @fd: the file descriptor * @buffer: the I/O buffer * @size: the size of the I/O @@ -220,14 +218,13 @@ wr_sync(virConnectPtr xend, int fd, void *buffer, size_t size, int do_read) * Returns the number of bytes read, or -1 in case of error */ static ssize_t -sread(virConnectPtr xend, int fd, void *buffer, size_t size) +sread(int fd, void *buffer, size_t size) { - return wr_sync(xend, fd, buffer, size, 1); + return wr_sync(fd, buffer, size, 1); } /** * swrite: - * @xend: the xend connection object * @fd: the file descriptor * @buffer: the I/O buffer * @size: the size of the I/O @@ -237,14 +234,13 @@ sread(virConnectPtr xend, int fd, void *buffer, size_t size) * Returns the number of bytes written, or -1 in case of error */ static ssize_t -swrite(virConnectPtr xend, int fd, const void *buffer, size_t size) +swrite(int fd, const void *buffer, size_t size) { - return wr_sync(xend, fd, (void *) buffer, size, 0); + return wr_sync(fd, (void *) buffer, size, 0); } /** * swrites: - * @xend: the xend connection object * @fd: the file descriptor * @string: the string to write * @@ -253,14 +249,13 @@ swrite(virConnectPtr xend, int fd, const void *buffer, size_t size) * Returns the number of bytes written, or -1 in case of error */ static ssize_t -swrites(virConnectPtr xend, int fd, const char *string) +swrites(int fd, const char *string) { - return swrite(xend, fd, string, strlen(string)); + return swrite(fd, string, strlen(string)); } /** * sreads: - * @xend: the xend connection object * @fd: the file descriptor * @buffer: the I/O buffer * @n_buffer: the size of the I/O buffer @@ -270,7 +265,7 @@ swrites(virConnectPtr xend, int fd, const char *string) * Returns the number of bytes read, or -1 in case of error */ static ssize_t -sreads(virConnectPtr xend, int fd, char *buffer, size_t n_buffer) +sreads(int fd, char *buffer, size_t n_buffer) { size_t offset; @@ -280,7 +275,7 @@ sreads(virConnectPtr xend, int fd, char *buffer, size_t n_buffer) for (offset = 0; offset < (n_buffer - 1); offset++) { ssize_t ret; - ret = sread(xend, fd, buffer + offset, 1); + ret = sread(fd, buffer + offset, 1); if (ret == 0) break; else if (ret == -1) @@ -305,7 +300,6 @@ istartswith(const char *haystack, const char *needle) /** * xend_req: - * @xend: the xend connection object * @fd: the file descriptor * @content: the buffer to store the content * @n_content: the size of the buffer @@ -315,13 +309,13 @@ istartswith(const char *haystack, const char *needle) * Returns the HTTP return code. */ static int -xend_req(virConnectPtr xend, int fd, char *content, size_t n_content) +xend_req(int fd, char *content, size_t n_content) { char buffer[4096]; int content_length = -1; int retcode = 0; - while (sreads(xend, fd, buffer, sizeof(buffer)) > 0) { + while (sreads(fd, buffer, sizeof(buffer)) > 0) { if (STREQ(buffer, "\r\n")) break; @@ -337,7 +331,7 @@ xend_req(virConnectPtr xend, int fd, char *content, size_t n_content) if ((unsigned int) content_length > (n_content + 1)) content_length = n_content - 1; - ret = sread(xend, fd, content, content_length); + ret = sread(fd, content, content_length); if (ret < 0) return -1; @@ -370,21 +364,21 @@ xend_get(virConnectPtr xend, const char *path, if (s == -1) return s; - swrites(xend, s, "GET "); - swrites(xend, s, path); - swrites(xend, s, " HTTP/1.1\r\n"); + swrites(s, "GET "); + swrites(s, path); + swrites(s, " HTTP/1.1\r\n"); - swrites(xend, s, + swrites(s, "Host: localhost:8000\r\n" "Accept-Encoding: identity\r\n" "Content-Type: application/x-www-form-urlencoded\r\n" "\r\n"); - ret = xend_req(xend, s, content, n_content); + ret = xend_req(s, content, n_content); close(s); if (((ret < 0) || (ret >= 300)) && ((ret != 404) || (!STRPREFIX(path, "/xend/domain/")))) { - virXendError(xend, VIR_ERR_GET_FAILED, + virXendError(VIR_ERR_GET_FAILED, _("%d status from xen daemon: %s:%s"), ret, path, content); } @@ -417,28 +411,28 @@ xend_post(virConnectPtr xend, const char *path, const char *ops, if (s == -1) return s; - swrites(xend, s, "POST "); - swrites(xend, s, path); - swrites(xend, s, " HTTP/1.1\r\n"); + swrites(s, "POST "); + swrites(s, path); + swrites(s, " HTTP/1.1\r\n"); - swrites(xend, s, + swrites(s, "Host: localhost:8000\r\n" "Accept-Encoding: identity\r\n" "Content-Type: application/x-www-form-urlencoded\r\n" "Content-Length: "); snprintf(buffer, sizeof(buffer), "%d", (int) strlen(ops)); - swrites(xend ,s, buffer); - swrites(xend, s, "\r\n\r\n"); - swrites(xend, s, ops); + swrites(s, buffer); + swrites(s, "\r\n\r\n"); + swrites(s, ops); - ret = xend_req(xend, s, content, n_content); + ret = xend_req(s, content, n_content); close(s); if ((ret < 0) || (ret >= 300)) { - virXendError(xend, VIR_ERR_POST_FAILED, + virXendError(VIR_ERR_POST_FAILED, _("xend_post: error from xen daemon: %s"), content); } else if ((ret == 202) && (strstr(content, "failed") != NULL)) { - virXendError(xend, VIR_ERR_POST_FAILED, + virXendError(VIR_ERR_POST_FAILED, _("xend_post: error from xen daemon: %s"), content); ret = -1; } else if (((ret >= 200) && (ret <= 202)) && (strstr(content, "xend.err") != NULL)) { @@ -446,7 +440,7 @@ xend_post(virConnectPtr xend, const char *path, const char *ops, * which returns a success code, but the word 'xend.err' * in body to indicate error :-( */ - virXendError(xend, VIR_ERR_POST_FAILED, + virXendError(VIR_ERR_POST_FAILED, _("xend_post: error from xen daemon: %s"), content); ret = -1; } @@ -458,7 +452,6 @@ xend_post(virConnectPtr xend, const char *path, const char *ops, /** * http2unix: - * @xend: the xend connection object * @ret: the http return code * * Convert the HTTP return code to 0/-1 and set errno if needed @@ -466,7 +459,7 @@ xend_post(virConnectPtr xend, const char *path, const char *ops, * Return -1 in case of error code 0 otherwise */ static int -http2unix(virConnectPtr xend, int ret) +http2unix(int ret) { switch (ret) { case -1: @@ -482,7 +475,7 @@ http2unix(virConnectPtr xend, int ret) errno = EIO; break; default: - virXendErrorInt(xend, VIR_ERR_HTTP_ERROR, ret); + virXendErrorInt(VIR_ERR_HTTP_ERROR, ret); errno = EINVAL; break; } @@ -531,7 +524,7 @@ xend_op_ext(virConnectPtr xend, const char *path, char *error, } content = virBufferContentAndReset(&buf); - ret = http2unix(xend, xend_post(xend, path, content, error, n_error)); + ret = http2unix(xend_post(xend, path, content, error, n_error)); VIR_FREE(content); return ret; @@ -598,7 +591,7 @@ sexpr_get(virConnectPtr xend, const char *fmt, ...) va_end(ap); ret = xend_get(xend, path, buffer, sizeof(buffer)); - ret = http2unix(xend ,ret); + ret = http2unix(ret); if (ret == -1) return NULL; @@ -807,7 +800,7 @@ xenDaemonOpen_tcp(virConnectPtr conn, const char *host, const char *port) ret = getaddrinfo (host, port, &hints, &res); if (ret != 0) { - virXendError(NULL, VIR_ERR_UNKNOWN_HOST, + virXendError(VIR_ERR_UNKNOWN_HOST, _("unable to resolve hostname '%s': %s"), host, gai_strerror (ret)); return -1; @@ -962,7 +955,7 @@ xenDaemonDomainCreateXML(virConnectPtr xend, const char *sexpr) ptr = urlencode(sexpr); if (ptr == NULL) { /* this should be caught at the interface but ... */ - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to urlencode the create S-Expr")); return (-1); } @@ -1003,18 +996,18 @@ xenDaemonDomainLookupByName_ids(virConnectPtr xend, const char *domname, value = sexpr_node(root, "domain/domid"); if (value == NULL) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing domid")); goto error; } ret = strtol(value, NULL, 0); if ((ret == 0) && (value[0] != '0')) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incorrect domid not numeric")); ret = -1; } else if (uuid != NULL) { if (sexpr_uuid(uuid, root, "domain/uuid") < 0) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing uuid")); } } @@ -1053,7 +1046,7 @@ xenDaemonDomainLookupByID(virConnectPtr xend, name = sexpr_node(root, "domain/name"); if (name == NULL) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing name")); goto error; } @@ -1066,7 +1059,7 @@ xenDaemonDomainLookupByID(virConnectPtr xend, } if (sexpr_uuid(uuid, root, "domain/uuid") < 0) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing uuid")); goto error; } @@ -1090,7 +1083,7 @@ xend_detect_config_version(virConnectPtr conn) { xenUnifiedPrivatePtr priv; if (!VIR_IS_CONNECT(conn)) { - virXendError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__); + virXendError(VIR_ERR_INVALID_CONN, __FUNCTION__); return (-1); } @@ -1123,7 +1116,6 @@ xend_detect_config_version(virConnectPtr conn) { /** * xenDaemonParseSxprOS - * @xend: the xend connection object * @node: the root of the parsed S-Expression * @def: the domain config * @hvm: true or 1 if no contains HVM S-Expression @@ -1134,8 +1126,7 @@ xend_detect_config_version(virConnectPtr conn) { * Returns 0 in case of success and -1 in case of error */ static int -xenDaemonParseSxprOS(virConnectPtr xend, - const struct sexpr *node, +xenDaemonParseSxprOS(const struct sexpr *node, virDomainDefPtr def, int hvm) { @@ -1147,7 +1138,7 @@ xenDaemonParseSxprOS(virConnectPtr xend, goto no_memory; if (def->os.loader == NULL) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing HVM loader")); return(-1); } @@ -1201,7 +1192,7 @@ xenDaemonParseSxprOS(virConnectPtr xend, if (!hvm && !def->os.kernel && !def->os.bootloader) { - virXendError(xend, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing kernel & bootloader")); return -1; } @@ -1215,8 +1206,7 @@ no_memory: int -xend_parse_sexp_desc_char(virConnectPtr conn, - virBufferPtr buf, +xend_parse_sexp_desc_char(virBufferPtr buf, const char *devtype, int portNum, const char *value, @@ -1265,7 +1255,7 @@ xend_parse_sexp_desc_char(virConnectPtr conn, type = "unix"; value += sizeof("unix:")-1; } else { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown char device type")); return -1; } @@ -1299,7 +1289,7 @@ xend_parse_sexp_desc_char(virConnectPtr conn, const char *mode, *protocol; if (offset == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed char device string")); goto error; } @@ -1339,7 +1329,7 @@ xend_parse_sexp_desc_char(virConnectPtr conn, const char *offset2, *offset3; if (offset == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed char device string")); goto error; } @@ -1355,7 +1345,7 @@ xend_parse_sexp_desc_char(virConnectPtr conn, offset3 = strchr(offset2, ':'); if (offset3 == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed char device string")); goto error; } @@ -1435,8 +1425,7 @@ error: } virDomainChrDefPtr -xenDaemonParseSxprChar(virConnectPtr conn, - const char *value, +xenDaemonParseSxprChar(const char *value, const char *tty) { const char *prefix; @@ -1463,7 +1452,7 @@ xenDaemonParseSxprChar(virConnectPtr conn, def->data.tcp.protocol = VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET; } else { if ((def->type = virDomainChrTypeFromString(prefix)) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unknown chr device type '%s'"), prefix); goto error; } @@ -1490,7 +1479,7 @@ xenDaemonParseSxprChar(virConnectPtr conn, const char *offset2; if (offset == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed char device string")); goto error; } @@ -1518,7 +1507,7 @@ xenDaemonParseSxprChar(virConnectPtr conn, const char *offset2, *offset3; if (offset == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed char device string")); goto error; } @@ -1534,7 +1523,7 @@ xenDaemonParseSxprChar(virConnectPtr conn, offset3 = strchr(offset2, ':'); if (offset3 == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("malformed char device string")); goto error; } @@ -1589,8 +1578,7 @@ error: * Returns 0 if successful or -1 if failed. */ static int -xenDaemonParseSxprDisks(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonParseSxprDisks(virDomainDefPtr def, const struct sexpr *root, int hvm, int xendConfigVersion) @@ -1625,7 +1613,7 @@ xenDaemonParseSxprDisks(virConnectPtr conn, goto no_memory; if (dst == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, vbd has no dev")); goto error; } @@ -1636,7 +1624,7 @@ xenDaemonParseSxprDisks(virConnectPtr conn, if (!offset || !hvm || STRNEQ(offset, ":cdrom")) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, vbd has no src")); goto error; } @@ -1645,7 +1633,7 @@ xenDaemonParseSxprDisks(virConnectPtr conn, if (src != NULL) { offset = strchr(src, ':'); if (!offset) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot parse vbd filename, missing driver name")); goto error; } @@ -1654,7 +1642,7 @@ xenDaemonParseSxprDisks(virConnectPtr conn, goto no_memory; if (virStrncpy(disk->driverName, src, offset-src, (offset-src)+1) == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("Driver name %s too big for destination"), src); goto error; @@ -1665,7 +1653,7 @@ xenDaemonParseSxprDisks(virConnectPtr conn, if (STREQ (disk->driverName, "tap")) { offset = strchr(src, ':'); if (!offset) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot parse vbd filename, missing driver type")); goto error; } @@ -1674,7 +1662,7 @@ xenDaemonParseSxprDisks(virConnectPtr conn, goto no_memory; if (virStrncpy(disk->driverType, src, offset-src, (offset-src)+1) == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("Driver type %s too big for destination"), src); goto error; @@ -1760,8 +1748,7 @@ error: static int -xenDaemonParseSxprNets(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonParseSxprNets(virDomainDefPtr def, const struct sexpr *root) { virDomainNetDefPtr net = NULL; @@ -1820,7 +1807,7 @@ xenDaemonParseSxprNets(virConnectPtr conn, tmp = sexpr_node(node, "device/vif/mac"); if (tmp) { if (virParseMacAddr(tmp, net->mac) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("malformed mac address '%s'"), tmp); goto cleanup; } @@ -1854,8 +1841,7 @@ cleanup: int -xenDaemonParseSxprSound(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonParseSxprSound(virDomainDefPtr def, const char *str) { if (STREQ(str, "all")) { @@ -1899,7 +1885,7 @@ xenDaemonParseSxprSound(virConnectPtr conn, else len = strlen(offset); if (virStrncpy(model, offset, len, sizeof(model)) == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("Sound model %s too big for destination"), offset); goto error; @@ -2098,7 +2084,7 @@ xenDaemonParseSxprGraphicsNew(virConnectPtr conn, goto no_memory; if ((graphics->type = virDomainGraphicsTypeFromString(tmp)) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unknown graphics type '%s'"), tmp); goto error; } @@ -2171,7 +2157,6 @@ error: /** * xenDaemonParseSxprPCI - * @conn: connection * @root: root sexpr * * This parses out block devices from the domain sexpr @@ -2179,8 +2164,7 @@ error: * Returns 0 if successful or -1 if failed. */ static int -xenDaemonParseSxprPCI(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonParseSxprPCI(virDomainDefPtr def, const struct sexpr *root) { const struct sexpr *cur, *tmp = NULL, *node; @@ -2225,43 +2209,43 @@ xenDaemonParseSxprPCI(virConnectPtr conn, continue; if (!(domain = sexpr_node(node, "dev/domain"))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing PCI domain")); goto error; } if (!(bus = sexpr_node(node, "dev/bus"))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing PCI bus")); goto error; } if (!(slot = sexpr_node(node, "dev/slot"))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing PCI slot")); goto error; } if (!(func = sexpr_node(node, "dev/func"))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing PCI func")); goto error; } if (virStrToLong_i(domain, NULL, 0, &domainID) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("cannot parse PCI domain '%s'"), domain); goto error; } if (virStrToLong_i(bus, NULL, 0, &busID) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("cannot parse PCI bus '%s'"), bus); goto error; } if (virStrToLong_i(slot, NULL, 0, &slotID) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("cannot parse PCI slot '%s'"), slot); goto error; } if (virStrToLong_i(func, NULL, 0, &funcID) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("cannot parse PCI func '%s'"), func); goto error; } @@ -2327,7 +2311,7 @@ xenDaemonParseSxpr(virConnectPtr conn, tmp = sexpr_node(root, "domain/domid"); if (tmp == NULL && xendConfigVersion < 3) { /* Old XenD, domid was mandatory */ - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing id")); goto error; } @@ -2340,14 +2324,14 @@ xenDaemonParseSxpr(virConnectPtr conn, if (sexpr_node_copy(root, "domain/name", &def->name) < 0) goto no_memory; if (def->name == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing name")); goto error; } tmp = sexpr_node(root, "domain/uuid"); if (tmp == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing name")); goto error; } @@ -2378,7 +2362,7 @@ xenDaemonParseSxpr(virConnectPtr conn, if (def->id != 0) { if (sexpr_lookup(root, "domain/image")) { - if (xenDaemonParseSxprOS(conn, root, def, hvm) < 0) + if (xenDaemonParseSxprOS(root, def, hvm) < 0) goto error; } } @@ -2398,7 +2382,7 @@ xenDaemonParseSxpr(virConnectPtr conn, if (virDomainCpuSetParse(&cpus, 0, def->cpumask, def->cpumasklen) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("invalid CPU mask %s"), cpus); goto error; } @@ -2409,7 +2393,7 @@ xenDaemonParseSxpr(virConnectPtr conn, tmp = sexpr_node(root, "domain/on_poweroff"); if (tmp != NULL) { if ((def->onPoweroff = virDomainLifecycleTypeFromString(tmp)) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unknown lifecycle type %s"), tmp); goto error; } @@ -2419,7 +2403,7 @@ xenDaemonParseSxpr(virConnectPtr conn, tmp = sexpr_node(root, "domain/on_reboot"); if (tmp != NULL) { if ((def->onReboot = virDomainLifecycleTypeFromString(tmp)) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unknown lifecycle type %s"), tmp); goto error; } @@ -2429,7 +2413,7 @@ xenDaemonParseSxpr(virConnectPtr conn, tmp = sexpr_node(root, "domain/on_crash"); if (tmp != NULL) { if ((def->onCrash = virDomainLifecycleTypeFromString(tmp)) < 0) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unknown lifecycle type %s"), tmp); goto error; } @@ -2461,13 +2445,13 @@ xenDaemonParseSxpr(virConnectPtr conn, goto no_memory; /* append block devices */ - if (xenDaemonParseSxprDisks(conn, def, root, hvm, xendConfigVersion) < 0) + if (xenDaemonParseSxprDisks(def, root, hvm, xendConfigVersion) < 0) goto error; - if (xenDaemonParseSxprNets(conn, def, root) < 0) + if (xenDaemonParseSxprNets(def, root) < 0) goto error; - if (xenDaemonParseSxprPCI(conn, def, root) < 0) + if (xenDaemonParseSxprPCI(def, root) < 0) goto error; /* New style graphics device config */ @@ -2562,7 +2546,7 @@ xenDaemonParseSxpr(virConnectPtr conn, tmp = sexpr_node(root, "domain/image/hvm/serial"); if (tmp && STRNEQ(tmp, "none")) { virDomainChrDefPtr chr; - if ((chr = xenDaemonParseSxprChar(conn, tmp, tty)) == NULL) + if ((chr = xenDaemonParseSxprChar(tmp, tty)) == NULL) goto error; if (VIR_REALLOC_N(def->serials, def->nserials+1) < 0) { virDomainChrDefFree(chr); @@ -2575,7 +2559,7 @@ xenDaemonParseSxpr(virConnectPtr conn, if (tmp && STRNEQ(tmp, "none")) { virDomainChrDefPtr chr; /* XXX does XenD stuff parallel port tty info into xenstore somewhere ? */ - if ((chr = xenDaemonParseSxprChar(conn, tmp, NULL)) == NULL) + if ((chr = xenDaemonParseSxprChar(tmp, NULL)) == NULL) goto error; if (VIR_REALLOC_N(def->parallels, def->nparallels+1) < 0) { virDomainChrDefFree(chr); @@ -2586,7 +2570,7 @@ xenDaemonParseSxpr(virConnectPtr conn, } } else { /* Fake a paravirt console, since that's not in the sexpr */ - if (!(def->console = xenDaemonParseSxprChar(conn, "pty", tty))) + if (!(def->console = xenDaemonParseSxprChar("pty", tty))) goto error; def->console->targetType = VIR_DOMAIN_CHR_TARGET_TYPE_CONSOLE; } @@ -2597,7 +2581,7 @@ xenDaemonParseSxpr(virConnectPtr conn, if (hvm && (tmp = sexpr_node(root, "domain/image/hvm/soundhw")) != NULL && *tmp) { - if (xenDaemonParseSxprSound(conn, def, tmp) < 0) + if (xenDaemonParseSxprSound(def, tmp) < 0) goto error; } @@ -2749,8 +2733,7 @@ sexpr_to_xend_node_info(const struct sexpr *root, virNodeInfoPtr info) * Returns 0 in case of success, -1 in case of error */ static int -sexpr_to_xend_topology(virConnectPtr conn, - const struct sexpr *root, +sexpr_to_xend_topology(const struct sexpr *root, virCapsPtr caps) { const char *nodeToCpu; @@ -2815,7 +2798,7 @@ sexpr_to_xend_topology(virConnectPtr conn, return (0); parse_error: - virXendError(conn, VIR_ERR_XEN_CALL, "%s", _("topology syntax error")); + virXendError(VIR_ERR_XEN_CALL, "%s", _("topology syntax error")); error: VIR_FREE(cpuNums); VIR_FREE(cpuset); @@ -2878,7 +2861,7 @@ sexpr_to_domain(virConnectPtr conn, const struct sexpr *root) return (ret); error: - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to parse Xend domain information")); if (ret != NULL) virUnrefDomain(ret); @@ -2922,7 +2905,7 @@ xenDaemonOpen(virConnectPtr conn, if (conn->uri->scheme == NULL) { /* It should be a file access */ if (conn->uri->path == NULL) { - virXendError(NULL, VIR_ERR_NO_CONNECT, __FUNCTION__); + virXendError(VIR_ERR_NO_CONNECT, __FUNCTION__); goto failed; } if (xenDaemonOpen_unix(conn, conn->uri->path) < 0 || @@ -2956,7 +2939,7 @@ xenDaemonOpen(virConnectPtr conn, xend_detect_config_version(conn) == -1) goto failed; } else { - virXendError(NULL, VIR_ERR_NO_CONNECT, __FUNCTION__); + virXendError(VIR_ERR_NO_CONNECT, __FUNCTION__); goto failed; } @@ -2998,13 +2981,12 @@ int xenDaemonDomainSuspend(virDomainPtr domain) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3025,13 +3007,12 @@ int xenDaemonDomainResume(virDomainPtr domain) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3053,13 +3034,12 @@ int xenDaemonDomainShutdown(virDomainPtr domain) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3082,13 +3062,12 @@ int xenDaemonDomainReboot(virDomainPtr domain, unsigned int flags ATTRIBUTE_UNUSED) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3113,13 +3092,12 @@ int xenDaemonDomainDestroy(virDomainPtr domain) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3144,8 +3122,7 @@ xenDaemonDomainGetOSType(virDomainPtr domain) xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(NULL); } @@ -3191,13 +3168,12 @@ xenDaemonDomainSave(virDomainPtr domain, const char *filename) { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (filename == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3228,13 +3204,12 @@ xenDaemonDomainCoreDump(virDomainPtr domain, const char *filename, { if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (filename == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } if (domain->id < 0) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, + virXendError(VIR_ERR_OPERATION_INVALID, _("Domain %s isn't running."), domain->name); return(-1); } @@ -3262,7 +3237,7 @@ xenDaemonDomainRestore(virConnectPtr conn, const char *filename) { if ((conn == NULL) || (filename == NULL)) { /* this should be caught at the interface but ... */ - virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } return xend_op(conn, "", "op", "restore", "file", filename, NULL); @@ -3285,8 +3260,7 @@ xenDaemonDomainGetMaxMemory(virDomainPtr domain) xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } @@ -3325,8 +3299,7 @@ xenDaemonDomainSetMaxMemory(virDomainPtr domain, unsigned long memory) xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } @@ -3363,8 +3336,7 @@ xenDaemonDomainSetMemory(virDomainPtr domain, unsigned long memory) xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } @@ -3395,7 +3367,7 @@ xenDaemonDomainFetch(virConnectPtr conn, else root = sexpr_get(conn, "/xend/domain/%d?detail=1", domid); if (root == NULL) { - virXendError (conn, VIR_ERR_XEN_CALL, + virXendError(VIR_ERR_XEN_CALL, "%s", _("xenDaemonDomainFetch failed to" " find this domain")); return (NULL); @@ -3436,8 +3408,7 @@ xenDaemonDomainDumpXML(virDomainPtr domain, int flags, const char *cpus) char *xml; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(NULL); } priv = (xenUnifiedPrivatePtr) domain->conn->privateData; @@ -3480,8 +3451,7 @@ xenDaemonDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info) if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (info == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } @@ -3518,7 +3488,7 @@ xenDaemonLookupByName(virConnectPtr conn, const char *domname) virDomainPtr ret = NULL; if ((conn == NULL) || (domname == NULL)) { - virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(NULL); } @@ -3549,11 +3519,11 @@ xenDaemonNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info) { struct sexpr *root; if (!VIR_IS_CONNECT(conn)) { - virXendError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__); + virXendError(VIR_ERR_INVALID_CONN, __FUNCTION__); return (-1); } if (info == NULL) { - virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -3582,12 +3552,12 @@ xenDaemonNodeGetTopology(virConnectPtr conn, struct sexpr *root; if (!VIR_IS_CONNECT(conn)) { - virXendError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__); + virXendError(VIR_ERR_INVALID_CONN, __FUNCTION__); return (-1); } if (caps == NULL) { - virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -3596,7 +3566,7 @@ xenDaemonNodeGetTopology(virConnectPtr conn, return (-1); } - ret = sexpr_to_xend_topology(conn, root, caps); + ret = sexpr_to_xend_topology(root, caps); sexpr_free(root); return (ret); } @@ -3620,11 +3590,11 @@ xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer) unsigned long version; if (!VIR_IS_CONNECT(conn)) { - virXendError(conn, VIR_ERR_INVALID_CONN, __FUNCTION__); + virXendError(VIR_ERR_INVALID_CONN, __FUNCTION__); return (-1); } if (hvVer == NULL) { - virXendError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } root = sexpr_get(conn, "/xend/node/"); @@ -3770,8 +3740,7 @@ xenDaemonDomainSetVcpus(virDomainPtr domain, unsigned int vcpus) if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (vcpus < 1)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -3811,8 +3780,7 @@ xenDaemonDomainPinVcpu(virDomainPtr domain, unsigned int vcpu, if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (cpumap == NULL) || (maplen < 1) || (maplen > (int)sizeof(cpumap_t))) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -3871,13 +3839,11 @@ xenDaemonDomainGetVcpus(virDomainPtr domain, virVcpuInfoPtr info, int maxinfo, if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (info == NULL) || (maxinfo < 1)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } if (cpumaps != NULL && maplen < 1) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -4102,8 +4068,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr domain, const char *xml, char class[8], ref[80]; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return -1; } @@ -4112,14 +4077,14 @@ xenDaemonAttachDeviceFlags(virDomainPtr domain, const char *xml, if (domain->id < 0) { /* If xendConfigVersion < 3 only live config can be changed */ if (priv->xendConfigVersion < 3) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend version does not support modifying " "persistent config")); return -1; } /* Cannot modify live config if domain is inactive */ if (flags & VIR_DOMAIN_DEVICE_MODIFY_LIVE) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Cannot modify live config if domain is inactive")); return -1; } @@ -4128,7 +4093,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr domain, const char *xml, if (priv->xendConfigVersion < 3 && (flags != VIR_DOMAIN_DEVICE_MODIFY_CURRENT || flags != VIR_DOMAIN_DEVICE_MODIFY_LIVE)) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend version does not support modifying " "persistent config")); return -1; @@ -4138,7 +4103,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr domain, const char *xml, */ if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE | VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend only supports modifying both live and " "persistent config")); return -1; @@ -4178,19 +4143,18 @@ xenDaemonAttachDeviceFlags(virDomainPtr domain, const char *xml, case VIR_DOMAIN_DEVICE_HOSTDEV: if (dev->data.hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && dev->data.hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { - if (xenDaemonFormatSxprOnePCI(domain->conn, - dev->data.hostdev, + if (xenDaemonFormatSxprOnePCI(dev->data.hostdev, &buf, 0) < 0) goto cleanup; } else { - virXendError(domain->conn, VIR_ERR_NO_SUPPORT, "%s", + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported device type")); goto cleanup; } break; default: - virXendError(domain->conn, VIR_ERR_NO_SUPPORT, "%s", + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported device type")); goto cleanup; } @@ -4239,8 +4203,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml, char class[8], ref[80]; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return -1; } @@ -4249,14 +4212,14 @@ xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml, if (domain->id < 0) { /* If xendConfigVersion < 3 only live config can be changed */ if (priv->xendConfigVersion < 3) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend version does not support modifying " "persistent config")); return -1; } /* Cannot modify live config if domain is inactive */ if (flags & VIR_DOMAIN_DEVICE_MODIFY_LIVE) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Cannot modify live config if domain is inactive")); return -1; } @@ -4265,7 +4228,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml, if (priv->xendConfigVersion < 3 && (flags != VIR_DOMAIN_DEVICE_MODIFY_CURRENT || flags != VIR_DOMAIN_DEVICE_MODIFY_LIVE)) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend version does not support modifying " "persistent config")); return -1; @@ -4275,7 +4238,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml, */ if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE | VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend only supports modifying both live and " "persistent config")); return -1; @@ -4304,7 +4267,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml, break; default: - virXendError(domain->conn, VIR_ERR_NO_SUPPORT, "%s", + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported device type")); goto cleanup; } @@ -4312,7 +4275,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr domain, const char *xml, sexpr = virBufferContentAndReset(&buf); if (virDomainXMLDevID(domain, dev, class, ref, sizeof(ref))) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("requested device does not exist")); goto cleanup; } else { @@ -4351,8 +4314,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr domain, const char *xml, virBuffer buf = VIR_BUFFER_INITIALIZER; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -4361,14 +4323,14 @@ xenDaemonDetachDeviceFlags(virDomainPtr domain, const char *xml, if (domain->id < 0) { /* If xendConfigVersion < 3 only live config can be changed */ if (priv->xendConfigVersion < 3) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend version does not support modifying " "persistent config")); return -1; } /* Cannot modify live config if domain is inactive */ if (flags & VIR_DOMAIN_DEVICE_MODIFY_LIVE) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Cannot modify live config if domain is inactive")); return -1; } @@ -4377,7 +4339,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr domain, const char *xml, if (priv->xendConfigVersion < 3 && (flags != VIR_DOMAIN_DEVICE_MODIFY_CURRENT || flags != VIR_DOMAIN_DEVICE_MODIFY_LIVE)) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend version does not support modifying " "persistent config")); return -1; @@ -4387,7 +4349,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr domain, const char *xml, */ if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE | VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) { - virXendError(domain->conn, VIR_ERR_OPERATION_INVALID, "%s", + virXendError(VIR_ERR_OPERATION_INVALID, "%s", _("Xend only supports modifying both live and " "persistent config")); return -1; @@ -4410,12 +4372,11 @@ xenDaemonDetachDeviceFlags(virDomainPtr domain, const char *xml, if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) { if (dev->data.hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && dev->data.hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { - if (xenDaemonFormatSxprOnePCI(domain->conn, - dev->data.hostdev, + if (xenDaemonFormatSxprOnePCI(dev->data.hostdev, &buf, 1) < 0) goto cleanup; } else { - virXendError(domain->conn, VIR_ERR_NO_SUPPORT, "%s", + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported device type")); goto cleanup; } @@ -4446,8 +4407,7 @@ xenDaemonDomainGetAutostart(virDomainPtr domain, xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } @@ -4460,7 +4420,7 @@ xenDaemonDomainGetAutostart(virDomainPtr domain, root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name); if (root == NULL) { - virXendError (domain->conn, VIR_ERR_XEN_CALL, + virXendError(VIR_ERR_XEN_CALL, "%s", _("xenDaemonGetAutostart failed to find this domain")); return (-1); } @@ -4486,8 +4446,7 @@ xenDaemonDomainSetAutostart(virDomainPtr domain, xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INTERNAL_ERROR, - __FUNCTION__); + virXendError(VIR_ERR_INTERNAL_ERROR, __FUNCTION__); return (-1); } @@ -4500,7 +4459,7 @@ xenDaemonDomainSetAutostart(virDomainPtr domain, root = sexpr_get(domain->conn, "/xend/domain/%s?detail=1", domain->name); if (root == NULL) { - virXendError (domain->conn, VIR_ERR_XEN_CALL, + virXendError(VIR_ERR_XEN_CALL, "%s", _("xenDaemonSetAutostart failed to find this domain")); return (-1); } @@ -4510,7 +4469,7 @@ xenDaemonDomainSetAutostart(virDomainPtr domain, const char *val = (autonode->u.s.car->kind == SEXPR_VALUE ? autonode->u.s.car->u.value : NULL); if (!val || (!STREQ(val, "ignore") && !STREQ(val, "start"))) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("unexpected value from on_xend_start")); goto error; } @@ -4525,17 +4484,17 @@ xenDaemonDomainSetAutostart(virDomainPtr domain, } if (sexpr2string(root, buf, sizeof(buf)) == 0) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("sexpr2string failed")); goto error; } if (xend_op(domain->conn, "", "op", "new", "config", buf, NULL) != 0) { - virXendError(domain->conn, VIR_ERR_XEN_CALL, + virXendError(VIR_ERR_XEN_CALL, "%s", _("Failed to redefine sexpr")); goto error; } } else { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("on_xend_start not present in sexpr")); goto error; } @@ -4579,7 +4538,6 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, unsigned long bandwidth) { /* Upper layers have already checked domain. */ - virConnectPtr conn = domain->conn; /* NB: Passing port=0 to xend means it ignores * the port. However this is somewhat specific to * the internals of the xend Python code. (XXX). @@ -4593,7 +4551,7 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, /* Xen doesn't support renaming domains during migration. */ if (dname) { - virXendError (conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("xenDaemonDomainMigrate: Xen does not support" " renaming domains during migration")); return -1; @@ -4603,7 +4561,7 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, * ignores it. */ if (bandwidth) { - virXendError (conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("xenDaemonDomainMigrate: Xen does not support" " bandwidth limits during migration")); return -1; @@ -4631,7 +4589,7 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, * a nice error message. */ if (flags & VIR_MIGRATE_PAUSED) { - virXendError (conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("xenDaemonDomainMigrate: xend cannot migrate paused domains")); return -1; } @@ -4639,7 +4597,7 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, /* XXX we could easily do tunnelled & peer2peer migration too if we want to. support these... */ if (flags != 0) { - virXendError (conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("xenDaemonDomainMigrate: unsupported flag")); return -1; } @@ -4652,19 +4610,19 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, if (strstr (uri, "//")) { /* Full URI. */ xmlURIPtr uriptr = xmlParseURI (uri); if (!uriptr) { - virXendError (conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, "%s", _("xenDaemonDomainMigrate: invalid URI")); return -1; } if (uriptr->scheme && STRCASENEQ (uriptr->scheme, "xenmigr")) { - virXendError (conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, "%s", _("xenDaemonDomainMigrate: only xenmigr://" " migrations are supported by Xen")); xmlFreeURI (uriptr); return -1; } if (!uriptr->server) { - virXendError (conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, "%s", _("xenDaemonDomainMigrate: a hostname must be" " specified in the URI")); xmlFreeURI (uriptr); @@ -4684,7 +4642,7 @@ xenDaemonDomainMigratePerform (virDomainPtr domain, int port_nr, n; if (virStrToLong_i(p+1, NULL, 10, &port_nr) < 0) { - virXendError (conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, "%s", _("xenDaemonDomainMigrate: invalid port number")); return -1; } @@ -4749,13 +4707,13 @@ virDomainPtr xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc) { if (!(def = virDomainDefParseString(priv->caps, xmlDesc, VIR_DOMAIN_XML_INACTIVE))) { - virXendError(conn, VIR_ERR_XML_ERROR, + virXendError(VIR_ERR_XML_ERROR, "%s", _("failed to parse domain description")); return (NULL); } if (!(sexpr = xenDaemonFormatSxpr(conn, def, priv->xendConfigVersion))) { - virXendError(conn, VIR_ERR_XML_ERROR, + virXendError(VIR_ERR_XML_ERROR, "%s", _("failed to build sexpr")); goto error; } @@ -4765,7 +4723,7 @@ virDomainPtr xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc) { ret = xend_op(conn, "", "op", "new", "config", sexpr, NULL); VIR_FREE(sexpr); if (ret != 0) { - virXendError(conn, VIR_ERR_XEN_CALL, + virXendError(VIR_ERR_XEN_CALL, _("Failed to create inactive domain %s\n"), def->name); goto error; } @@ -4788,8 +4746,7 @@ int xenDaemonDomainCreate(virDomainPtr domain) virDomainPtr tmp; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } @@ -4816,8 +4773,7 @@ int xenDaemonDomainUndefine(virDomainPtr domain) xenUnifiedPrivatePtr priv; if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return(-1); } @@ -4937,15 +4893,14 @@ xenDaemonGetSchedulerType(virDomainPtr domain, int *nparams) if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (nparams == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return NULL; } /* Support only xendConfigVersion >=4 */ priv = (xenUnifiedPrivatePtr) domain->conn->privateData; if (priv->xendConfigVersion < 4) { - virXendError (domain->conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported in xendConfigVersion < 4")); return NULL; } @@ -4957,7 +4912,7 @@ xenDaemonGetSchedulerType(virDomainPtr domain, int *nparams) /* get xen_scheduler from xend/node */ ret = sexpr_node(root, "node/xen_scheduler"); if (ret == NULL){ - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("node information incomplete, missing scheduler name")); goto error; } @@ -4976,7 +4931,7 @@ xenDaemonGetSchedulerType(virDomainPtr domain, int *nparams) } *nparams = XEN_SCHED_SEDF_NPARAM; } else { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler")); + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler")); goto error; } @@ -5013,15 +4968,14 @@ xenDaemonGetSchedulerParameters(virDomainPtr domain, if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (params == NULL) || (nparams == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } /* Support only xendConfigVersion >=4 */ priv = (xenUnifiedPrivatePtr) domain->conn->privateData; if (priv->xendConfigVersion < 4) { - virXendError (domain->conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported in xendConfigVersion < 4")); return (-1); } @@ -5034,7 +4988,7 @@ xenDaemonGetSchedulerParameters(virDomainPtr domain, /* get the scheduler type */ sched_type = xenDaemonGetSchedulerType(domain, &sched_nparam); if (sched_type == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to get a scheduler name")); goto error; } @@ -5047,18 +5001,18 @@ xenDaemonGetSchedulerParameters(virDomainPtr domain, case XEN_SCHED_CRED_NPARAM: /* get cpu_weight/cpu_cap from xend/domain */ if (sexpr_node(root, "domain/cpu_weight") == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing cpu_weight")); goto error; } if (sexpr_node(root, "domain/cpu_cap") == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing cpu_cap")); goto error; } if (virStrcpyStatic(params[0].field, str_weight) == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("Weight %s too big for destination"), str_weight); goto error; @@ -5067,7 +5021,7 @@ xenDaemonGetSchedulerParameters(virDomainPtr domain, params[0].value.ui = sexpr_int(root, "domain/cpu_weight"); if (virStrcpyStatic(params[1].field, str_cap) == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("Cap %s too big for destination"), str_cap); goto error; } @@ -5077,7 +5031,7 @@ xenDaemonGetSchedulerParameters(virDomainPtr domain, ret = 0; break; default: - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler")); + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler")); goto error; } @@ -5110,15 +5064,14 @@ xenDaemonSetSchedulerParameters(virDomainPtr domain, if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) || (params == NULL)) { - virXendError((domain ? domain->conn : NULL), VIR_ERR_INVALID_ARG, - __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); return (-1); } /* Support only xendConfigVersion >=4 and active domains */ priv = (xenUnifiedPrivatePtr) domain->conn->privateData; if (priv->xendConfigVersion < 4) { - virXendError (domain->conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("unsupported in xendConfigVersion < 4")); return (-1); } @@ -5131,7 +5084,7 @@ xenDaemonSetSchedulerParameters(virDomainPtr domain, /* get the scheduler type */ sched_type = xenDaemonGetSchedulerType(domain, &sched_nparam); if (sched_type == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to get a scheduler name")); goto error; } @@ -5158,7 +5111,7 @@ xenDaemonSetSchedulerParameters(virDomainPtr domain, params[i].type == VIR_DOMAIN_SCHED_FIELD_UINT) { snprintf(buf_cap, sizeof(buf_cap), "%u", params[i].value.ui); } else { - virXendError(domain->conn, VIR_ERR_INVALID_ARG, __FUNCTION__); + virXendError(VIR_ERR_INVALID_ARG, __FUNCTION__); goto error; } } @@ -5167,7 +5120,7 @@ xenDaemonSetSchedulerParameters(virDomainPtr domain, if (strlen(buf_weight) == 0) { weight = sexpr_node(root, "domain/cpu_weight"); if (weight == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing cpu_weight")); goto error; } @@ -5176,7 +5129,7 @@ xenDaemonSetSchedulerParameters(virDomainPtr domain, if (strlen(buf_cap) == 0) { cap = sexpr_node(root, "domain/cpu_cap"); if (cap == NULL) { - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("domain information incomplete, missing cpu_cap")); goto error; } @@ -5189,7 +5142,7 @@ xenDaemonSetSchedulerParameters(virDomainPtr domain, break; } default: - virXendError(domain->conn, VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler")); + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unknown scheduler")); goto error; } @@ -5234,13 +5187,13 @@ xenDaemonDomainBlockPeek (virDomainPtr domain, const char *path, domain->name); else { /* This call always fails for dom0. */ - virXendError (domain->conn, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("domainBlockPeek is not supported for dom0")); return -1; } if (!root) { - virXendError (domain->conn, VIR_ERR_XEN_CALL, __FUNCTION__); + virXendError(VIR_ERR_XEN_CALL, __FUNCTION__); return -1; } @@ -5255,7 +5208,7 @@ xenDaemonDomainBlockPeek (virDomainPtr domain, const char *path, } } if (!found) { - virXendError (domain->conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, _("%s: invalid path"), path); goto cleanup; } @@ -5352,13 +5305,12 @@ struct xenUnifiedDriver xenDaemonDriver = { * Returns 0 in case of success, -1 in case of error */ static int -xenDaemonFormatSxprGraphicsNew(virConnectPtr conn, - virDomainGraphicsDefPtr def, +xenDaemonFormatSxprGraphicsNew(virDomainGraphicsDefPtr def, virBufferPtr buf) { if (def->type != VIR_DOMAIN_GRAPHICS_TYPE_SDL && def->type != VIR_DOMAIN_GRAPHICS_TYPE_VNC) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected graphics type %d"), def->type); return -1; @@ -5397,14 +5349,13 @@ xenDaemonFormatSxprGraphicsNew(virConnectPtr conn, static int -xenDaemonFormatSxprGraphicsOld(virConnectPtr conn, - virDomainGraphicsDefPtr def, +xenDaemonFormatSxprGraphicsOld(virDomainGraphicsDefPtr def, virBufferPtr buf, int xendConfigVersion) { if (def->type != VIR_DOMAIN_GRAPHICS_TYPE_SDL && def->type != VIR_DOMAIN_GRAPHICS_TYPE_VNC) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected graphics type %d"), def->type); return -1; @@ -5440,14 +5391,13 @@ xenDaemonFormatSxprGraphicsOld(virConnectPtr conn, } int -xenDaemonFormatSxprChr(virConnectPtr conn, - virDomainChrDefPtr def, +xenDaemonFormatSxprChr(virDomainChrDefPtr def, virBufferPtr buf) { const char *type = virDomainChrTypeToString(def->type); if (!type) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s", _("unexpected chr device type")); return -1; } @@ -5530,7 +5480,7 @@ xenDaemonFormatSxprDisk(virConnectPtr conn ATTRIBUTE_UNUSED, if (hvm && def->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) { if (isAttach) { - virXendError(conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, _("Cannot directly attach floppy %s"), def->src); return -1; } @@ -5542,7 +5492,7 @@ xenDaemonFormatSxprDisk(virConnectPtr conn ATTRIBUTE_UNUSED, def->device == VIR_DOMAIN_DISK_DEVICE_CDROM && xendConfigVersion == 1) { if (isAttach) { - virXendError(conn, VIR_ERR_INVALID_ARG, + virXendError(VIR_ERR_INVALID_ARG, _("Cannot directly attach CDROM %s"), def->src); return -1; } @@ -5597,7 +5547,7 @@ xenDaemonFormatSxprDisk(virConnectPtr conn ATTRIBUTE_UNUSED, else virBufferVSprintf(buf, "(uname 'phy:/dev/%s')", def->src); } else { - virXendError(conn, VIR_ERR_CONFIG_UNSUPPORTED, + virXendError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported disk type %s"), virDomainDiskTypeToString(def->type)); return -1; @@ -5647,7 +5597,7 @@ xenDaemonFormatSxprNet(virConnectPtr conn, if (def->type != VIR_DOMAIN_NET_TYPE_BRIDGE && def->type != VIR_DOMAIN_NET_TYPE_NETWORK && def->type != VIR_DOMAIN_NET_TYPE_ETHERNET) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unsupported network type %d"), def->type); return -1; } @@ -5680,7 +5630,7 @@ xenDaemonFormatSxprNet(virConnectPtr conn, char *bridge; if (!network) { - virXendError(conn, VIR_ERR_NO_NETWORK, "%s", + virXendError(VIR_ERR_NO_NETWORK, "%s", def->data.network.name); return -1; } @@ -5688,7 +5638,7 @@ xenDaemonFormatSxprNet(virConnectPtr conn, bridge = virNetworkGetBridgeName(network); virNetworkFree(network); if (!bridge) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("network %s is not active"), def->data.network.name); return -1; @@ -5761,13 +5711,12 @@ xenDaemonFormatSxprPCI(virDomainHostdevDefPtr def, } static int -xenDaemonFormatSxprOnePCI(virConnectPtr conn, - virDomainHostdevDefPtr def, +xenDaemonFormatSxprOnePCI(virDomainHostdevDefPtr def, virBufferPtr buf, int detach) { if (def->managed) { - virXendError(conn, VIR_ERR_NO_SUPPORT, "%s", + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("managed PCI devices not supported with XenD")); return -1; } @@ -5784,8 +5733,7 @@ xenDaemonFormatSxprOnePCI(virConnectPtr conn, } static int -xenDaemonFormatSxprAllPCI(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonFormatSxprAllPCI(virDomainDefPtr def, virBufferPtr buf) { int hasPCI = 0; @@ -5818,7 +5766,7 @@ xenDaemonFormatSxprAllPCI(virConnectPtr conn, if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { if (def->hostdevs[i]->managed) { - virXendError(conn, VIR_ERR_NO_SUPPORT, "%s", + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("managed PCI devices not supported with XenD")); return -1; } @@ -5832,8 +5780,7 @@ xenDaemonFormatSxprAllPCI(virConnectPtr conn, } int -xenDaemonFormatSxprSound(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonFormatSxprSound(virDomainDefPtr def, virBufferPtr buf) { const char *str; @@ -5841,7 +5788,7 @@ xenDaemonFormatSxprSound(virConnectPtr conn, for (i = 0 ; i < def->nsounds ; i++) { if (!(str = virDomainSoundModelTypeToString(def->sounds[i]->model))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected sound model %d"), def->sounds[i]->model); return -1; @@ -5859,8 +5806,7 @@ xenDaemonFormatSxprSound(virConnectPtr conn, static int -xenDaemonFormatSxprInput(virConnectPtr conn, - virDomainInputDefPtr input, +xenDaemonFormatSxprInput(virDomainInputDefPtr input, virBufferPtr buf) { if (input->bus != VIR_DOMAIN_INPUT_BUS_USB) @@ -5868,7 +5814,7 @@ xenDaemonFormatSxprInput(virConnectPtr conn, if (input->type != VIR_DOMAIN_INPUT_TYPE_MOUSE && input->type != VIR_DOMAIN_INPUT_TYPE_TABLET) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected input type %d"), input->type); return -1; } @@ -5933,21 +5879,21 @@ xenDaemonFormatSxpr(virConnectPtr conn, } if (!(tmp = virDomainLifecycleTypeToString(def->onPoweroff))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected lifecycle value %d"), def->onPoweroff); goto error; } virBufferVSprintf(&buf, "(on_poweroff '%s')", tmp); if (!(tmp = virDomainLifecycleTypeToString(def->onReboot))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected lifecycle value %d"), def->onReboot); goto error; } virBufferVSprintf(&buf, "(on_reboot '%s')", tmp); if (!(tmp = virDomainLifecycleTypeToString(def->onCrash))) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, _("unexpected lifecycle value %d"), def->onCrash); goto error; } @@ -5956,14 +5902,14 @@ xenDaemonFormatSxpr(virConnectPtr conn, /* Set localtime here for current XenD (both PV & HVM) */ if (def->clock.offset == VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME) { if (def->clock.data.timezone) { - virXendError(conn, VIR_ERR_CONFIG_UNSUPPORTED, + virXendError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("configurable timezones are not supported")); goto error; } virBufferAddLit(&buf, "(localtime 1)"); } else if (def->clock.offset != VIR_DOMAIN_CLOCK_OFFSET_UTC) { - virXendError(conn, VIR_ERR_CONFIG_UNSUPPORTED, + virXendError(VIR_ERR_CONFIG_UNSUPPORTED, _("unsupported clock offset '%s'"), virDomainClockOffsetTypeToString(def->clock.offset)); goto error; @@ -5980,7 +5926,7 @@ xenDaemonFormatSxpr(virConnectPtr conn, if (hvm && def->os.loader == NULL) { - virXendError(conn, VIR_ERR_INTERNAL_ERROR, + virXendError(VIR_ERR_INTERNAL_ERROR, "%s",_("no HVM domain loader")); goto error; } @@ -6064,12 +6010,12 @@ xenDaemonFormatSxpr(virConnectPtr conn, virBufferAddLit(&buf, "(usb 1)"); for (i = 0 ; i < def->ninputs ; i++) - if (xenDaemonFormatSxprInput(conn, def->inputs[i], &buf) < 0) + if (xenDaemonFormatSxprInput(def->inputs[i], &buf) < 0) goto error; if (def->parallels) { virBufferAddLit(&buf, "(parallel "); - if (xenDaemonFormatSxprChr(conn, def->parallels[0], &buf) < 0) + if (xenDaemonFormatSxprChr(def->parallels[0], &buf) < 0) goto error; virBufferAddLit(&buf, ")"); } else { @@ -6077,7 +6023,7 @@ xenDaemonFormatSxpr(virConnectPtr conn, } if (def->serials) { virBufferAddLit(&buf, "(serial "); - if (xenDaemonFormatSxprChr(conn, def->serials[0], &buf) < 0) + if (xenDaemonFormatSxprChr(def->serials[0], &buf) < 0) goto error; virBufferAddLit(&buf, ")"); } else { @@ -6090,7 +6036,7 @@ xenDaemonFormatSxpr(virConnectPtr conn, if (def->sounds) { virBufferAddLit(&buf, "(soundhw '"); - if (xenDaemonFormatSxprSound(conn, def, &buf) < 0) + if (xenDaemonFormatSxprSound(def, &buf) < 0) goto error; virBufferAddLit(&buf, "')"); } @@ -6105,7 +6051,7 @@ xenDaemonFormatSxpr(virConnectPtr conn, if ((!hvm && xendConfigVersion < XEND_CONFIG_MIN_VERS_PVFB_NEWCONF) || (hvm && xendConfigVersion < 4)) { if ((def->ngraphics == 1) && - xenDaemonFormatSxprGraphicsOld(conn, def->graphics[0], + xenDaemonFormatSxprGraphicsOld(def->graphics[0], &buf, xendConfigVersion) < 0) goto error; } @@ -6123,7 +6069,7 @@ xenDaemonFormatSxpr(virConnectPtr conn, &buf, hvm, xendConfigVersion, 0) < 0) goto error; - if (xenDaemonFormatSxprAllPCI(conn, def, &buf) < 0) + if (xenDaemonFormatSxprAllPCI(def, &buf) < 0) goto error; /* New style PV graphics config xen >= 3.0.4, @@ -6131,7 +6077,7 @@ xenDaemonFormatSxpr(virConnectPtr conn, if ((xendConfigVersion >= XEND_CONFIG_MIN_VERS_PVFB_NEWCONF && !hvm) || (xendConfigVersion >= 4 && hvm)) { if ((def->ngraphics == 1) && - xenDaemonFormatSxprGraphicsNew(conn, def->graphics[0], &buf) < 0) + xenDaemonFormatSxprGraphicsNew(def->graphics[0], &buf) < 0) goto error; } @@ -6246,7 +6192,7 @@ virDomainXMLDevID(virDomainPtr domain, if (tmp == NULL) return -1; } else { - virXendError(NULL, VIR_ERR_NO_SUPPORT, + virXendError(VIR_ERR_NO_SUPPORT, "%s", _("hotplug of device type not supported")); return -1; } diff --git a/src/xen/xend_internal.h b/src/xen/xend_internal.h index 028a293b12..25a5421aa2 100644 --- a/src/xen/xend_internal.h +++ b/src/xen/xend_internal.h @@ -96,12 +96,11 @@ xenDaemonDomainFetch(virConnectPtr xend, const char *name, const char *cpus); - int xend_parse_sexp_desc_char(virConnectPtr conn, - virBufferPtr buf, - const char *devtype, - int portNum, - const char *value, - const char *tty); +int xend_parse_sexp_desc_char(virBufferPtr buf, + const char *devtype, + int portNum, + const char *value, + const char *tty); virDomainDefPtr xenDaemonParseSxprString(virConnectPtr conn, @@ -109,21 +108,18 @@ xenDaemonParseSxprString(virConnectPtr conn, int xendConfigVersion); int -xenDaemonParseSxprSound(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonParseSxprSound(virDomainDefPtr def, const char *str); + virDomainChrDefPtr -xenDaemonParseSxprChar(virConnectPtr conn, - const char *value, +xenDaemonParseSxprChar(const char *value, const char *tty); int -xenDaemonFormatSxprChr(virConnectPtr conn, - virDomainChrDefPtr def, +xenDaemonFormatSxprChr(virDomainChrDefPtr def, virBufferPtr buf); int -xenDaemonFormatSxprSound(virConnectPtr conn, - virDomainDefPtr def, +xenDaemonFormatSxprSound(virDomainDefPtr def, virBufferPtr buf); char * diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index 0d42b01249..b4a8117d0a 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -1415,7 +1415,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) { if (xenXMConfigGetString(conn, conf, "parallel", &str, NULL) < 0) goto cleanup; if (str && STRNEQ(str, "none") && - !(chr = xenDaemonParseSxprChar(conn, str, NULL))) + !(chr = xenDaemonParseSxprChar(str, NULL))) goto cleanup; if (chr) { @@ -1432,7 +1432,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) { if (xenXMConfigGetString(conn, conf, "serial", &str, NULL) < 0) goto cleanup; if (str && STRNEQ(str, "none") && - !(chr = xenDaemonParseSxprChar(conn, str, NULL))) + !(chr = xenDaemonParseSxprChar(str, NULL))) goto cleanup; if (chr) { @@ -1445,7 +1445,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) { def->nserials++; } } else { - if (!(def->console = xenDaemonParseSxprChar(conn, "pty", NULL))) + if (!(def->console = xenDaemonParseSxprChar("pty", NULL))) goto cleanup; def->console->targetType = VIR_DOMAIN_CHR_TARGET_TYPE_CONSOLE; } @@ -1455,7 +1455,7 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) { goto cleanup; if (str && - xenDaemonParseSxprSound(conn, def, str) < 0) + xenDaemonParseSxprSound(def, str) < 0) goto cleanup; } @@ -2572,7 +2572,7 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn, char *str; int ret; - ret = xenDaemonFormatSxprChr(conn, def->parallels[0], &buf); + ret = xenDaemonFormatSxprChr(def->parallels[0], &buf); str = virBufferContentAndReset(&buf); if (ret == 0) ret = xenXMConfigSetString(conf, "parallel", str); @@ -2589,7 +2589,7 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn, char *str; int ret; - ret = xenDaemonFormatSxprChr(conn, def->serials[0], &buf); + ret = xenDaemonFormatSxprChr(def->serials[0], &buf); str = virBufferContentAndReset(&buf); if (ret == 0) ret = xenXMConfigSetString(conf, "serial", str); @@ -2605,9 +2605,7 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn, if (def->sounds) { virBuffer buf = VIR_BUFFER_INITIALIZER; char *str = NULL; - int ret = xenDaemonFormatSxprSound(conn, - def, - &buf); + int ret = xenDaemonFormatSxprSound(def, &buf); str = virBufferContentAndReset(&buf); if (ret == 0) ret = xenXMConfigSetString(conf, "soundhw", str);