From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747473487111.49905670343662; Mon, 16 Jul 2018 06:24:33 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 834B2308125A; Mon, 16 Jul 2018 13:24:30 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0CD0B1001F41; Mon, 16 Jul 2018 13:24:30 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 808E34A465; Mon, 16 Jul 2018 13:24:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOQMI027946 for ; Mon, 16 Jul 2018 09:24:26 -0400 Received: by smtp.corp.redhat.com (Postfix) id A6ED72027047; Mon, 16 Jul 2018 13:24:26 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id E98612026D65; Mon, 16 Jul 2018 13:24:25 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:47 +0100 Message-Id: <20180716132423.10354-2-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 01/37] error: add helper for converting libvirt to go error objects X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 16 Jul 2018 13:24:31 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- error.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/error.go b/error.go index bee8b70..b8e2900 100644 --- a/error.go +++ b/error.go @@ -583,6 +583,17 @@ func (err Error) Error() string { err.Code, err.Domain, err.Message) } =20 +func makeError(err *C.virError) Error { + ret :=3D Error{ + Code: ErrorNumber(err.code), + Domain: ErrorDomain(err.domain), + Message: C.GoString(err.message), + Level: ErrorLevel(err.level), + } + C.virResetError(err) + return ret +} + func GetLastError() Error { err :=3D C.virGetLastError() if err =3D=3D nil { --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747481521553.1435978676802; Mon, 16 Jul 2018 06:24:41 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C63BBA2044; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 88DB02010CA0; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 32BEF1853DA1; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDORgo027953 for ; Mon, 16 Jul 2018 09:24:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id DCD872026D76; Mon, 16 Jul 2018 13:24:27 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 14B4B2026D65; Mon, 16 Jul 2018 13:24:26 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:48 +0100 Message-Id: <20180716132423.10354-3-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 02/37] storage volume: add missin blank line X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 16 Jul 2018 13:24:40 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- storage_volume.go | 1 + 1 file changed, 1 insertion(+) diff --git a/storage_volume.go b/storage_volume.go index 22dd284..739cdb2 100644 --- a/storage_volume.go +++ b/storage_volume.go @@ -239,6 +239,7 @@ func (v *StorageVol) Wipe(flags uint32) error { } return nil } + // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolWipePattern func (v *StorageVol) WipePattern(algorithm StorageVolWipeAlgorithm, flags = uint32) error { result :=3D C.virStorageVolWipePattern(v.ptr, C.uint(algorithm), C.uint(f= lags)) --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747474524368.5222413903431; Mon, 16 Jul 2018 06:24:34 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 950ECCA1DC; Mon, 16 Jul 2018 13:24:32 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5B07F5D9D1; Mon, 16 Jul 2018 13:24:32 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F06C81853DA1; Mon, 16 Jul 2018 13:24:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOTeN027964 for ; Mon, 16 Jul 2018 09:24:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id 254162027047; Mon, 16 Jul 2018 13:24:29 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4C3DF2026D65; Mon, 16 Jul 2018 13:24:28 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:49 +0100 Message-Id: <20180716132423.10354-4-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 03/37] Rename *cfuncs.{go, h} to *wrapper.{go, h} X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 16 Jul 2018 13:24:33 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- api_test.go | 2 +- callbacks_cfuncs.go =3D> callbacks_wrapper.go | 2 +- callbacks_cfuncs.h =3D> callbacks_wrapper.h | 6 +++--- connect.go | 2 +- connect_cfuncs.go =3D> connect_wrapper.go | 4 ++-- connect_cfuncs.h =3D> connect_wrapper.h | 6 +++--- domain_events.go | 2 +- domain_events_cfuncs.go =3D> domain_events_wrapper.go | 4 ++-- domain_events_cfuncs.h =3D> domain_events_wrapper.h | 6 +++--- events.go | 2 +- events_cfuncs.go =3D> events_wrapper.go | 2 +- events_cfuncs.h =3D> events_wrapper.h | 6 +++--- network_events.go | 2 +- network_events_cfuncs.go =3D> network_events_wrapper.go | 4 ++-- network_events_cfuncs.h =3D> network_events_wrapper.h | 6 +++--- node_device_events.go | 2 +- ...device_events_cfuncs.go =3D> node_device_events_wrapper.go | 4 ++-- node_device_events_cfuncs.h =3D> node_device_events_wrapper.h | 6 +++--- qemu.go | 2 +- qemu_cfuncs.go =3D> qemu_wrapper.go | 4 ++-- qemu_cfuncs.h =3D> qemu_wrapper.h | 6 +++--- secret_events.go | 2 +- secret_events_cfuncs.go =3D> secret_events_wrapper.go | 4 ++-- secret_events_cfuncs.h =3D> secret_events_wrapper.h | 6 +++--- storage_pool_events.go | 2 +- ..._pool_events_cfuncs.go =3D> storage_pool_events_wrapper.go | 4 ++-- ...ge_pool_events_cfuncs.h =3D> storage_pool_events_wrapper.h | 6 +++--- stream.go | 2 +- stream_cfuncs.go =3D> stream_wrapper.go | 2 +- stream_cfuncs.h =3D> stream_wrapper.h | 6 +++--- 30 files changed, 57 insertions(+), 57 deletions(-) rename callbacks_cfuncs.go =3D> callbacks_wrapper.go (97%) rename callbacks_cfuncs.h =3D> callbacks_wrapper.h (90%) rename connect_cfuncs.go =3D> connect_wrapper.go (97%) rename connect_cfuncs.h =3D> connect_wrapper.h (92%) rename domain_events_cfuncs.go =3D> domain_events_wrapper.go (99%) rename domain_events_cfuncs.h =3D> domain_events_wrapper.h (97%) rename events_cfuncs.go =3D> events_wrapper.go (99%) rename events_cfuncs.h =3D> events_wrapper.h (93%) rename network_events_cfuncs.go =3D> network_events_wrapper.go (97%) rename network_events_cfuncs.h =3D> network_events_wrapper.h (91%) rename node_device_events_cfuncs.go =3D> node_device_events_wrapper.go (97= %) rename node_device_events_cfuncs.h =3D> node_device_events_wrapper.h (91%) rename qemu_cfuncs.go =3D> qemu_wrapper.go (97%) rename qemu_cfuncs.h =3D> qemu_wrapper.h (91%) rename secret_events_cfuncs.go =3D> secret_events_wrapper.go (97%) rename secret_events_cfuncs.h =3D> secret_events_wrapper.h (92%) rename storage_pool_events_cfuncs.go =3D> storage_pool_events_wrapper.go (= 97%) rename storage_pool_events_cfuncs.h =3D> storage_pool_events_wrapper.h (91= %) rename stream_cfuncs.go =3D> stream_wrapper.go (99%) rename stream_cfuncs.h =3D> stream_wrapper.h (93%) diff --git a/api_test.go b/api_test.go index 53632df..06938a6 100644 --- a/api_test.go +++ b/api_test.go @@ -52,7 +52,7 @@ var ( /* Obsolete we use virConnectDomainEventRegisterAny instead */ "virConnectDomainEventRegister", =20 - /* Wrapped in connect_cfuncs.go instead */ + /* Wrapped in connect_wrapper.go instead */ "virConnectOpenAuth", "virConnectRegisterCloseCallback", =20 diff --git a/callbacks_cfuncs.go b/callbacks_wrapper.go similarity index 97% rename from callbacks_cfuncs.go rename to callbacks_wrapper.go index 2cef0e4..967aaab 100644 --- a/callbacks_cfuncs.go +++ b/callbacks_wrapper.go @@ -30,7 +30,7 @@ package libvirt #cgo pkg-config: libvirt #include #include -#include "callbacks_cfuncs.h" +#include "callbacks_wrapper.h" =20 extern void freeCallbackId(long); void freeGoCallback_cgo(void* goCallbackId) { diff --git a/callbacks_cfuncs.h b/callbacks_wrapper.h similarity index 90% rename from callbacks_cfuncs.h rename to callbacks_wrapper.h index 689a777..f37aba4 100644 --- a/callbacks_cfuncs.h +++ b/callbacks_wrapper.h @@ -24,9 +24,9 @@ * */ =20 -#ifndef LIBVIRT_GO_CALLBACKS_CFUNCS_H__ -#define LIBVIRT_GO_CALLBACKS_CFUNCS_H__ +#ifndef LIBVIRT_GO_CALLBACKS_WRAPPER_H__ +#define LIBVIRT_GO_CALLBACKS_WRAPPER_H__ =20 void freeGoCallback_cgo(void* goCallbackId); =20 -#endif /* LIBVIRT_GO_CALLBACKS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_CALLBACKS_WRAPPER_H__ */ diff --git a/connect.go b/connect.go index c608658..5c6d6ff 100644 --- a/connect.go +++ b/connect.go @@ -40,7 +40,7 @@ import ( #include #include #include "connect_compat.h" -#include "connect_cfuncs.h" +#include "connect_wrapper.h" */ import "C" =20 diff --git a/connect_cfuncs.go b/connect_wrapper.go similarity index 97% rename from connect_cfuncs.go rename to connect_wrapper.go index cb0467d..a686e29 100644 --- a/connect_cfuncs.go +++ b/connect_wrapper.go @@ -30,8 +30,8 @@ package libvirt #cgo pkg-config: libvirt #include #include -#include "connect_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "connect_wrapper.h" +#include "callbacks_wrapper.h" =20 extern void closeCallback(virConnectPtr, int, long); void closeCallback_cgo(virConnectPtr conn, int reason, void *opaque) diff --git a/connect_cfuncs.h b/connect_wrapper.h similarity index 92% rename from connect_cfuncs.h rename to connect_wrapper.h index 592fe98..5c59320 100644 --- a/connect_cfuncs.h +++ b/connect_wrapper.h @@ -24,11 +24,11 @@ * */ =20 -#ifndef LIBVIRT_GO_CONNECT_CFUNCS_H__ -#define LIBVIRT_GO_CONNECT_CFUNCS_H__ +#ifndef LIBVIRT_GO_CONNECT_WRAPPER_H__ +#define LIBVIRT_GO_CONNECT_WRAPPER_H__ void closeCallback_cgo(virConnectPtr conn, int reason, void *opaque); int virConnectRegisterCloseCallback_cgo(virConnectPtr c, virConnectCloseFu= nc cb, long goCallbackId); =20 virConnectPtr virConnectOpenAuthWrap(const char *name, int *credtype, uint= ncredtype, int callbackID, unsigned int flags); =20 -#endif /* LIBVIRT_GO_CONNECT_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_CONNECT_WRAPPER_H__ */ diff --git a/domain_events.go b/domain_events.go index 738c902..6d4ff24 100644 --- a/domain_events.go +++ b/domain_events.go @@ -34,7 +34,7 @@ import ( /* #cgo pkg-config: libvirt #include -#include "domain_events_cfuncs.h" +#include "domain_events_wrapper.h" #include "domain_compat.h" */ import "C" diff --git a/domain_events_cfuncs.go b/domain_events_wrapper.go similarity index 99% rename from domain_events_cfuncs.go rename to domain_events_wrapper.go index c9de165..ad0f803 100644 --- a/domain_events_cfuncs.go +++ b/domain_events_wrapper.go @@ -30,8 +30,8 @@ package libvirt #cgo pkg-config: libvirt #include #include -#include "domain_events_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "domain_events_wrapper.h" +#include "callbacks_wrapper.h" #include =20 extern void domainEventLifecycleCallback(virConnectPtr, virDomainPtr, int,= int, int); diff --git a/domain_events_cfuncs.h b/domain_events_wrapper.h similarity index 97% rename from domain_events_cfuncs.h rename to domain_events_wrapper.h index 423a1cc..a0e494e 100644 --- a/domain_events_cfuncs.h +++ b/domain_events_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_DOMAIN_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_DOMAIN_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ =20 void domainEventLifecycleCallback_cgo(virConnectPtr c, virDomainPtr d, int event, int detail, void* data); @@ -121,4 +121,4 @@ int virConnectDomainEventRegisterAny_cgo(virConnectPtr = c, virDomainPtr d, long goCallbackId); =20 =20 -#endif /* LIBVIRT_GO_DOMAIN_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ diff --git a/events.go b/events.go index ef80d82..74d480a 100644 --- a/events.go +++ b/events.go @@ -30,7 +30,7 @@ package libvirt #cgo pkg-config: libvirt #include #include -#include "events_cfuncs.h" +#include "events_wrapper.h" */ import "C" =20 diff --git a/events_cfuncs.go b/events_wrapper.go similarity index 99% rename from events_cfuncs.go rename to events_wrapper.go index acd7b45..d17b054 100644 --- a/events_cfuncs.go +++ b/events_wrapper.go @@ -32,7 +32,7 @@ package libvirt #include #include #include -#include "events_cfuncs.h" +#include "events_wrapper.h" =20 void eventHandleCallback(int watch, int fd, int events, int callbackID); =20 diff --git a/events_cfuncs.h b/events_wrapper.h similarity index 93% rename from events_cfuncs.h rename to events_wrapper.h index 79e70ee..d3e78d8 100644 --- a/events_cfuncs.h +++ b/events_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_EVENTS_WRAPPER_H__ =20 int virEventAddHandle_cgo(int fd, int events, int callbackID); int virEventAddTimeout_cgo(int freq, int callbackID); @@ -36,4 +36,4 @@ void eventTimeoutCallbackInvoke(int timer, uintptr_t call= back, uintptr_t opaque) void eventHandleCallbackFree(uintptr_t callback, uintptr_t opaque); void eventTimeoutCallbackFree(uintptr_t callback, uintptr_t opaque); =20 -#endif /* LIBVIRT_GO_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_EVENTS_WRAPPER_H__ */ diff --git a/network_events.go b/network_events.go index 6c1423d..15b2f55 100644 --- a/network_events.go +++ b/network_events.go @@ -35,7 +35,7 @@ import ( #cgo pkg-config: libvirt #include #include "network_compat.h" -#include "network_events_cfuncs.h" +#include "network_events_wrapper.h" */ import "C" =20 diff --git a/network_events_cfuncs.go b/network_events_wrapper.go similarity index 97% rename from network_events_cfuncs.go rename to network_events_wrapper.go index c4920ea..613e32b 100644 --- a/network_events_cfuncs.go +++ b/network_events_wrapper.go @@ -32,8 +32,8 @@ package libvirt #include #include #include "network_compat.h" -#include "network_events_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "network_events_wrapper.h" +#include "callbacks_wrapper.h" #include =20 extern void networkEventLifecycleCallback(virConnectPtr, virNetworkPtr, in= t, int, int); diff --git a/network_events_cfuncs.h b/network_events_wrapper.h similarity index 91% rename from network_events_cfuncs.h rename to network_events_wrapper.h index 58a684a..13ffce1 100644 --- a/network_events_cfuncs.h +++ b/network_events_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_NETWORK_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_NETWORK_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ =20 void networkEventLifecycleCallback_cgo(virConnectPtr c, virNetworkPtr d, int event, int detail, void* data); @@ -35,4 +35,4 @@ int virConnectNetworkEventRegisterAny_cgo(virConnectPtr c= , virNetworkPtr d, long goCallbackId); =20 =20 -#endif /* LIBVIRT_GO_NETWORK_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ */ diff --git a/node_device_events.go b/node_device_events.go index a43d9f2..01c2245 100644 --- a/node_device_events.go +++ b/node_device_events.go @@ -35,7 +35,7 @@ import ( #cgo pkg-config: libvirt #include #include "node_device_compat.h" -#include "node_device_events_cfuncs.h" +#include "node_device_events_wrapper.h" */ import "C" =20 diff --git a/node_device_events_cfuncs.go b/node_device_events_wrapper.go similarity index 97% rename from node_device_events_cfuncs.go rename to node_device_events_wrapper.go index 12aaf60..a34fa6f 100644 --- a/node_device_events_cfuncs.go +++ b/node_device_events_wrapper.go @@ -32,8 +32,8 @@ package libvirt #include #include #include "node_device_compat.h" -#include "node_device_events_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "node_device_events_wrapper.h" +#include "callbacks_wrapper.h" #include =20 extern void nodeDeviceEventLifecycleCallback(virConnectPtr, virNodeDeviceP= tr, int, int, int); diff --git a/node_device_events_cfuncs.h b/node_device_events_wrapper.h similarity index 91% rename from node_device_events_cfuncs.h rename to node_device_events_wrapper.h index 0d01075..38b1036 100644 --- a/node_device_events_cfuncs.h +++ b/node_device_events_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_NODE_DEVICE_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_NODE_DEVICE_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ =20 void nodeDeviceEventLifecycleCallback_cgo(virConnectPtr c, virNodeDevicePt= r d, int event, int detail, void* data); @@ -37,4 +37,4 @@ int virConnectNodeDeviceEventRegisterAny_cgo(virConnectPt= r c, virNodeDevicePtr long goCallbackId); =20 =20 -#endif /* LIBVIRT_GO_NODE_DEVICE_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ */ diff --git a/qemu.go b/qemu.go index 38f3eaf..dd30a7d 100644 --- a/qemu.go +++ b/qemu.go @@ -38,7 +38,7 @@ package libvirt #include #include #include "qemu_compat.h" -#include "qemu_cfuncs.h" +#include "qemu_wrapper.h" */ import "C" =20 diff --git a/qemu_cfuncs.go b/qemu_wrapper.go similarity index 97% rename from qemu_cfuncs.go rename to qemu_wrapper.go index 83bb67a..41fe0cf 100644 --- a/qemu_cfuncs.go +++ b/qemu_wrapper.go @@ -35,8 +35,8 @@ package libvirt #include #include #include "qemu_compat.h" -#include "qemu_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "qemu_wrapper.h" +#include "callbacks_wrapper.h" #include #include =20 diff --git a/qemu_cfuncs.h b/qemu_wrapper.h similarity index 91% rename from qemu_cfuncs.h rename to qemu_wrapper.h index f1f48b0..4495cc4 100644 --- a/qemu_cfuncs.h +++ b/qemu_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_DOMAIN_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_DOMAIN_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ =20 void domainQemuMonitorEventCallback_cgo(virConnectPtr c, virDomainPtr d, const char *event, long long secs, @@ -36,4 +36,4 @@ int virConnectDomainQemuMonitorEventRegister_cgo(virConne= ctPtr c, virDomainPtr long goCallbackId, unsigned int flags); =20 =20 -#endif /* LIBVIRT_GO_DOMAIN_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ diff --git a/secret_events.go b/secret_events.go index 7da9428..92c86a2 100644 --- a/secret_events.go +++ b/secret_events.go @@ -35,7 +35,7 @@ import ( #cgo pkg-config: libvirt #include #include "secret_compat.h" -#include "secret_events_cfuncs.h" +#include "secret_events_wrapper.h" */ import "C" =20 diff --git a/secret_events_cfuncs.go b/secret_events_wrapper.go similarity index 97% rename from secret_events_cfuncs.go rename to secret_events_wrapper.go index 158008b..55d3394 100644 --- a/secret_events_cfuncs.go +++ b/secret_events_wrapper.go @@ -32,8 +32,8 @@ package libvirt #include #include #include "secret_compat.h" -#include "secret_events_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "secret_events_wrapper.h" +#include "callbacks_wrapper.h" #include =20 extern void secretEventLifecycleCallback(virConnectPtr, virSecretPtr, int,= int, int); diff --git a/secret_events_cfuncs.h b/secret_events_wrapper.h similarity index 92% rename from secret_events_cfuncs.h rename to secret_events_wrapper.h index 96401d5..4ad299c 100644 --- a/secret_events_cfuncs.h +++ b/secret_events_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_SECRET_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_SECRET_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ =20 void secretEventLifecycleCallback_cgo(virConnectPtr c, virSecretPtr d, int event, int detail, void* data); @@ -37,4 +37,4 @@ int virConnectSecretEventRegisterAny_cgo(virConnectPtr c,= virSecretPtr d, long goCallbackId); =20 =20 -#endif /* LIBVIRT_GO_SECRET_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ */ diff --git a/storage_pool_events.go b/storage_pool_events.go index 2a37114..5be9191 100644 --- a/storage_pool_events.go +++ b/storage_pool_events.go @@ -35,7 +35,7 @@ import ( #cgo pkg-config: libvirt #include #include "storage_pool_compat.h" -#include "storage_pool_events_cfuncs.h" +#include "storage_pool_events_wrapper.h" */ import "C" =20 diff --git a/storage_pool_events_cfuncs.go b/storage_pool_events_wrapper.go similarity index 97% rename from storage_pool_events_cfuncs.go rename to storage_pool_events_wrapper.go index 52ec553..0d99909 100644 --- a/storage_pool_events_cfuncs.go +++ b/storage_pool_events_wrapper.go @@ -32,8 +32,8 @@ package libvirt #include #include #include "storage_pool_compat.h" -#include "storage_pool_events_cfuncs.h" -#include "callbacks_cfuncs.h" +#include "storage_pool_events_wrapper.h" +#include "callbacks_wrapper.h" #include =20 extern void storagePoolEventLifecycleCallback(virConnectPtr, virStoragePoo= lPtr, int, int, int); diff --git a/storage_pool_events_cfuncs.h b/storage_pool_events_wrapper.h similarity index 91% rename from storage_pool_events_cfuncs.h rename to storage_pool_events_wrapper.h index 0087d6f..c8a10c9 100644 --- a/storage_pool_events_cfuncs.h +++ b/storage_pool_events_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_STORAGE_POOL_EVENTS_CFUNCS_H__ -#define LIBVIRT_GO_STORAGE_POOL_EVENTS_CFUNCS_H__ +#ifndef LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ +#define LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ =20 void storagePoolEventLifecycleCallback_cgo(virConnectPtr c, virStoragePool= Ptr d, int event, int detail, void* data); @@ -37,4 +37,4 @@ int virConnectStoragePoolEventRegisterAny_cgo(virConnectP= tr c, virStoragePoolPt long goCallbackId); =20 =20 -#endif /* LIBVIRT_GO_STORAGE_POOL_EVENTS_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ */ diff --git a/stream.go b/stream.go index fcd1cd3..b26e8e9 100644 --- a/stream.go +++ b/stream.go @@ -31,7 +31,7 @@ package libvirt #include #include #include -#include "stream_cfuncs.h" +#include "stream_wrapper.h" #include "stream_compat.h" */ import "C" diff --git a/stream_cfuncs.go b/stream_wrapper.go similarity index 99% rename from stream_cfuncs.go rename to stream_wrapper.go index 99cde0e..ea2e0cb 100644 --- a/stream_cfuncs.go +++ b/stream_wrapper.go @@ -33,7 +33,7 @@ package libvirt #include #include #include -#include "stream_cfuncs.h" +#include "stream_wrapper.h" =20 int streamSourceCallback(virStreamPtr st, char *cdata, size_t nbytes, int = callbackID); int streamSourceHoleCallback(virStreamPtr st, int *inData, long long *leng= th, int callbackID); diff --git a/stream_cfuncs.h b/stream_wrapper.h similarity index 93% rename from stream_cfuncs.h rename to stream_wrapper.h index d5696ec..778e457 100644 --- a/stream_cfuncs.h +++ b/stream_wrapper.h @@ -24,8 +24,8 @@ * */ =20 -#ifndef LIBVIRT_GO_STREAM_CFUNCS_H__ -#define LIBVIRT_GO_STREAM_CFUNCS_H__ +#ifndef LIBVIRT_GO_STREAM_WRAPPER_H__ +#define LIBVIRT_GO_STREAM_WRAPPER_H__ =20 int virStreamSendAll_cgo(virStreamPtr st, int callbackID); int virStreamRecvAll_cgo(virStreamPtr st, int callbackID); @@ -34,4 +34,4 @@ int virStreamSparseRecvAll_cgo(virStreamPtr st, int callb= ackID, int holeCallback =20 int virStreamEventAddCallback_cgo(virStreamPtr st, int events, int callbac= kID); =20 -#endif /* LIBVIRT_GO_STREAM_CFUNCS_H__ */ +#endif /* LIBVIRT_GO_STREAM_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747481758710.4776861907029; Mon, 16 Jul 2018 06:24:41 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F29F53003B3C; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A347CCA5EC; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 49A1B1853DA3; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOUbh027973 for ; Mon, 16 Jul 2018 09:24:30 -0400 Received: by smtp.corp.redhat.com (Postfix) id BEFA42027047; Mon, 16 Jul 2018 13:24:30 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 84D502026D65; Mon, 16 Jul 2018 13:24:29 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:50 +0100 Message-Id: <20180716132423.10354-5-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 04/37] Use "Wrapper" or "Helper" as suffix for C functions X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Mon, 16 Jul 2018 13:24:40 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Instead of using "_cgo" for multiple scenarios, use "Wrapper" as suffix where a libvirt API is being wrapped, and "Helper" as a suffix where we are implementing a helper function (eg an event callback). Signed-off-by: Daniel P. Berrang=C3=A9 --- api_test.go | 2 +- callbacks.go | 4 +- callbacks_wrapper.go | 2 +- callbacks_wrapper.h | 2 +- connect.go | 6 +- connect_wrapper.go | 10 ++-- connect_wrapper.h | 4 +- domain_events.go | 100 ++++++++++++++++----------------- domain_events_wrapper.go | 50 ++++++++--------- domain_events_wrapper.h | 48 ++++++++-------- events.go | 6 +- events_wrapper.go | 6 +- events_wrapper.h | 6 +- network_events.go | 4 +- network_events_wrapper.go | 6 +- network_events_wrapper.h | 4 +- node_device_events.go | 8 +-- node_device_events_wrapper.go | 8 +-- node_device_events_wrapper.h | 6 +- qemu.go | 4 +- qemu_wrapper.go | 6 +- qemu_wrapper.h | 4 +- secret_events.go | 8 +-- secret_events_wrapper.go | 8 +-- secret_events_wrapper.h | 6 +- storage_pool_events.go | 8 +-- storage_pool_events_wrapper.go | 8 +-- storage_pool_events_wrapper.h | 6 +- stream.go | 10 ++-- stream_wrapper.go | 10 ++-- stream_wrapper.h | 10 ++-- 31 files changed, 185 insertions(+), 185 deletions(-) diff --git a/api_test.go b/api_test.go index 06938a6..ad94335 100644 --- a/api_test.go +++ b/api_test.go @@ -394,7 +394,7 @@ func ProcessFile(path string) []string { =20 defer file.Close() =20 - re, err :=3D regexp.Compile("C\\.((vir|VIR|LIBVIR)[a-zA-Z0-9_]+?)(Compat|= _cgo)?\\b") + re, err :=3D regexp.Compile("C\\.((vir|VIR|LIBVIR)[a-zA-Z0-9_]+?)(Compat|= Wrapper)?\\b") if err !=3D nil { panic(err) } diff --git a/callbacks.go b/callbacks.go index 05a755b..7b2d11b 100644 --- a/callbacks.go +++ b/callbacks.go @@ -40,13 +40,13 @@ package libvirt // // - Create a CGO function similar to the above function but with the // appropriate signature to be registered as a callback in C code -// (connErrCallback_cgo). Notably, it will have a void* argument +// (connErrCallbackHelper). Notably, it will have a void* argument // that should be cast to long to retrieve the callback ID. It // should be just a thin wrapper to transform the opaque argument to // a callback ID. // // - Create a CGO function which will be a wrapper around the C -// function to register the callback (virConnSetErrorFunc_cgo). Its +// function to register the callback (virConnSetErrorFuncWrapper). Its // only role is to transform a callback ID (long) to an opaque (void*) // and call the C function. // diff --git a/callbacks_wrapper.go b/callbacks_wrapper.go index 967aaab..64caf69 100644 --- a/callbacks_wrapper.go +++ b/callbacks_wrapper.go @@ -33,7 +33,7 @@ package libvirt #include "callbacks_wrapper.h" =20 extern void freeCallbackId(long); -void freeGoCallback_cgo(void* goCallbackId) { +void freeGoCallbackHelper(void* goCallbackId) { freeCallbackId((long)goCallbackId); } =20 diff --git a/callbacks_wrapper.h b/callbacks_wrapper.h index f37aba4..4b91f7a 100644 --- a/callbacks_wrapper.h +++ b/callbacks_wrapper.h @@ -27,6 +27,6 @@ #ifndef LIBVIRT_GO_CALLBACKS_WRAPPER_H__ #define LIBVIRT_GO_CALLBACKS_WRAPPER_H__ =20 -void freeGoCallback_cgo(void* goCallbackId); +void freeGoCallbackHelper(void* goCallbackId); =20 #endif /* LIBVIRT_GO_CALLBACKS_WRAPPER_H__ */ diff --git a/connect.go b/connect.go index 5c6d6ff..793e3c4 100644 --- a/connect.go +++ b/connect.go @@ -452,8 +452,8 @@ type CloseCallback func(conn *Connect, reason ConnectCl= oseReason) func (c *Connect) RegisterCloseCallback(callback CloseCallback) error { c.UnregisterCloseCallback() goCallbackId :=3D registerCallbackId(callback) - callbackPtr :=3D unsafe.Pointer(C.closeCallback_cgo) - res :=3D C.virConnectRegisterCloseCallback_cgo(c.ptr, C.virConnectCloseFu= nc(callbackPtr), C.long(goCallbackId)) + callbackPtr :=3D unsafe.Pointer(C.closeCallbackHelper) + res :=3D C.virConnectRegisterCloseCallbackHelper(c.ptr, C.virConnectClose= Func(callbackPtr), C.long(goCallbackId)) if res !=3D 0 { freeCallbackId(goCallbackId) return GetLastError() @@ -469,7 +469,7 @@ func (c *Connect) UnregisterCloseCallback() error { if connData.closeCallbackId =3D=3D nil { return nil } - callbackPtr :=3D unsafe.Pointer(C.closeCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.closeCallbackHelper) res :=3D C.virConnectUnregisterCloseCallback(c.ptr, C.virConnectCloseFunc= (callbackPtr)) if res !=3D 0 { return GetLastError() diff --git a/connect_wrapper.go b/connect_wrapper.go index a686e29..ec2da69 100644 --- a/connect_wrapper.go +++ b/connect_wrapper.go @@ -34,21 +34,21 @@ package libvirt #include "callbacks_wrapper.h" =20 extern void closeCallback(virConnectPtr, int, long); -void closeCallback_cgo(virConnectPtr conn, int reason, void *opaque) +void closeCallbackHelper(virConnectPtr conn, int reason, void *opaque) { closeCallback(conn, reason, (long)opaque); } =20 -int virConnectRegisterCloseCallback_cgo(virConnectPtr c, virConnectCloseFu= nc cb, long goCallbackId) +int virConnectRegisterCloseCallbackHelper(virConnectPtr c, virConnectClose= Func cb, long goCallbackId) { void *id =3D (void*)goCallbackId; - return virConnectRegisterCloseCallback(c, cb, id, freeGoCallback_cgo); + return virConnectRegisterCloseCallback(c, cb, id, freeGoCallbackHelper= ); } =20 #include =20 extern int connectAuthCallback(virConnectCredentialPtr, unsigned int, int); -int connectAuthCallback_cgo(virConnectCredentialPtr cred, unsigned int ncr= ed, void *cbdata) +int connectAuthCallbackHelper(virConnectCredentialPtr cred, unsigned int n= cred, void *cbdata) { int *callbackID =3D cbdata; =20 @@ -60,7 +60,7 @@ virConnectPtr virConnectOpenAuthWrap(const char *name, in= t *credtype, uint ncred virConnectAuth auth =3D { .credtype =3D credtype, .ncredtype =3D ncredtype, - .cb =3D connectAuthCallback_cgo, + .cb =3D connectAuthCallbackHelper, .cbdata =3D &callbackID, }; =20 diff --git a/connect_wrapper.h b/connect_wrapper.h index 5c59320..60374c7 100644 --- a/connect_wrapper.h +++ b/connect_wrapper.h @@ -26,8 +26,8 @@ =20 #ifndef LIBVIRT_GO_CONNECT_WRAPPER_H__ #define LIBVIRT_GO_CONNECT_WRAPPER_H__ -void closeCallback_cgo(virConnectPtr conn, int reason, void *opaque); -int virConnectRegisterCloseCallback_cgo(virConnectPtr c, virConnectCloseFu= nc cb, long goCallbackId); +void closeCallbackHelper(virConnectPtr conn, int reason, void *opaque); +int virConnectRegisterCloseCallbackHelper(virConnectPtr c, virConnectClose= Func cb, long goCallbackId); =20 virConnectPtr virConnectOpenAuthWrap(const char *name, int *credtype, uint= ncredtype, int callbackID, unsigned int flags); =20 diff --git a/domain_events.go b/domain_events.go index 6d4ff24..5d21b01 100644 --- a/domain_events.go +++ b/domain_events.go @@ -963,12 +963,12 @@ func domainEventBlockThresholdCallback(c C.virConnect= Ptr, d C.virDomainPtr, dev func (c *Connect) DomainEventLifecycleRegister(dom *Domain, callback Domai= nEventLifecycleCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventLifecycleCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventLifecycleCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_LIFECYCLE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -982,12 +982,12 @@ func (c *Connect) DomainEventLifecycleRegister(dom *D= omain, callback DomainEvent func (c *Connect) DomainEventRebootRegister(dom *Domain, callback DomainEv= entGenericCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventGenericCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventGenericCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_REBOOT, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1001,12 +1001,12 @@ func (c *Connect) DomainEventRebootRegister(dom *Do= main, callback DomainEventGen func (c *Connect) DomainEventRTCChangeRegister(dom *Domain, callback Domai= nEventRTCChangeCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventRTCChangeCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventRTCChangeCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_RTC_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1020,12 +1020,12 @@ func (c *Connect) DomainEventRTCChangeRegister(dom = *Domain, callback DomainEvent func (c *Connect) DomainEventWatchdogRegister(dom *Domain, callback Domain= EventWatchdogCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventWatchdogCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventWatchdogCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_WATCHDOG, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1039,12 +1039,12 @@ func (c *Connect) DomainEventWatchdogRegister(dom *= Domain, callback DomainEventW func (c *Connect) DomainEventIOErrorRegister(dom *Domain, callback DomainE= ventIOErrorCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventIOErrorCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventIOErrorCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_IO_ERROR, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1058,12 +1058,12 @@ func (c *Connect) DomainEventIOErrorRegister(dom *D= omain, callback DomainEventIO func (c *Connect) DomainEventGraphicsRegister(dom *Domain, callback Domain= EventGraphicsCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventGraphicsCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventGraphicsCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_GRAPHICS, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1077,12 +1077,12 @@ func (c *Connect) DomainEventGraphicsRegister(dom *= Domain, callback DomainEventG func (c *Connect) DomainEventIOErrorReasonRegister(dom *Domain, callback D= omainEventIOErrorReasonCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventIOErrorReasonCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventIOErrorReasonCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1096,12 +1096,12 @@ func (c *Connect) DomainEventIOErrorReasonRegister(= dom *Domain, callback DomainE func (c *Connect) DomainEventControlErrorRegister(dom *Domain, callback Do= mainEventGenericCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventGenericCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventGenericCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_CONTROL_ERROR, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1115,12 +1115,12 @@ func (c *Connect) DomainEventControlErrorRegister(d= om *Domain, callback DomainEv func (c *Connect) DomainEventBlockJobRegister(dom *Domain, callback Domain= EventBlockJobCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventBlockJobCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventBlockJobCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BLOCK_JOB, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1134,12 +1134,12 @@ func (c *Connect) DomainEventBlockJobRegister(dom *= Domain, callback DomainEventB func (c *Connect) DomainEventDiskChangeRegister(dom *Domain, callback Doma= inEventDiskChangeCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventDiskChangeCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventDiskChangeCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DISK_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1153,12 +1153,12 @@ func (c *Connect) DomainEventDiskChangeRegister(dom= *Domain, callback DomainEven func (c *Connect) DomainEventTrayChangeRegister(dom *Domain, callback Doma= inEventTrayChangeCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventTrayChangeCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventTrayChangeCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_TRAY_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1172,12 +1172,12 @@ func (c *Connect) DomainEventTrayChangeRegister(dom= *Domain, callback DomainEven func (c *Connect) DomainEventPMWakeupRegister(dom *Domain, callback Domain= EventPMWakeupCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventPMWakeupCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventPMWakeupCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_PMWAKEUP, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1191,12 +1191,12 @@ func (c *Connect) DomainEventPMWakeupRegister(dom *= Domain, callback DomainEventP func (c *Connect) DomainEventPMSuspendRegister(dom *Domain, callback Domai= nEventPMSuspendCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventPMSuspendCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventPMSuspendCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_PMSUSPEND, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1210,12 +1210,12 @@ func (c *Connect) DomainEventPMSuspendRegister(dom = *Domain, callback DomainEvent func (c *Connect) DomainEventBalloonChangeRegister(dom *Domain, callback D= omainEventBalloonChangeCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventBalloonChangeCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventBalloonChangeCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1229,12 +1229,12 @@ func (c *Connect) DomainEventBalloonChangeRegister(= dom *Domain, callback DomainE func (c *Connect) DomainEventPMSuspendDiskRegister(dom *Domain, callback D= omainEventPMSuspendDiskCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventPMSuspendDiskCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventPMSuspendDiskCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1248,12 +1248,12 @@ func (c *Connect) DomainEventPMSuspendDiskRegister(= dom *Domain, callback DomainE func (c *Connect) DomainEventDeviceRemovedRegister(dom *Domain, callback D= omainEventDeviceRemovedCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventDeviceRemovedCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventDeviceRemovedCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1267,12 +1267,12 @@ func (c *Connect) DomainEventDeviceRemovedRegister(= dom *Domain, callback DomainE func (c *Connect) DomainEventBlockJob2Register(dom *Domain, callback Domai= nEventBlockJobCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventBlockJobCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventBlockJobCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BLOCK_JOB_2, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1286,12 +1286,12 @@ func (c *Connect) DomainEventBlockJob2Register(dom = *Domain, callback DomainEvent func (c *Connect) DomainEventTunableRegister(dom *Domain, callback DomainE= ventTunableCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventTunableCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventTunableCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_TUNABLE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1305,12 +1305,12 @@ func (c *Connect) DomainEventTunableRegister(dom *D= omain, callback DomainEventTu func (c *Connect) DomainEventAgentLifecycleRegister(dom *Domain, callback = DomainEventAgentLifecycleCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventAgentLifecycleCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventAgentLifecycleCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1324,12 +1324,12 @@ func (c *Connect) DomainEventAgentLifecycleRegister= (dom *Domain, callback Domain func (c *Connect) DomainEventDeviceAddedRegister(dom *Domain, callback Dom= ainEventDeviceAddedCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventDeviceAddedCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventDeviceAddedCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DEVICE_ADDED, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1343,12 +1343,12 @@ func (c *Connect) DomainEventDeviceAddedRegister(do= m *Domain, callback DomainEve func (c *Connect) DomainEventMigrationIterationRegister(dom *Domain, callb= ack DomainEventMigrationIterationCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventMigrationIterationCallback_c= go) + callbackPtr :=3D unsafe.Pointer(C.domainEventMigrationIterationCallbackHe= lper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_MIGRATION_ITERATION, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1362,12 +1362,12 @@ func (c *Connect) DomainEventMigrationIterationRegi= ster(dom *Domain, callback Do func (c *Connect) DomainEventJobCompletedRegister(dom *Domain, callback Do= mainEventJobCompletedCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventJobCompletedCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventJobCompletedCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_JOB_COMPLETED, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1381,12 +1381,12 @@ func (c *Connect) DomainEventJobCompletedRegister(d= om *Domain, callback DomainEv func (c *Connect) DomainEventDeviceRemovalFailedRegister(dom *Domain, call= back DomainEventDeviceRemovalFailedCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventDeviceRemovalFailedCallback_= cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventDeviceRemovalFailedCallbackH= elper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1400,12 +1400,12 @@ func (c *Connect) DomainEventDeviceRemovalFailedReg= ister(dom *Domain, callback D func (c *Connect) DomainEventMetadataChangeRegister(dom *Domain, callback = DomainEventMetadataChangeCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventMetadataChangeCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventMetadataChangeCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_METADATA_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -1419,12 +1419,12 @@ func (c *Connect) DomainEventMetadataChangeRegister= (dom *Domain, callback Domain func (c *Connect) DomainEventBlockThresholdRegister(dom *Domain, callback = DomainEventBlockThresholdCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainEventBlockThresholdCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainEventBlockThresholdCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainEventRegisterAny_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD, C.virConnectDomainEventGenericCallback(callbackPtr), C.long(goCallBackId)) diff --git a/domain_events_wrapper.go b/domain_events_wrapper.go index ad0f803..799945b 100644 --- a/domain_events_wrapper.go +++ b/domain_events_wrapper.go @@ -35,34 +35,34 @@ package libvirt #include =20 extern void domainEventLifecycleCallback(virConnectPtr, virDomainPtr, int,= int, int); -void domainEventLifecycleCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventLifecycleCallbackHelper(virConnectPtr c, virDomainPtr d, int event, int detail, void *data) { domainEventLifecycleCallback(c, d, event, detail, (int)(intptr_t)data); } =20 extern void domainEventGenericCallback(virConnectPtr, virDomainPtr, int); -void domainEventGenericCallback_cgo(virConnectPtr c, virDomainPtr d, void = *data) +void domainEventGenericCallbackHelper(virConnectPtr c, virDomainPtr d, voi= d *data) { domainEventGenericCallback(c, d, (int)(intptr_t)data); } =20 extern void domainEventRTCChangeCallback(virConnectPtr, virDomainPtr, long= long, int); -void domainEventRTCChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventRTCChangeCallbackHelper(virConnectPtr c, virDomainPtr d, long long utcoffset, void *data) { domainEventRTCChangeCallback(c, d, utcoffset, (int)(intptr_t)data); } =20 extern void domainEventWatchdogCallback(virConnectPtr, virDomainPtr, int, = int); -void domainEventWatchdogCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventWatchdogCallbackHelper(virConnectPtr c, virDomainPtr d, int action, void *data) { domainEventWatchdogCallback(c, d, action, (int)(intptr_t)data); } =20 extern void domainEventIOErrorCallback(virConnectPtr, virDomainPtr, const = char *, const char *, int, int); -void domainEventIOErrorCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventIOErrorCallbackHelper(virConnectPtr c, virDomainPtr d, const char *srcPath, const char *devAli= as, int action, void *data) { @@ -72,7 +72,7 @@ void domainEventIOErrorCallback_cgo(virConnectPtr c, virD= omainPtr d, extern void domainEventGraphicsCallback(virConnectPtr, virDomainPtr, int, = const virDomainEventGraphicsAddress *, const virDomainEventGraphicsAddres= s *, const char *, const virDomainEventGraphicsSubjec= t *, int); -void domainEventGraphicsCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventGraphicsCallbackHelper(virConnectPtr c, virDomainPtr d, int phase, const virDomainEventGraphic= sAddress *local, const virDomainEventGraphicsAddress *r= emote, const char *authScheme, @@ -83,7 +83,7 @@ void domainEventGraphicsCallback_cgo(virConnectPtr c, vir= DomainPtr d, =20 extern void domainEventIOErrorReasonCallback(virConnectPtr, virDomainPtr, = const char *, const char *, int, const char *, int); -void domainEventIOErrorReasonCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventIOErrorReasonCallbackHelper(virConnectPtr c, virDomainPtr = d, const char *srcPath, const char *= devAlias, int action, const char *reason, v= oid *data) { @@ -91,7 +91,7 @@ void domainEventIOErrorReasonCallback_cgo(virConnectPtr c= , virDomainPtr d, } =20 extern void domainEventBlockJobCallback(virConnectPtr, virDomainPtr, const= char *, int, int, int); -void domainEventBlockJobCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventBlockJobCallbackHelper(virConnectPtr c, virDomainPtr d, const char *disk, int type, int status= , void *data) { domainEventBlockJobCallback(c, d, disk, type, status, (int)(intptr_t)d= ata); @@ -99,7 +99,7 @@ void domainEventBlockJobCallback_cgo(virConnectPtr c, vir= DomainPtr d, =20 extern void domainEventDiskChangeCallback(virConnectPtr, virDomainPtr, con= st char *, const char *, const char *, int, int); -void domainEventDiskChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventDiskChangeCallbackHelper(virConnectPtr c, virDomainPtr d, const char *oldSrcPath, const char *= newSrcPath, const char *devAlias, int reason, vo= id *data) { @@ -107,49 +107,49 @@ void domainEventDiskChangeCallback_cgo(virConnectPtr = c, virDomainPtr d, } =20 extern void domainEventTrayChangeCallback(virConnectPtr, virDomainPtr, con= st char *, int, int); -void domainEventTrayChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventTrayChangeCallbackHelper(virConnectPtr c, virDomainPtr d, const char *devAlias, int reason, vo= id *data) { domainEventTrayChangeCallback(c, d, devAlias, reason, (int)(intptr_t)d= ata); } =20 extern void domainEventPMSuspendCallback(virConnectPtr, virDomainPtr, int,= int); -void domainEventPMSuspendCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventPMSuspendCallbackHelper(virConnectPtr c, virDomainPtr d, int reason, void *data) { domainEventPMSuspendCallback(c, d, reason, (int)(intptr_t)data); } =20 extern void domainEventPMWakeupCallback(virConnectPtr, virDomainPtr, int, = int); -void domainEventPMWakeupCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventPMWakeupCallbackHelper(virConnectPtr c, virDomainPtr d, int reason, void *data) { domainEventPMWakeupCallback(c, d, reason, (int)(intptr_t)data); } =20 extern void domainEventPMSuspendDiskCallback(virConnectPtr, virDomainPtr, = int, int); -void domainEventPMSuspendDiskCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventPMSuspendDiskCallbackHelper(virConnectPtr c, virDomainPtr = d, int reason, void *data) { domainEventPMSuspendDiskCallback(c, d, reason, (int)(intptr_t)data); } =20 extern void domainEventBalloonChangeCallback(virConnectPtr, virDomainPtr, = unsigned long long, int); -void domainEventBalloonChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventBalloonChangeCallbackHelper(virConnectPtr c, virDomainPtr = d, unsigned long long actual, void *= data) { domainEventBalloonChangeCallback(c, d, actual, (int)(intptr_t)data); } =20 extern void domainEventDeviceRemovedCallback(virConnectPtr, virDomainPtr, = const char *, int); -void domainEventDeviceRemovedCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventDeviceRemovedCallbackHelper(virConnectPtr c, virDomainPtr = d, const char *devAlias, void *data) { domainEventDeviceRemovedCallback(c, d, devAlias, (int)(intptr_t)data); } =20 extern void domainEventTunableCallback(virConnectPtr, virDomainPtr, virTyp= edParameterPtr, int, int); -void domainEventTunableCallback_cgo(virConnectPtr conn, +void domainEventTunableCallbackHelper(virConnectPtr conn, virDomainPtr dom, virTypedParameterPtr params, int nparams, @@ -159,7 +159,7 @@ void domainEventTunableCallback_cgo(virConnectPtr conn, } =20 extern void domainEventAgentLifecycleCallback(virConnectPtr, virDomainPtr,= int, int, int); -void domainEventAgentLifecycleCallback_cgo(virConnectPtr conn, +void domainEventAgentLifecycleCallbackHelper(virConnectPtr conn, virDomainPtr dom, int state, int reason, @@ -169,7 +169,7 @@ void domainEventAgentLifecycleCallback_cgo(virConnectPt= r conn, } =20 extern void domainEventDeviceAddedCallback(virConnectPtr, virDomainPtr, co= nst char *, int); -void domainEventDeviceAddedCallback_cgo(virConnectPtr conn, +void domainEventDeviceAddedCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *devAlias, void *opaque) @@ -178,7 +178,7 @@ void domainEventDeviceAddedCallback_cgo(virConnectPtr c= onn, } =20 extern void domainEventMigrationIterationCallback(virConnectPtr, virDomain= Ptr, int, int); -void domainEventMigrationIterationCallback_cgo(virConnectPtr conn, +void domainEventMigrationIterationCallbackHelper(virConnectPtr conn, virDomainPtr dom, int iteration, void *opaque) @@ -187,7 +187,7 @@ void domainEventMigrationIterationCallback_cgo(virConne= ctPtr conn, } =20 extern void domainEventJobCompletedCallback(virConnectPtr, virDomainPtr, v= irTypedParameterPtr, int, int); -void domainEventJobCompletedCallback_cgo(virConnectPtr conn, +void domainEventJobCompletedCallbackHelper(virConnectPtr conn, virDomainPtr dom, virTypedParameterPtr params, int nparams, @@ -197,7 +197,7 @@ void domainEventJobCompletedCallback_cgo(virConnectPtr = conn, } =20 extern void domainEventDeviceRemovalFailedCallback(virConnectPtr, virDomai= nPtr, const char *, int); -void domainEventDeviceRemovalFailedCallback_cgo(virConnectPtr conn, +void domainEventDeviceRemovalFailedCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *devAlias, void *opaque) @@ -206,7 +206,7 @@ void domainEventDeviceRemovalFailedCallback_cgo(virConn= ectPtr conn, } =20 extern void domainEventMetadataChangeCallback(virConnectPtr, virDomainPtr,= int, const char *, int); -void domainEventMetadataChangeCallback_cgo(virConnectPtr conn, +void domainEventMetadataChangeCallbackHelper(virConnectPtr conn, virDomainPtr dom, int type, const char *nsuri, @@ -216,7 +216,7 @@ void domainEventMetadataChangeCallback_cgo(virConnectPt= r conn, } =20 extern void domainEventBlockThresholdCallback(virConnectPtr, virDomainPtr,= const char *, const char *, unsigned long long, unsigned long long, int); -void domainEventBlockThresholdCallback_cgo(virConnectPtr conn, +void domainEventBlockThresholdCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *dev, const char *path, @@ -227,11 +227,11 @@ void domainEventBlockThresholdCallback_cgo(virConnect= Ptr conn, domainEventBlockThresholdCallback(conn, dom, dev, path, threshold, exc= ess, (int)(intptr_t)opaque); } =20 -int virConnectDomainEventRegisterAny_cgo(virConnectPtr c, virDomainPtr d, +int virConnectDomainEventRegisterAnyWrapper(virConnectPtr c, virDomainPtr= d, int eventID, virConnectDomainEven= tGenericCallback cb, long goCallbackId) { void* id =3D (void*)goCallbackId; - return virConnectDomainEventRegisterAny(c, d, eventID, cb, id, freeGoC= allback_cgo); + return virConnectDomainEventRegisterAny(c, d, eventID, cb, id, freeGoC= allbackHelper); } =20 */ diff --git a/domain_events_wrapper.h b/domain_events_wrapper.h index a0e494e..55cf48e 100644 --- a/domain_events_wrapper.h +++ b/domain_events_wrapper.h @@ -27,88 +27,88 @@ #ifndef LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ =20 -void domainEventLifecycleCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventLifecycleCallbackHelper(virConnectPtr c, virDomainPtr d, int event, int detail, void* data); =20 -void domainEventGenericCallback_cgo(virConnectPtr c, virDomainPtr d, void*= data); +void domainEventGenericCallbackHelper(virConnectPtr c, virDomainPtr d, voi= d* data); =20 -void domainEventRTCChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventRTCChangeCallbackHelper(virConnectPtr c, virDomainPtr d, long long utcoffset, void* data); =20 -void domainEventWatchdogCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventWatchdogCallbackHelper(virConnectPtr c, virDomainPtr d, int action, void* data); =20 -void domainEventIOErrorCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventIOErrorCallbackHelper(virConnectPtr c, virDomainPtr d, const char *srcPath, const char *devAli= as, int action, void* data); =20 -void domainEventGraphicsCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventGraphicsCallbackHelper(virConnectPtr c, virDomainPtr d, int phase, const virDomainEventGraphic= sAddress *local, const virDomainEventGraphicsAddress *r= emote, const char *authScheme, const virDomainEventGraphicsSubject *s= ubject, void* data); =20 -void domainEventIOErrorReasonCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventIOErrorReasonCallbackHelper(virConnectPtr c, virDomainPtr = d, const char *srcPath, const char *= devAlias, int action, const char *reason, v= oid* data); =20 -void domainEventBlockJobCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventBlockJobCallbackHelper(virConnectPtr c, virDomainPtr d, const char *disk, int type, int status= , void* data); =20 -void domainEventDiskChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventDiskChangeCallbackHelper(virConnectPtr c, virDomainPtr d, const char *oldSrcPath, const char *= newSrcPath, const char *devAlias, int reason, vo= id* data); =20 -void domainEventTrayChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventTrayChangeCallbackHelper(virConnectPtr c, virDomainPtr d, const char *devAlias, int reason, vo= id* data); =20 -void domainEventPMSuspendCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventPMSuspendCallbackHelper(virConnectPtr c, virDomainPtr d, int reason, void* data); =20 -void domainEventPMWakeupCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventPMWakeupCallbackHelper(virConnectPtr c, virDomainPtr d, int reason, void* data); =20 -void domainEventPMSuspendDiskCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventPMSuspendDiskCallbackHelper(virConnectPtr c, virDomainPtr = d, int reason, void* data); =20 -void domainEventBalloonChangeCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventBalloonChangeCallbackHelper(virConnectPtr c, virDomainPtr = d, unsigned long long actual, void* = data); =20 -void domainEventDeviceRemovedCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainEventDeviceRemovedCallbackHelper(virConnectPtr c, virDomainPtr = d, const char *devAlias, void* data); -void domainEventTunableCallback_cgo(virConnectPtr conn, +void domainEventTunableCallbackHelper(virConnectPtr conn, virDomainPtr dom, virTypedParameterPtr params, int nparams, void *opaque); -void domainEventAgentLifecycleCallback_cgo(virConnectPtr conn, +void domainEventAgentLifecycleCallbackHelper(virConnectPtr conn, virDomainPtr dom, int state, int reason, void *opaque); -void domainEventDeviceAddedCallback_cgo(virConnectPtr conn, +void domainEventDeviceAddedCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *devAlias, void *opaque); -void domainEventMigrationIterationCallback_cgo(virConnectPtr conn, +void domainEventMigrationIterationCallbackHelper(virConnectPtr conn, virDomainPtr dom, int iteration, void *opaque); -void domainEventJobCompletedCallback_cgo(virConnectPtr conn, +void domainEventJobCompletedCallbackHelper(virConnectPtr conn, virDomainPtr dom, virTypedParameterPtr params, int nparams, void *opaque); -void domainEventDeviceRemovalFailedCallback_cgo(virConnectPtr conn, +void domainEventDeviceRemovalFailedCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *devAlias, void *opaque); -void domainEventMetadataChangeCallback_cgo(virConnectPtr conn, +void domainEventMetadataChangeCallbackHelper(virConnectPtr conn, virDomainPtr dom, int type, const char *nsuri, void *opaque); -void domainEventBlockThresholdCallback_cgo(virConnectPtr conn, +void domainEventBlockThresholdCallbackHelper(virConnectPtr conn, virDomainPtr dom, const char *dev, const char *path, @@ -116,7 +116,7 @@ void domainEventBlockThresholdCallback_cgo(virConnectPt= r conn, unsigned long long excess, void *opaque); =20 -int virConnectDomainEventRegisterAny_cgo(virConnectPtr c, virDomainPtr d, +int virConnectDomainEventRegisterAnyWrapper(virConnectPtr c, virDomainPtr= d, int eventID, virConnectDomainEven= tGenericCallback cb, long goCallbackId); =20 diff --git a/events.go b/events.go index 74d480a..3f8d3a9 100644 --- a/events.go +++ b/events.go @@ -77,7 +77,7 @@ func eventHandleCallback(watch int, fd int, events int, c= allbackID int) { func EventAddHandle(fd int, events EventHandleType, callback EventHandleCa= llback) (int, error) { callbackID :=3D registerCallbackId(callback) =20 - ret :=3D C.virEventAddHandle_cgo((C.int)(fd), (C.int)(events), (C.int)(ca= llbackID)) + ret :=3D C.virEventAddHandleWrapper((C.int)(fd), (C.int)(events), (C.int)= (callbackID)) if ret =3D=3D -1 { return 0, GetLastError() } @@ -113,7 +113,7 @@ func eventTimeoutCallback(timer int, callbackID int) { func EventAddTimeout(freq int, callback EventTimeoutCallback) (int, error)= { callbackID :=3D registerCallbackId(callback) =20 - ret :=3D C.virEventAddTimeout_cgo((C.int)(freq), (C.int)(callbackID)) + ret :=3D C.virEventAddTimeoutWrapper((C.int)(freq), (C.int)(callbackID)) if ret =3D=3D -1 { return 0, GetLastError() } @@ -173,7 +173,7 @@ var eventLoopImpl EventLoop // See also https://libvirt.org/html/libvirt-libvirt-event.html#virEventRe= gisterImpl func EventRegisterImpl(impl EventLoop) { eventLoopImpl =3D impl - C.virEventRegisterImpl_cgo() + C.virEventRegisterImplWrapper() } =20 //export eventAddHandleFunc diff --git a/events_wrapper.go b/events_wrapper.go index d17b054..6e3416f 100644 --- a/events_wrapper.go +++ b/events_wrapper.go @@ -41,7 +41,7 @@ static void eventAddHandleHelper(int watch, int fd, int e= vents, void *opaque) eventHandleCallback(watch, fd, events, (int)(intptr_t)opaque); } =20 -int virEventAddHandle_cgo(int fd, int events, int callbackID) +int virEventAddHandleWrapper(int fd, int events, int callbackID) { return virEventAddHandle(fd, events, eventAddHandleHelper, (void *)(in= tptr_t)callbackID, NULL); } @@ -53,7 +53,7 @@ static void eventAddTimeoutHelper(int timer, void *opaque) eventTimeoutCallback(timer, (int)(intptr_t)opaque); } =20 -int virEventAddTimeout_cgo(int freq, int callbackID) +int virEventAddTimeoutWrapper(int freq, int callbackID) { return virEventAddTimeout(freq, eventAddTimeoutHelper, (void *)(intptr= _t)callbackID, NULL); } @@ -96,7 +96,7 @@ int eventRemoveTimeoutFuncHelper(int timer) } =20 =20 -void virEventRegisterImpl_cgo(void) +void virEventRegisterImplWrapper(void) { virEventRegisterImpl(eventAddHandleFuncHelper, eventUpdateHandleFuncHelper, diff --git a/events_wrapper.h b/events_wrapper.h index d3e78d8..8420909 100644 --- a/events_wrapper.h +++ b/events_wrapper.h @@ -27,9 +27,9 @@ #ifndef LIBVIRT_GO_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_EVENTS_WRAPPER_H__ =20 -int virEventAddHandle_cgo(int fd, int events, int callbackID); -int virEventAddTimeout_cgo(int freq, int callbackID); -void virEventRegisterImpl_cgo(void); +int virEventAddHandleWrapper(int fd, int events, int callbackID); +int virEventAddTimeoutWrapper(int freq, int callbackID); +void virEventRegisterImplWrapper(void); =20 void eventHandleCallbackInvoke(int watch, int fd, int events, uintptr_t ca= llback, uintptr_t opaque); void eventTimeoutCallbackInvoke(int timer, uintptr_t callback, uintptr_t o= paque); diff --git a/network_events.go b/network_events.go index 15b2f55..39cc62b 100644 --- a/network_events.go +++ b/network_events.go @@ -74,12 +74,12 @@ func (c *Connect) NetworkEventLifecycleRegister(net *Ne= twork, callback NetworkEv return 0, GetNotImplementedError("virConnectNetworkEventRegisterAny") } =20 - callbackPtr :=3D unsafe.Pointer(C.networkEventLifecycleCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.networkEventLifecycleCallbackHelper) var cnet C.virNetworkPtr if net !=3D nil { cnet =3D net.ptr } - ret :=3D C.virConnectNetworkEventRegisterAny_cgo(c.ptr, cnet, + ret :=3D C.virConnectNetworkEventRegisterAnyWrapper(c.ptr, cnet, C.VIR_NETWORK_EVENT_ID_LIFECYCLE, C.virConnectNetworkEventGenericCallback(callbackPtr), C.long(goCallBackId)) diff --git a/network_events_wrapper.go b/network_events_wrapper.go index 613e32b..ea892cf 100644 --- a/network_events_wrapper.go +++ b/network_events_wrapper.go @@ -37,20 +37,20 @@ package libvirt #include =20 extern void networkEventLifecycleCallback(virConnectPtr, virNetworkPtr, in= t, int, int); -void networkEventLifecycleCallback_cgo(virConnectPtr c, virNetworkPtr d, +void networkEventLifecycleCallbackHelper(virConnectPtr c, virNetworkPtr d, int event, int detail, void *data) { networkEventLifecycleCallback(c, d, event, detail, (int)(intptr_t)data= ); } =20 -int virConnectNetworkEventRegisterAny_cgo(virConnectPtr c, virNetworkPtr = d, +int virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, virNetworkP= tr d, int eventID, virConnectNetworkEve= ntGenericCallback cb, long goCallbackId) { void* id =3D (void*)goCallbackId; #if LIBVIR_VERSION_NUMBER < 1002001 assert(0); // Caller should have checked version #else - return virConnectNetworkEventRegisterAny(c, d, eventID, cb, id, freeGo= Callback_cgo); + return virConnectNetworkEventRegisterAny(c, d, eventID, cb, id, freeGo= CallbackHelper); #endif } =20 diff --git a/network_events_wrapper.h b/network_events_wrapper.h index 13ffce1..1b73369 100644 --- a/network_events_wrapper.h +++ b/network_events_wrapper.h @@ -27,10 +27,10 @@ #ifndef LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ =20 -void networkEventLifecycleCallback_cgo(virConnectPtr c, virNetworkPtr d, +void networkEventLifecycleCallbackHelper(virConnectPtr c, virNetworkPtr d, int event, int detail, void* data); =20 -int virConnectNetworkEventRegisterAny_cgo(virConnectPtr c, virNetworkPtr = d, +int virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, virNetworkP= tr d, int eventID, virConnectNetworkEve= ntGenericCallback cb, long goCallbackId); =20 diff --git a/node_device_events.go b/node_device_events.go index 01c2245..1be2c73 100644 --- a/node_device_events.go +++ b/node_device_events.go @@ -91,12 +91,12 @@ func (c *Connect) NodeDeviceEventLifecycleRegister(devi= ce *NodeDevice, callback } goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.nodeDeviceEventLifecycleCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.nodeDeviceEventLifecycleCallbackHelper) var cdevice C.virNodeDevicePtr if device !=3D nil { cdevice =3D device.ptr } - ret :=3D C.virConnectNodeDeviceEventRegisterAny_cgo(c.ptr, cdevice, + ret :=3D C.virConnectNodeDeviceEventRegisterAnyWrapper(c.ptr, cdevice, C.VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE, C.virConnectNodeDeviceEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -110,12 +110,12 @@ func (c *Connect) NodeDeviceEventLifecycleRegister(de= vice *NodeDevice, callback func (c *Connect) NodeDeviceEventUpdateRegister(device *NodeDevice, callba= ck NodeDeviceEventGenericCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.nodeDeviceEventGenericCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.nodeDeviceEventGenericCallbackHelper) var cdevice C.virNodeDevicePtr if device !=3D nil { cdevice =3D device.ptr } - ret :=3D C.virConnectNodeDeviceEventRegisterAny_cgo(c.ptr, cdevice, + ret :=3D C.virConnectNodeDeviceEventRegisterAnyWrapper(c.ptr, cdevice, C.VIR_NODE_DEVICE_EVENT_ID_UPDATE, C.virConnectNodeDeviceEventGenericCallback(callbackPtr), C.long(goCallBackId)) diff --git a/node_device_events_wrapper.go b/node_device_events_wrapper.go index a34fa6f..ff7b6e4 100644 --- a/node_device_events_wrapper.go +++ b/node_device_events_wrapper.go @@ -37,26 +37,26 @@ package libvirt #include =20 extern void nodeDeviceEventLifecycleCallback(virConnectPtr, virNodeDeviceP= tr, int, int, int); -void nodeDeviceEventLifecycleCallback_cgo(virConnectPtr c, virNodeDevicePt= r d, +void nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, virNodeDevice= Ptr d, int event, int detail, void *da= ta) { nodeDeviceEventLifecycleCallback(c, d, event, detail, (int)(intptr_t)d= ata); } =20 extern void nodeDeviceEventGenericCallback(virConnectPtr, virNodeDevicePtr= , int); -void nodeDeviceEventGenericCallback_cgo(virConnectPtr c, virNodeDevicePtr = d, void *data) +void nodeDeviceEventGenericCallbackHelper(virConnectPtr c, virNodeDevicePt= r d, void *data) { nodeDeviceEventGenericCallback(c, d, (int)(intptr_t)data); } =20 -int virConnectNodeDeviceEventRegisterAny_cgo(virConnectPtr c, virNodeDevi= cePtr d, +int virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, virNodeD= evicePtr d, int eventID, virConnectNodeD= eviceEventGenericCallback cb, long goCallbackId) { void* id =3D (void*)goCallbackId; #if LIBVIR_VERSION_NUMBER < 2002000 assert(0); // Caller should have checked version #else - return virConnectNodeDeviceEventRegisterAny(c, d, eventID, cb, id, fre= eGoCallback_cgo); + return virConnectNodeDeviceEventRegisterAny(c, d, eventID, cb, id, fre= eGoCallbackHelper); #endif } =20 diff --git a/node_device_events_wrapper.h b/node_device_events_wrapper.h index 38b1036..ae76b3e 100644 --- a/node_device_events_wrapper.h +++ b/node_device_events_wrapper.h @@ -27,12 +27,12 @@ #ifndef LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ =20 -void nodeDeviceEventLifecycleCallback_cgo(virConnectPtr c, virNodeDevicePt= r d, +void nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, virNodeDevice= Ptr d, int event, int detail, void* data); =20 -void nodeDeviceEventGenericCallback_cgo(virConnectPtr c, virNodeDevicePtr = d, void* data); +void nodeDeviceEventGenericCallbackHelper(virConnectPtr c, virNodeDevicePt= r d, void* data); =20 -int virConnectNodeDeviceEventRegisterAny_cgo(virConnectPtr c, virNodeDevi= cePtr d, +int virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, virNodeD= evicePtr d, int eventID, virConnectNodeDeviceEventGenericCallback cb, long goCallbackId); =20 diff --git a/qemu.go b/qemu.go index dd30a7d..b8679dc 100644 --- a/qemu.go +++ b/qemu.go @@ -160,12 +160,12 @@ func (c *Connect) DomainQemuMonitorEventRegister(dom = *Domain, event string, call defer C.free(unsafe.Pointer(cEvent)) goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainQemuMonitorEventCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.domainQemuMonitorEventCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } - ret :=3D C.virConnectDomainQemuMonitorEventRegister_cgo(c.ptr, cdom, + ret :=3D C.virConnectDomainQemuMonitorEventRegisterWrapper(c.ptr, cdom, cEvent, C.virConnectDomainQemuMonitorEventCallback(callbackPtr), C.long(goCallBackId), diff --git a/qemu_wrapper.go b/qemu_wrapper.go index 41fe0cf..bbd95cc 100644 --- a/qemu_wrapper.go +++ b/qemu_wrapper.go @@ -42,21 +42,21 @@ package libvirt =20 =20 extern void domainQemuMonitorEventCallback(virConnectPtr, virDomainPtr, co= nst char *, long long, unsigned int, const char *, int); -void domainQemuMonitorEventCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainQemuMonitorEventCallbackHelper(virConnectPtr c, virDomainPtr d, const char *event, long long secs, unsigned int micros, const char *details, void *data) { domainQemuMonitorEventCallback(c, d, event, secs, micros, details, (in= t)(intptr_t)data); } =20 -int virConnectDomainQemuMonitorEventRegister_cgo(virConnectPtr c, virDoma= inPtr d, +int virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr c, virD= omainPtr d, const char *event, vir= ConnectDomainQemuMonitorEventCallback cb, long goCallbackId, uns= igned int flags) { #if LIBVIR_VERSION_NUMBER < 1002003 assert(0); // Caller should have checked version #else void* id =3D (void*)goCallbackId; - return virConnectDomainQemuMonitorEventRegister(c, d, event, cb, id, f= reeGoCallback_cgo, flags); + return virConnectDomainQemuMonitorEventRegister(c, d, event, cb, id, f= reeGoCallbackHelper, flags); #endif } =20 diff --git a/qemu_wrapper.h b/qemu_wrapper.h index 4495cc4..9284256 100644 --- a/qemu_wrapper.h +++ b/qemu_wrapper.h @@ -27,11 +27,11 @@ #ifndef LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ =20 -void domainQemuMonitorEventCallback_cgo(virConnectPtr c, virDomainPtr d, +void domainQemuMonitorEventCallbackHelper(virConnectPtr c, virDomainPtr d, const char *event, long long secs, unsigned int micros, const char *details, void *data); =20 -int virConnectDomainQemuMonitorEventRegister_cgo(virConnectPtr c, virDoma= inPtr d, +int virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr c, virD= omainPtr d, const char *event, virConnectDomainQemuMonitorEventCallback cb, long goCallbackId, unsigned int flags); =20 diff --git a/secret_events.go b/secret_events.go index 92c86a2..0dd2708 100644 --- a/secret_events.go +++ b/secret_events.go @@ -91,12 +91,12 @@ func (c *Connect) SecretEventLifecycleRegister(secret *= Secret, callback SecretEv return 0, GetNotImplementedError("virConnectSecretEventRegisterAny") } =20 - callbackPtr :=3D unsafe.Pointer(C.secretEventLifecycleCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.secretEventLifecycleCallbackHelper) var csecret C.virSecretPtr if secret !=3D nil { csecret =3D secret.ptr } - ret :=3D C.virConnectSecretEventRegisterAny_cgo(c.ptr, csecret, + ret :=3D C.virConnectSecretEventRegisterAnyWrapper(c.ptr, csecret, C.VIR_SECRET_EVENT_ID_LIFECYCLE, C.virConnectSecretEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -113,12 +113,12 @@ func (c *Connect) SecretEventValueChangedRegister(sec= ret *Secret, callback Secre return 0, GetNotImplementedError("virConnectSecretEventRegisterAny") } =20 - callbackPtr :=3D unsafe.Pointer(C.secretEventGenericCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.secretEventGenericCallbackHelper) var csecret C.virSecretPtr if secret !=3D nil { csecret =3D secret.ptr } - ret :=3D C.virConnectSecretEventRegisterAny_cgo(c.ptr, csecret, + ret :=3D C.virConnectSecretEventRegisterAnyWrapper(c.ptr, csecret, C.VIR_SECRET_EVENT_ID_VALUE_CHANGED, C.virConnectSecretEventGenericCallback(callbackPtr), C.long(goCallBackId)) diff --git a/secret_events_wrapper.go b/secret_events_wrapper.go index 55d3394..3366065 100644 --- a/secret_events_wrapper.go +++ b/secret_events_wrapper.go @@ -37,27 +37,27 @@ package libvirt #include =20 extern void secretEventLifecycleCallback(virConnectPtr, virSecretPtr, int,= int, int); -void secretEventLifecycleCallback_cgo(virConnectPtr c, virSecretPtr d, +void secretEventLifecycleCallbackHelper(virConnectPtr c, virSecretPtr d, int event, int detail, void *data) { secretEventLifecycleCallback(c, d, event, detail, (int)(intptr_t)data); } =20 extern void secretEventGenericCallback(virConnectPtr, virSecretPtr, int); -void secretEventGenericCallback_cgo(virConnectPtr c, virSecretPtr d, +void secretEventGenericCallbackHelper(virConnectPtr c, virSecretPtr d, void *data) { secretEventGenericCallback(c, d, (int)(intptr_t)data); } =20 -int virConnectSecretEventRegisterAny_cgo(virConnectPtr c, virSecretPtr d, +int virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, virSecretPtr= d, int eventID, virConnectSecretEven= tGenericCallback cb, long goCallbackId) { void* id =3D (void*)goCallbackId; #if LIBVIR_VERSION_NUMBER < 3000000 assert(0); // Caller should have checked version #else - return virConnectSecretEventRegisterAny(c, d, eventID, cb, id, freeGoC= allback_cgo); + return virConnectSecretEventRegisterAny(c, d, eventID, cb, id, freeGoC= allbackHelper); #endif } =20 diff --git a/secret_events_wrapper.h b/secret_events_wrapper.h index 4ad299c..1b5b527 100644 --- a/secret_events_wrapper.h +++ b/secret_events_wrapper.h @@ -27,12 +27,12 @@ #ifndef LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ =20 -void secretEventLifecycleCallback_cgo(virConnectPtr c, virSecretPtr d, +void secretEventLifecycleCallbackHelper(virConnectPtr c, virSecretPtr d, int event, int detail, void* data); -void secretEventGenericCallback_cgo(virConnectPtr c, virSecretPtr d, +void secretEventGenericCallbackHelper(virConnectPtr c, virSecretPtr d, void* data); =20 -int virConnectSecretEventRegisterAny_cgo(virConnectPtr c, virSecretPtr d, +int virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, virSecretPtr= d, int eventID, virConnectSecretEven= tGenericCallback cb, long goCallbackId); =20 diff --git a/storage_pool_events.go b/storage_pool_events.go index 5be9191..cf98616 100644 --- a/storage_pool_events.go +++ b/storage_pool_events.go @@ -92,12 +92,12 @@ func (c *Connect) StoragePoolEventLifecycleRegister(poo= l *StoragePool, callback =20 goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.storagePoolEventLifecycleCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.storagePoolEventLifecycleCallbackHelper) var cpool C.virStoragePoolPtr if pool !=3D nil { cpool =3D pool.ptr } - ret :=3D C.virConnectStoragePoolEventRegisterAny_cgo(c.ptr, cpool, + ret :=3D C.virConnectStoragePoolEventRegisterAnyWrapper(c.ptr, cpool, C.VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE, C.virConnectStoragePoolEventGenericCallback(callbackPtr), C.long(goCallBackId)) @@ -115,12 +115,12 @@ func (c *Connect) StoragePoolEventRefreshRegister(poo= l *StoragePool, callback St =20 goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.storagePoolEventGenericCallback_cgo) + callbackPtr :=3D unsafe.Pointer(C.storagePoolEventGenericCallbackHelper) var cpool C.virStoragePoolPtr if pool !=3D nil { cpool =3D pool.ptr } - ret :=3D C.virConnectStoragePoolEventRegisterAny_cgo(c.ptr, cpool, + ret :=3D C.virConnectStoragePoolEventRegisterAnyWrapper(c.ptr, cpool, C.VIR_STORAGE_POOL_EVENT_ID_REFRESH, C.virConnectStoragePoolEventGenericCallback(callbackPtr), C.long(goCallBackId)) diff --git a/storage_pool_events_wrapper.go b/storage_pool_events_wrapper.go index 0d99909..9670440 100644 --- a/storage_pool_events_wrapper.go +++ b/storage_pool_events_wrapper.go @@ -37,27 +37,27 @@ package libvirt #include =20 extern void storagePoolEventLifecycleCallback(virConnectPtr, virStoragePoo= lPtr, int, int, int); -void storagePoolEventLifecycleCallback_cgo(virConnectPtr c, virStoragePool= Ptr d, +void storagePoolEventLifecycleCallbackHelper(virConnectPtr c, virStoragePo= olPtr d, int event, int detail, void *da= ta) { storagePoolEventLifecycleCallback(c, d, event, detail, (int)(intptr_t)= data); } =20 extern void storagePoolEventGenericCallback(virConnectPtr, virStoragePoolP= tr, int); -void storagePoolEventGenericCallback_cgo(virConnectPtr c, virStoragePoolPt= r d, +void storagePoolEventGenericCallbackHelper(virConnectPtr c, virStoragePool= Ptr d, void *data) { storagePoolEventGenericCallback(c, d, (int)(intptr_t)data); } =20 -int virConnectStoragePoolEventRegisterAny_cgo(virConnectPtr c, virStorage= PoolPtr d, +int virConnectStoragePoolEventRegisterAnyWrapper(virConnectPtr c, virStor= agePoolPtr d, int eventID, virConnectStora= gePoolEventGenericCallback cb, long goCallbackId) { #if LIBVIR_VERSION_NUMBER < 2000000 assert(0); // Caller should have checked version #else void* id =3D (void*)goCallbackId; - return virConnectStoragePoolEventRegisterAny(c, d, eventID, cb, id, fr= eeGoCallback_cgo); + return virConnectStoragePoolEventRegisterAny(c, d, eventID, cb, id, fr= eeGoCallbackHelper); #endif } =20 diff --git a/storage_pool_events_wrapper.h b/storage_pool_events_wrapper.h index c8a10c9..c82abb2 100644 --- a/storage_pool_events_wrapper.h +++ b/storage_pool_events_wrapper.h @@ -27,12 +27,12 @@ #ifndef LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ =20 -void storagePoolEventLifecycleCallback_cgo(virConnectPtr c, virStoragePool= Ptr d, +void storagePoolEventLifecycleCallbackHelper(virConnectPtr c, virStoragePo= olPtr d, int event, int detail, void* data); -void storagePoolEventGenericCallback_cgo(virConnectPtr c, virStoragePoolPt= r d, +void storagePoolEventGenericCallbackHelper(virConnectPtr c, virStoragePool= Ptr d, void* data); =20 -int virConnectStoragePoolEventRegisterAny_cgo(virConnectPtr c, virStorage= PoolPtr d, +int virConnectStoragePoolEventRegisterAnyWrapper(virConnectPtr c, virStor= agePoolPtr d, int eventID, virConnectStoragePoolEventGenericCallback cb, long goCallbackId); =20 diff --git a/stream.go b/stream.go index b26e8e9..1282aef 100644 --- a/stream.go +++ b/stream.go @@ -223,7 +223,7 @@ func (v *Stream) RecvAll(handler StreamSinkFunc) error { =20 callbackID :=3D registerCallbackId(handler) =20 - ret :=3D C.virStreamRecvAll_cgo(v.ptr, (C.int)(callbackID)) + ret :=3D C.virStreamRecvAllWrapper(v.ptr, (C.int)(callbackID)) freeCallbackId(callbackID) if ret =3D=3D -1 { return GetLastError() @@ -241,7 +241,7 @@ func (v *Stream) SparseRecvAll(handler StreamSinkFunc, = holeHandler StreamSinkHol callbackID :=3D registerCallbackId(handler) holeCallbackID :=3D registerCallbackId(holeHandler) =20 - ret :=3D C.virStreamSparseRecvAll_cgo(v.ptr, (C.int)(callbackID), (C.int)= (holeCallbackID)) + ret :=3D C.virStreamSparseRecvAllWrapper(v.ptr, (C.int)(callbackID), (C.i= nt)(holeCallbackID)) freeCallbackId(callbackID) freeCallbackId(holeCallbackID) if ret =3D=3D -1 { @@ -328,7 +328,7 @@ func (v *Stream) SendAll(handler StreamSourceFunc) erro= r { =20 callbackID :=3D registerCallbackId(handler) =20 - ret :=3D C.virStreamSendAll_cgo(v.ptr, (C.int)(callbackID)) + ret :=3D C.virStreamSendAllWrapper(v.ptr, (C.int)(callbackID)) freeCallbackId(callbackID) if ret =3D=3D -1 { return GetLastError() @@ -347,7 +347,7 @@ func (v *Stream) SparseSendAll(handler StreamSourceFunc= , holeHandler StreamSourc holeCallbackID :=3D registerCallbackId(holeHandler) skipCallbackID :=3D registerCallbackId(skipHandler) =20 - ret :=3D C.virStreamSparseSendAll_cgo(v.ptr, (C.int)(callbackID), (C.int)= (holeCallbackID), (C.int)(skipCallbackID)) + ret :=3D C.virStreamSparseSendAllWrapper(v.ptr, (C.int)(callbackID), (C.i= nt)(holeCallbackID), (C.int)(skipCallbackID)) freeCallbackId(callbackID) freeCallbackId(holeCallbackID) freeCallbackId(skipCallbackID) @@ -364,7 +364,7 @@ type StreamEventCallback func(*Stream, StreamEventType) func (v *Stream) EventAddCallback(events StreamEventType, callback StreamE= ventCallback) error { callbackID :=3D registerCallbackId(callback) =20 - ret :=3D C.virStreamEventAddCallback_cgo(v.ptr, (C.int)(events), (C.int)(= callbackID)) + ret :=3D C.virStreamEventAddCallbackWrapper(v.ptr, (C.int)(events), (C.in= t)(callbackID)) if ret =3D=3D -1 { return GetLastError() } diff --git a/stream_wrapper.go b/stream_wrapper.go index ea2e0cb..4e1c2c9 100644 --- a/stream_wrapper.go +++ b/stream_wrapper.go @@ -83,13 +83,13 @@ static int streamSinkHoleCallbackHelper(virStreamPtr st= , long long length, void return streamSinkHoleCallback(st, length, cbdata->holeCallbackID); } =20 -int virStreamSendAll_cgo(virStreamPtr st, int callbackID) +int virStreamSendAllWrapper(virStreamPtr st, int callbackID) { struct CallbackData cbdata =3D { .callbackID =3D callbackID }; return virStreamSendAll(st, streamSourceCallbackHelper, &cbdata); } =20 -int virStreamSparseSendAll_cgo(virStreamPtr st, int callbackID, int holeCa= llbackID, int skipCallbackID) +int virStreamSparseSendAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID, int skipCallbackID) { struct CallbackData cbdata =3D { .callbackID =3D callbackID, .holeCall= backID =3D holeCallbackID, .skipCallbackID =3D skipCallbackID }; #if LIBVIR_VERSION_NUMBER < 3004000 @@ -100,13 +100,13 @@ int virStreamSparseSendAll_cgo(virStreamPtr st, int c= allbackID, int holeCallback } =20 =20 -int virStreamRecvAll_cgo(virStreamPtr st, int callbackID) +int virStreamRecvAllWrapper(virStreamPtr st, int callbackID) { struct CallbackData cbdata =3D { .callbackID =3D callbackID }; return virStreamRecvAll(st, streamSinkCallbackHelper, &cbdata); } =20 -int virStreamSparseRecvAll_cgo(virStreamPtr st, int callbackID, int holeCa= llbackID) +int virStreamSparseRecvAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID) { struct CallbackData cbdata =3D { .callbackID =3D callbackID, .holeCall= backID =3D holeCallbackID }; #if LIBVIR_VERSION_NUMBER < 3004000 @@ -123,7 +123,7 @@ static void streamEventCallbackHelper(virStreamPtr st, = int events, void *opaque) streamEventCallback(st, events, (int)(intptr_t)opaque); } =20 -int virStreamEventAddCallback_cgo(virStreamPtr st, int events, int callbac= kID) +int virStreamEventAddCallbackWrapper(virStreamPtr st, int events, int call= backID) { return virStreamEventAddCallback(st, events, streamEventCallbackHelper= , (void *)(intptr_t)callbackID, NULL); } diff --git a/stream_wrapper.h b/stream_wrapper.h index 778e457..c064423 100644 --- a/stream_wrapper.h +++ b/stream_wrapper.h @@ -27,11 +27,11 @@ #ifndef LIBVIRT_GO_STREAM_WRAPPER_H__ #define LIBVIRT_GO_STREAM_WRAPPER_H__ =20 -int virStreamSendAll_cgo(virStreamPtr st, int callbackID); -int virStreamRecvAll_cgo(virStreamPtr st, int callbackID); -int virStreamSparseSendAll_cgo(virStreamPtr st, int callbackID, int holeCa= llbackID, int skipCallbackID); -int virStreamSparseRecvAll_cgo(virStreamPtr st, int callbackID, int holeCa= llbackID); +int virStreamSendAllWrapper(virStreamPtr st, int callbackID); +int virStreamRecvAllWrapper(virStreamPtr st, int callbackID); +int virStreamSparseSendAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID, int skipCallbackID); +int virStreamSparseRecvAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID); =20 -int virStreamEventAddCallback_cgo(virStreamPtr st, int events, int callbac= kID); +int virStreamEventAddCallbackWrapper(virStreamPtr st, int events, int call= backID); =20 #endif /* LIBVIRT_GO_STREAM_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747486610930.7414250467309; Mon, 16 Jul 2018 06:24:46 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 276083082148; Mon, 16 Jul 2018 13:24:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D2311CA5F6; Mon, 16 Jul 2018 13:24:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 81A3C4A465; Mon, 16 Jul 2018 13:24:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOVO2027986 for ; Mon, 16 Jul 2018 09:24:32 -0400 Received: by smtp.corp.redhat.com (Postfix) id DBA5A2026D76; Mon, 16 Jul 2018 13:24:31 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 18A9B2026D65; Mon, 16 Jul 2018 13:24:30 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:51 +0100 Message-Id: <20180716132423.10354-6-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 05/37] Change "Compat" suffix to "Wrapper" to have standard naming scheme X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Mon, 16 Jul 2018 13:24:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 There are many reasons why we need to create wrappers around the native libvirt public APIs, and multiple reasons may apply to the same function. Using a standard "Wrapper" suffix will clarify it. Signed-off-by: Daniel P. Berrang=C3=A9 --- api_test.go | 2 +- connect.go | 28 ++++++++--------- connect_compat.go | 28 ++++++++--------- connect_compat.h | 28 ++++++++--------- domain.go | 64 +++++++++++++++++++------------------- domain_compat.go | 62 ++++++++++++++++++------------------ domain_compat.h | 62 ++++++++++++++++++------------------ lxc.go | 2 +- lxc_compat.go | 2 +- lxc_compat.h | 2 +- network.go | 4 +-- network_compat.go | 6 ++-- network_compat.h | 6 ++-- network_events.go | 2 +- node_device_compat.go | 2 +- node_device_compat.h | 2 +- node_device_events.go | 2 +- nwfilter_binding.go | 12 +++---- nwfilter_binding_compat.go | 12 +++---- nwfilter_binding_compat.h | 12 +++---- qemu.go | 2 +- qemu_compat.go | 2 +- qemu_compat.h | 2 +- secret_compat.go | 2 +- secret_compat.h | 2 +- secret_events.go | 2 +- storage_pool_compat.go | 2 +- storage_pool_compat.h | 2 +- storage_pool_events.go | 2 +- storage_volume.go | 2 +- storage_volume_compat.go | 2 +- storage_volume_compat.h | 2 +- stream.go | 6 ++-- stream_compat.go | 6 ++-- stream_compat.h | 6 ++-- 35 files changed, 191 insertions(+), 191 deletions(-) diff --git a/api_test.go b/api_test.go index ad94335..a16a1eb 100644 --- a/api_test.go +++ b/api_test.go @@ -394,7 +394,7 @@ func ProcessFile(path string) []string { =20 defer file.Close() =20 - re, err :=3D regexp.Compile("C\\.((vir|VIR|LIBVIR)[a-zA-Z0-9_]+?)(Compat|= Wrapper)?\\b") + re, err :=3D regexp.Compile("C\\.((vir|VIR|LIBVIR)[a-zA-Z0-9_]+?)(Wrapper= )?\\b") if err !=3D nil { panic(err) } diff --git a/connect.go b/connect.go index 793e3c4..98ab7ab 100644 --- a/connect.go +++ b/connect.go @@ -833,7 +833,7 @@ func (c *Connect) DomainDefineXMLFlags(xmlConfig string= , flags DomainDefineFlags } cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virDomainDefineXMLFlagsCompat(c.ptr, cXml, C.uint(flags)) + ptr :=3D C.virDomainDefineXMLFlagsWrapper(c.ptr, cXml, C.uint(flags)) if ptr =3D=3D nil { return nil, GetLastError() } @@ -1210,7 +1210,7 @@ func (c *Connect) LookupStoragePoolByTargetPath(path = string) (*StoragePool, erro } cPath :=3D C.CString(path) defer C.free(unsafe.Pointer(cPath)) - ptr :=3D C.virStoragePoolLookupByTargetPathCompat(c.ptr, cPath) + ptr :=3D C.virStoragePoolLookupByTargetPathWrapper(c.ptr, cPath) if ptr =3D=3D nil { return nil, GetLastError() } @@ -1274,7 +1274,7 @@ func (c *Connect) LookupNWFilterBindingByPortDev(name= string) (*NWFilterBinding, } cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virNWFilterBindingLookupByPortDevCompat(c.ptr, cName) + ptr :=3D C.virNWFilterBindingLookupByPortDevWrapper(c.ptr, cName) if ptr =3D=3D nil { return nil, GetLastError() } @@ -1478,7 +1478,7 @@ func (c *Connect) ListAllNWFilterBindings(flags uint3= 2) ([]NWFilterBinding, erro if C.LIBVIR_VERSION_NUMBER < 4005000 { return []NWFilterBinding{}, GetNotImplementedError("virConnectListAllNWF= ilterBindings") } - numNWFilters :=3D C.virConnectListAllNWFilterBindingsCompat(c.ptr, (**C.v= irNWFilterBindingPtr)(&cList), C.uint(flags)) + numNWFilters :=3D C.virConnectListAllNWFilterBindingsWrapper(c.ptr, (**C.= virNWFilterBindingPtr)(&cList), C.uint(flags)) if numNWFilters =3D=3D -1 { return nil, GetLastError() } @@ -1601,7 +1601,7 @@ func (c *Connect) AllocPages(pageSizes map[int]int64,= startCell int, cellCount u i++ } =20 - ret :=3D C.virNodeAllocPagesCompat(c.ptr, C.uint(len(pageSizes)), (*C.uin= t)(unsafe.Pointer(&cpages)), + ret :=3D C.virNodeAllocPagesWrapper(c.ptr, C.uint(len(pageSizes)), (*C.ui= nt)(unsafe.Pointer(&cpages)), (*C.ulonglong)(unsafe.Pointer(&ccounts)), C.int(startCell), C.uint(cellC= ount), C.uint(flags)) if ret =3D=3D -1 { return 0, GetLastError() @@ -1730,7 +1730,7 @@ func (c *Connect) GetFreePages(pageSizes []uint64, st= artCell int, maxCells uint, cpageSizes[i] =3D C.uint(pageSizes[i]) } =20 - ret :=3D C.virNodeGetFreePagesCompat(c.ptr, C.uint(len(pageSizes)), (*C.u= int)(unsafe.Pointer(&cpageSizes)), C.int(startCell), + ret :=3D C.virNodeGetFreePagesWrapper(c.ptr, C.uint(len(pageSizes)), (*C.= uint)(unsafe.Pointer(&cpageSizes)), C.int(startCell), C.uint(maxCells), (*C.ulonglong)(unsafe.Pointer(&ccounts)), C.uint(flags= )) if ret =3D=3D -1 { return []uint64{}, GetLastError() @@ -2013,7 +2013,7 @@ func (c *Connect) BaselineHypervisorCPU(emulator stri= ng, arch string, machine st defer C.free(unsafe.Pointer(cxmlCPUs[i])) } =20 - ret :=3D C.virConnectBaselineHypervisorCPUCompat(c.ptr, cemulator, carch,= cmachine, cvirttype, + ret :=3D C.virConnectBaselineHypervisorCPUWrapper(c.ptr, cemulator, carch= , cmachine, cvirttype, &cxmlCPUs[0], C.uint(len(xmlCPUs)), C.uint(flags)) if ret =3D=3D nil { return "", GetLastError() @@ -2064,7 +2064,7 @@ func (c *Connect) CompareHypervisorCPU(emulator strin= g, arch string, machine str cxmlDesc :=3D C.CString(xmlDesc) defer C.free(unsafe.Pointer(cxmlDesc)) =20 - ret :=3D C.virConnectCompareHypervisorCPUCompat(c.ptr, cemulator, carch, = cmachine, cvirttype, cxmlDesc, C.uint(flags)) + ret :=3D C.virConnectCompareHypervisorCPUWrapper(c.ptr, cemulator, carch,= cmachine, cvirttype, cxmlDesc, C.uint(flags)) if ret =3D=3D C.VIR_CPU_COMPARE_ERROR { return CPU_COMPARE_ERROR, GetLastError() } @@ -2155,7 +2155,7 @@ func (c *Connect) GetDomainCapabilities(emulatorbin s= tring, arch string, machine defer C.free(unsafe.Pointer(cvirttype)) } =20 - ret :=3D C.virConnectGetDomainCapabilitiesCompat(c.ptr, cemulatorbin, car= ch, cmachine, cvirttype, C.uint(flags)) + ret :=3D C.virConnectGetDomainCapabilitiesWrapper(c.ptr, cemulatorbin, ca= rch, cmachine, cvirttype, C.uint(flags)) if ret =3D=3D nil { return "", GetLastError() } @@ -2674,15 +2674,15 @@ func (c *Connect) GetAllDomainStats(doms []*Domain,= statsTypes DomainStatsTypes, cdoms[i] =3D doms[i].ptr } =20 - ret =3D C.virDomainListGetStatsCompat(&cdoms[0], C.uint(statsTypes), &cs= tats, C.uint(flags)) + ret =3D C.virDomainListGetStatsWrapper(&cdoms[0], C.uint(statsTypes), &c= stats, C.uint(flags)) } else { - ret =3D C.virConnectGetAllDomainStatsCompat(c.ptr, C.uint(statsTypes), &= cstats, C.uint(flags)) + ret =3D C.virConnectGetAllDomainStatsWrapper(c.ptr, C.uint(statsTypes), = &cstats, C.uint(flags)) } if ret =3D=3D -1 { return []DomainStats{}, GetLastError() } =20 - defer C.virDomainStatsRecordListFreeCompat(cstats) + defer C.virDomainStatsRecordListFreeWrapper(cstats) =20 stats :=3D make([]DomainStats, ret) for i :=3D 0; i < int(ret); i++ { @@ -2849,7 +2849,7 @@ func (c *Connect) GetSEVInfo(flags uint32) (*NodeSEVP= arameters, error) { var cparams *C.virTypedParameter var nparams C.int =20 - ret :=3D C.virNodeGetSEVInfoCompat(c.ptr, (*C.virTypedParameterPtr)(unsaf= e.Pointer(&cparams)), &nparams, C.uint(flags)) + ret :=3D C.virNodeGetSEVInfoWrapper(c.ptr, (*C.virTypedParameterPtr)(unsa= fe.Pointer(&cparams)), &nparams, C.uint(flags)) if ret =3D=3D -1 { return nil, GetLastError() } @@ -2871,7 +2871,7 @@ func (c *Connect) NWFilterBindingCreateXML(xmlConfig = string, flags uint32) (*NWF } cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virNWFilterBindingCreateXMLCompat(c.ptr, cXml, C.uint(flags)) + ptr :=3D C.virNWFilterBindingCreateXMLWrapper(c.ptr, cXml, C.uint(flags)) if ptr =3D=3D nil { return nil, GetLastError() } diff --git a/connect_compat.go b/connect_compat.go index 6220eef..1ecbef2 100644 --- a/connect_compat.go +++ b/connect_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "connect_compat.h" =20 -int virNodeGetFreePagesCompat(virConnectPtr conn, +int virNodeGetFreePagesWrapper(virConnectPtr conn, unsigned int npages, unsigned int *pages, int startcell, @@ -47,7 +47,7 @@ int virNodeGetFreePagesCompat(virConnectPtr conn, #endif } =20 -char * virConnectGetDomainCapabilitiesCompat(virConnectPtr conn, +char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, const char *emulatorbin, const char *arch, const char *machine, @@ -61,7 +61,7 @@ char * virConnectGetDomainCapabilitiesCompat(virConnectPt= r conn, #endif } =20 -int virConnectGetAllDomainStatsCompat(virConnectPtr conn, +int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, unsigned int stats, virDomainStatsRecordPtr **retStats, unsigned int flags) @@ -73,7 +73,7 @@ int virConnectGetAllDomainStatsCompat(virConnectPtr conn, #endif } =20 -int virDomainListGetStatsCompat(virDomainPtr *doms, +int virDomainListGetStatsWrapper(virDomainPtr *doms, unsigned int stats, virDomainStatsRecordPtr **retStats, unsigned int flags) @@ -85,11 +85,11 @@ int virDomainListGetStatsCompat(virDomainPtr *doms, #endif } =20 -void virDomainStatsRecordListFreeCompat(virDomainStatsRecordPtr *stats) +void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats) { } =20 -int virNodeAllocPagesCompat(virConnectPtr conn, +int virNodeAllocPagesWrapper(virConnectPtr conn, unsigned int npages, unsigned int *pageSizes, unsigned long long *pageCounts, @@ -105,7 +105,7 @@ int virNodeAllocPagesCompat(virConnectPtr conn, } =20 =20 -virDomainPtr virDomainDefineXMLFlagsCompat(virConnectPtr conn, +virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, const char *xml, unsigned int flags) { @@ -116,7 +116,7 @@ virDomainPtr virDomainDefineXMLFlagsCompat(virConnectPt= r conn, #endif } =20 -virStoragePoolPtr virStoragePoolLookupByTargetPathCompat(virConnectPtr con= n, +virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, const char *path) { #if LIBVIR_VERSION_NUMBER < 4001000 @@ -126,7 +126,7 @@ virStoragePoolPtr virStoragePoolLookupByTargetPathCompa= t(virConnectPtr conn, #endif } =20 -char *virConnectBaselineHypervisorCPUCompat(virConnectPtr conn, +char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, const char *emulator, const char *arch, const char *machine, @@ -142,7 +142,7 @@ char *virConnectBaselineHypervisorCPUCompat(virConnectP= tr conn, #endif } =20 -int virConnectCompareHypervisorCPUCompat(virConnectPtr conn, +int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, const char *emulator, const char *arch, const char *machine, @@ -157,7 +157,7 @@ int virConnectCompareHypervisorCPUCompat(virConnectPtr = conn, #endif } =20 -int virNodeGetSEVInfoCompat(virConnectPtr conn, +int virNodeGetSEVInfoWrapper(virConnectPtr conn, virTypedParameterPtr *params, int *nparams, unsigned int flags) @@ -169,7 +169,7 @@ int virNodeGetSEVInfoCompat(virConnectPtr conn, #endif } =20 -int virConnectListAllNWFilterBindingsCompat(virConnectPtr conn, +int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, virNWFilterBindingPtr **bindin= gs, unsigned int flags) { @@ -180,7 +180,7 @@ int virConnectListAllNWFilterBindingsCompat(virConnectP= tr conn, #endif } =20 -virNWFilterBindingPtr virNWFilterBindingCreateXMLCompat(virConnectPtr conn, +virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, const char *xml, unsigned int flags) { @@ -191,7 +191,7 @@ virNWFilterBindingPtr virNWFilterBindingCreateXMLCompat= (virConnectPtr conn, #endif } =20 -virNWFilterBindingPtr virNWFilterBindingLookupByPortDevCompat(virConnectPt= r conn, +virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, const char *portdev) { #if LIBVIR_VERSION_NUMBER < 4005000 diff --git a/connect_compat.h b/connect_compat.h index 4696e46..09cbe22 100644 --- a/connect_compat.h +++ b/connect_compat.h @@ -47,7 +47,7 @@ #define VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE 1 << 0 #endif =20 -int virNodeGetFreePagesCompat(virConnectPtr conn, +int virNodeGetFreePagesWrapper(virConnectPtr conn, unsigned int npages, unsigned int *pages, int startcell, @@ -58,7 +58,7 @@ int virNodeGetFreePagesCompat(virConnectPtr conn, =20 /* 1.2.7 */ =20 -char * virConnectGetDomainCapabilitiesCompat(virConnectPtr conn, +char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, const char *emulatorbin, const char *arch, const char *machine, @@ -118,17 +118,17 @@ struct _virDomainStatsRecord { }; #endif =20 -int virConnectGetAllDomainStatsCompat(virConnectPtr conn, +int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, unsigned int stats, virDomainStatsRecordPtr **retStats, unsigned int flags); =20 -int virDomainListGetStatsCompat(virDomainPtr *doms, +int virDomainListGetStatsWrapper(virDomainPtr *doms, unsigned int stats, virDomainStatsRecordPtr **retStats, unsigned int flags); =20 -void virDomainStatsRecordListFreeCompat(virDomainStatsRecordPtr *stats); +void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats); =20 =20 /* 1.2.9 */ @@ -140,7 +140,7 @@ void virDomainStatsRecordListFreeCompat(virDomainStatsR= ecordPtr *stats); #define VIR_NODE_ALLOC_PAGES_SET 1 << 0 #endif =20 -int virNodeAllocPagesCompat(virConnectPtr conn, +int virNodeAllocPagesWrapper(virConnectPtr conn, unsigned int npages, unsigned int *pageSizes, unsigned long long *pageCounts, @@ -178,7 +178,7 @@ int virNodeAllocPagesCompat(virConnectPtr conn, #define VIR_CONNECT_GET_ALL_DOMAINS_STATS_BACKING 1 << 30 #endif =20 -virDomainPtr virDomainDefineXMLFlagsCompat(virConnectPtr conn, +virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, const char *xml, unsigned int flags); =20 @@ -214,12 +214,12 @@ virDomainPtr virDomainDefineXMLFlagsCompat(virConnect= Ptr conn, =20 /* 4.1.0 */ =20 -virStoragePoolPtr virStoragePoolLookupByTargetPathCompat(virConnectPtr con= n, +virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, const char *path); =20 /* 4.4.0 */ =20 -char *virConnectBaselineHypervisorCPUCompat(virConnectPtr conn, +char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, const char *emulator, const char *arch, const char *machine, @@ -228,7 +228,7 @@ char *virConnectBaselineHypervisorCPUCompat(virConnectP= tr conn, unsigned int ncpus, unsigned int flags); =20 -int virConnectCompareHypervisorCPUCompat(virConnectPtr conn, +int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, const char *emulator, const char *arch, const char *machine, @@ -238,7 +238,7 @@ int virConnectCompareHypervisorCPUCompat(virConnectPtr = conn, =20 /* 4.5.0 */ =20 -int virNodeGetSEVInfoCompat(virConnectPtr conn, +int virNodeGetSEVInfoWrapper(virConnectPtr conn, virTypedParameterPtr *params, int *nparams, unsigned int flags); @@ -263,15 +263,15 @@ int virNodeGetSEVInfoCompat(virConnectPtr conn, typedef struct _virNWFilterBinding *virNWFilterBindingPtr; #endif =20 -int virConnectListAllNWFilterBindingsCompat(virConnectPtr conn, +int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, virNWFilterBindingPtr **bindin= gs, unsigned int flags); =20 -virNWFilterBindingPtr virNWFilterBindingCreateXMLCompat(virConnectPtr conn, +virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, const char *xml, unsigned int flags); =20 -virNWFilterBindingPtr virNWFilterBindingLookupByPortDevCompat(virConnectPt= r conn, +virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, const char *portdev); =20 #ifndef VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT diff --git a/domain.go b/domain.go index cc0285b..75c3458 100644 --- a/domain.go +++ b/domain.go @@ -1502,7 +1502,7 @@ func (d *Domain) DetachDeviceAlias(alias string, flag= s DomainDeviceModifyFlags) =20 cAlias :=3D C.CString(alias) defer C.free(unsafe.Pointer(cAlias)) - result :=3D C.virDomainDetachDeviceAliasCompat(d.ptr, cAlias, C.uint(flag= s)) + result :=3D C.virDomainDetachDeviceAliasWrapper(d.ptr, cAlias, C.uint(fla= gs)) if result =3D=3D -1 { return GetLastError() } @@ -1873,7 +1873,7 @@ func (d *Domain) ListAllInterfaceAddresses(src Domain= InterfaceAddressesSource) ( } =20 var cList *C.virDomainInterfacePtr - numIfaces :=3D int(C.virDomainInterfaceAddressesCompat(d.ptr, (**C.virDom= ainInterfacePtr)(&cList), C.uint(src), 0)) + numIfaces :=3D int(C.virDomainInterfaceAddressesWrapper(d.ptr, (**C.virDo= mainInterfacePtr)(&cList), C.uint(src), 0)) if numIfaces =3D=3D -1 { return nil, GetLastError() } @@ -1900,7 +1900,7 @@ func (d *Domain) ListAllInterfaceAddresses(src Domain= InterfaceAddressesSource) ( ifaces[i].Addrs[k].Prefix =3D uint(caddr.prefix) =20 } - C.virDomainInterfaceFreeCompat(ciface) + C.virDomainInterfaceFreeWrapper(ciface) } C.free(unsafe.Pointer(cList)) return ifaces, nil @@ -2044,7 +2044,7 @@ func (d *Domain) BlockCopy(disk string, destxml strin= g, params *DomainBlockCopyP =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&(*cpar= ams)[0])), C.int(nparams)) =20 - ret :=3D C.virDomainBlockCopyCompat(d.ptr, cdisk, cdestxml, (*C.virTypedP= arameter)(unsafe.Pointer(&(*cparams)[0])), C.int(nparams), C.uint(flags)) + ret :=3D C.virDomainBlockCopyWrapper(d.ptr, cdisk, cdestxml, (*C.virTyped= Parameter)(unsafe.Pointer(&(*cparams)[0])), C.int(nparams), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -2452,7 +2452,7 @@ func (d *Domain) MigrateGetMaxDowntime(flags uint32) = (uint64, error) { return 0, GetNotImplementedError("virDomainMigrateGetMaxDowntime") } =20 - ret :=3D C.virDomainMigrateGetMaxDowntimeCompat(d.ptr, &downtimeLen, C.ui= nt(flags)) + ret :=3D C.virDomainMigrateGetMaxDowntimeWrapper(d.ptr, &downtimeLen, C.u= int(flags)) if ret =3D=3D -1 { return 0, GetLastError() } @@ -2466,7 +2466,7 @@ func (d *Domain) MigrateStartPostCopy(flags uint32) e= rror { return GetNotImplementedError("virDomainMigrateStartPostCopy") } =20 - ret :=3D C.virDomainMigrateStartPostCopyCompat(d.ptr, C.uint(flags)) + ret :=3D C.virDomainMigrateStartPostCopyWrapper(d.ptr, C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3456,7 +3456,7 @@ func (d *Domain) GetPerfEvents(flags DomainModificati= onImpact) (*DomainPerfEvent =20 var cparams *C.virTypedParameter var nparams C.int - ret :=3D C.virDomainGetPerfEventsCompat(d.ptr, (*C.virTypedParameterPtr)(= unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + ret :=3D C.virDomainGetPerfEventsWrapper(d.ptr, (*C.virTypedParameterPtr)= (unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) if ret =3D=3D -1 { return nil, GetLastError() } @@ -3481,7 +3481,7 @@ func (d *Domain) SetPerfEvents(params *DomainPerfEven= ts, flags DomainModificatio =20 var cparams *C.virTypedParameter var nparams C.int - ret :=3D C.virDomainGetPerfEventsCompat(d.ptr, (*C.virTypedParameterPtr)(= unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + ret :=3D C.virDomainGetPerfEventsWrapper(d.ptr, (*C.virTypedParameterPtr)= (unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3493,7 +3493,7 @@ func (d *Domain) SetPerfEvents(params *DomainPerfEven= ts, flags DomainModificatio return err } =20 - ret =3D C.virDomainSetPerfEventsCompat(d.ptr, cparams, nparams, C.uint(fl= ags)) + ret =3D C.virDomainSetPerfEventsWrapper(d.ptr, cparams, nparams, C.uint(f= lags)) =20 return nil } @@ -3770,7 +3770,7 @@ func (d *Domain) GetTime(flags uint32) (int64, uint, = error) { } var secs C.longlong var nsecs C.uint - ret :=3D C.virDomainGetTimeCompat(d.ptr, &secs, &nsecs, C.uint(flags)) + ret :=3D C.virDomainGetTimeWrapper(d.ptr, &secs, &nsecs, C.uint(flags)) if ret =3D=3D -1 { return 0, 0, GetLastError() } @@ -3784,7 +3784,7 @@ func (d *Domain) SetTime(secs int64, nsecs uint, flag= s DomainSetTimeFlags) error return GetNotImplementedError("virDomainSetTime") } =20 - ret :=3D C.virDomainSetTimeCompat(d.ptr, C.longlong(secs), C.uint(nsecs),= C.uint(flags)) + ret :=3D C.virDomainSetTimeWrapper(d.ptr, C.longlong(secs), C.uint(nsecs)= , C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3803,7 +3803,7 @@ func (d *Domain) SetUserPassword(user string, passwor= d string, flags DomainSetUs defer C.free(unsafe.Pointer(cuser)) defer C.free(unsafe.Pointer(cpassword)) =20 - ret :=3D C.virDomainSetUserPasswordCompat(d.ptr, cuser, cpassword, C.uint= (flags)) + ret :=3D C.virDomainSetUserPasswordWrapper(d.ptr, cuser, cpassword, C.uin= t(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3850,7 +3850,7 @@ func (d *Domain) Rename(name string, flags uint32) er= ror { } cname :=3D C.CString(name) defer C.free(unsafe.Pointer(cname)) - ret :=3D C.virDomainRenameCompat(d.ptr, cname, C.uint(flags)) + ret :=3D C.virDomainRenameWrapper(d.ptr, cname, C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3909,7 +3909,7 @@ func (d *Domain) CoreDumpWithFormat(to string, format= DomainCoreDumpFormat, flag cto :=3D C.CString(to) defer C.free(unsafe.Pointer(cto)) =20 - ret :=3D C.virDomainCoreDumpWithFormatCompat(d.ptr, cto, C.uint(format), = C.uint(flags)) + ret :=3D C.virDomainCoreDumpWithFormatWrapper(d.ptr, cto, C.uint(format),= C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3942,7 +3942,7 @@ func (d *Domain) FSFreeze(mounts []string, flags uint= 32) error { } =20 nmounts :=3D len(mounts) - ret :=3D C.virDomainFSFreezeCompat(d.ptr, (**C.char)(unsafe.Pointer(&cmou= nts[0])), C.uint(nmounts), C.uint(flags)) + ret :=3D C.virDomainFSFreezeWrapper(d.ptr, (**C.char)(unsafe.Pointer(&cmo= unts[0])), C.uint(nmounts), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -3963,7 +3963,7 @@ func (d *Domain) FSThaw(mounts []string, flags uint32= ) error { } =20 nmounts :=3D len(mounts) - ret :=3D C.virDomainFSThawCompat(d.ptr, (**C.char)(unsafe.Pointer(&cmount= s[0])), C.uint(nmounts), C.uint(flags)) + ret :=3D C.virDomainFSThawWrapper(d.ptr, (**C.char)(unsafe.Pointer(&cmoun= ts[0])), C.uint(nmounts), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4001,7 +4001,7 @@ func (d *Domain) GetFSInfo(flags uint32) ([]DomainFSI= nfo, error) { } var cfsinfolist **C.virDomainFSInfo =20 - ret :=3D C.virDomainGetFSInfoCompat(d.ptr, (**C.virDomainFSInfoPtr)(unsaf= e.Pointer(&cfsinfolist)), C.uint(flags)) + ret :=3D C.virDomainGetFSInfoWrapper(d.ptr, (**C.virDomainFSInfoPtr)(unsa= fe.Pointer(&cfsinfolist)), C.uint(flags)) if ret =3D=3D -1 { return []DomainFSInfo{}, GetLastError() } @@ -4023,7 +4023,7 @@ func (d *Domain) GetFSInfo(flags uint32) ([]DomainFSI= nfo, error) { DevAlias: aliases, } =20 - C.virDomainFSInfoFreeCompat(cfsinfo) + C.virDomainFSInfoFreeWrapper(cfsinfo) } C.free(unsafe.Pointer(cfsinfolist)) =20 @@ -4055,7 +4055,7 @@ func (d *Domain) AddIOThread(id uint, flags DomainMod= ificationImpact) error { if C.LIBVIR_VERSION_NUMBER < 1002015 { return GetNotImplementedError("virDomainAddIOThread") } - ret :=3D C.virDomainAddIOThreadCompat(d.ptr, C.uint(id), C.uint(flags)) + ret :=3D C.virDomainAddIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4068,7 +4068,7 @@ func (d *Domain) DelIOThread(id uint, flags DomainMod= ificationImpact) error { if C.LIBVIR_VERSION_NUMBER < 1002015 { return GetNotImplementedError("virDomainDelIOThread") } - ret :=3D C.virDomainDelIOThreadCompat(d.ptr, C.uint(id), C.uint(flags)) + ret :=3D C.virDomainDelIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4114,7 +4114,7 @@ func (d *Domain) GetIOThreadInfo(flags DomainModifica= tionImpact) ([]DomainIOThre } var cinfolist **C.virDomainIOThreadInfo =20 - ret :=3D C.virDomainGetIOThreadInfoCompat(d.ptr, (**C.virDomainIOThreadIn= foPtr)(unsafe.Pointer(&cinfolist)), C.uint(flags)) + ret :=3D C.virDomainGetIOThreadInfoWrapper(d.ptr, (**C.virDomainIOThreadI= nfoPtr)(unsafe.Pointer(&cinfolist)), C.uint(flags)) if ret =3D=3D -1 { return []DomainIOThreadInfo{}, GetLastError() } @@ -4139,7 +4139,7 @@ func (d *Domain) GetIOThreadInfo(flags DomainModifica= tionImpact) ([]DomainIOThre CpuMap: cpumap, } =20 - C.virDomainIOThreadInfoFreeCompat(cinfo) + C.virDomainIOThreadInfoFreeWrapper(cinfo) } C.free(unsafe.Pointer(cinfolist)) =20 @@ -4225,7 +4225,7 @@ func (d *Domain) PinIOThread(iothreadid uint, cpumap = []bool, flags DomainModific } } =20 - ret :=3D C.virDomainPinIOThreadCompat(d.ptr, C.uint(iothreadid), &ccpumap= s[0], C.int(maplen), C.uint(flags)) + ret :=3D C.virDomainPinIOThreadWrapper(d.ptr, C.uint(iothreadid), &ccpuma= ps[0], C.int(maplen), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4277,7 +4277,7 @@ func (d *Domain) OpenGraphicsFD(idx uint, flags Domai= nOpenGraphicsFlags) (*os.Fi if C.LIBVIR_VERSION_NUMBER < 1002008 { return nil, GetNotImplementedError("virDomainOpenGraphicsFD") } - ret :=3D C.virDomainOpenGraphicsFDCompat(d.ptr, C.uint(idx), C.uint(flags= )) + ret :=3D C.virDomainOpenGraphicsFDWrapper(d.ptr, C.uint(idx), C.uint(flag= s)) if ret =3D=3D -1 { return nil, GetLastError() } @@ -4412,7 +4412,7 @@ func (d *Domain) GetGuestVcpus(flags uint32) (*Domain= GuestVcpus, error) { =20 var cparams C.virTypedParameterPtr var nparams C.uint - ret :=3D C.virDomainGetGuestVcpusCompat(d.ptr, &cparams, &nparams, C.uint= (flags)) + ret :=3D C.virDomainGetGuestVcpusWrapper(d.ptr, &cparams, &nparams, C.uin= t(flags)) if ret =3D=3D -1 { return nil, GetLastError() } @@ -4452,7 +4452,7 @@ func (d *Domain) SetGuestVcpus(cpus []bool, state boo= l, flags uint32) error { } ccpumap :=3D C.CString(cpumap) defer C.free(unsafe.Pointer(ccpumap)) - ret :=3D C.virDomainSetGuestVcpusCompat(d.ptr, ccpumap, cstate, C.uint(fl= ags)) + ret :=3D C.virDomainSetGuestVcpusWrapper(d.ptr, ccpumap, cstate, C.uint(f= lags)) if ret =3D=3D -1 { return GetLastError() } @@ -4485,7 +4485,7 @@ func (d *Domain) SetVcpu(cpus []bool, state bool, fla= gs uint32) error { } ccpumap :=3D C.CString(cpumap) defer C.free(unsafe.Pointer(ccpumap)) - ret :=3D C.virDomainSetVcpuCompat(d.ptr, ccpumap, cstate, C.uint(flags)) + ret :=3D C.virDomainSetVcpuWrapper(d.ptr, ccpumap, cstate, C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4501,7 +4501,7 @@ func (d *Domain) SetBlockThreshold(dev string, thresh= old uint64, flags uint32) e =20 cdev :=3D C.CString(dev) defer C.free(unsafe.Pointer(cdev)) - ret :=3D C.virDomainSetBlockThresholdCompat(d.ptr, cdev, C.ulonglong(thre= shold), C.uint(flags)) + ret :=3D C.virDomainSetBlockThresholdWrapper(d.ptr, cdev, C.ulonglong(thr= eshold), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4517,7 +4517,7 @@ func (d *Domain) ManagedSaveDefineXML(xml string, fla= gs uint32) error { =20 cxml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cxml)) - ret :=3D C.virDomainManagedSaveDefineXMLCompat(d.ptr, cxml, C.uint(flags)) + ret :=3D C.virDomainManagedSaveDefineXMLWrapper(d.ptr, cxml, C.uint(flags= )) if ret =3D=3D -1 { return GetLastError() } @@ -4531,7 +4531,7 @@ func (d *Domain) ManagedSaveGetXMLDesc(flags uint32) = (string, error) { return "", GetNotImplementedError("virDomainManagedSaveGetXMLDesc") } =20 - ret :=3D C.virDomainManagedSaveGetXMLDescCompat(d.ptr, C.uint(flags)) + ret :=3D C.virDomainManagedSaveGetXMLDescWrapper(d.ptr, C.uint(flags)) if ret =3D=3D nil { return "", GetLastError() } @@ -4566,7 +4566,7 @@ func (d *Domain) SetLifecycleAction(lifecycleType uin= t32, action uint32, flags u return GetNotImplementedError("virDomainSetLifecycleAction") } =20 - ret :=3D C.virDomainSetLifecycleActionCompat(d.ptr, C.uint(lifecycleType)= , C.uint(action), C.uint(flags)) + ret :=3D C.virDomainSetLifecycleActionWrapper(d.ptr, C.uint(lifecycleType= ), C.uint(action), C.uint(flags)) if ret =3D=3D -1 { return GetLastError() } @@ -4600,7 +4600,7 @@ func (d *Domain) GetLaunchSecurityInfo(flags uint32) = (*DomainLaunchSecurityParam var cparams *C.virTypedParameter var nparams C.int =20 - ret :=3D C.virDomainGetLaunchSecurityInfoCompat(d.ptr, (*C.virTypedParame= terPtr)(unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + ret :=3D C.virDomainGetLaunchSecurityInfoWrapper(d.ptr, (*C.virTypedParam= eterPtr)(unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) if ret =3D=3D -1 { return nil, GetLastError() } diff --git a/domain_compat.go b/domain_compat.go index 73a6db9..345c28a 100644 --- a/domain_compat.go +++ b/domain_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "domain_compat.h" =20 -int virDomainCoreDumpWithFormatCompat(virDomainPtr domain, +int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, const char *to, unsigned int dumpformat, unsigned int flags) @@ -45,7 +45,7 @@ int virDomainCoreDumpWithFormatCompat(virDomainPtr domain, } =20 =20 -int virDomainGetTimeCompat(virDomainPtr dom, +int virDomainGetTimeWrapper(virDomainPtr dom, long long *seconds, unsigned int *nseconds, unsigned int flags) @@ -57,7 +57,7 @@ int virDomainGetTimeCompat(virDomainPtr dom, #endif } =20 -int virDomainSetTimeCompat(virDomainPtr dom, +int virDomainSetTimeWrapper(virDomainPtr dom, long long seconds, unsigned int nseconds, unsigned int flags) @@ -69,7 +69,7 @@ int virDomainSetTimeCompat(virDomainPtr dom, #endif } =20 -int virDomainFSFreezeCompat(virDomainPtr dom, +int virDomainFSFreezeWrapper(virDomainPtr dom, const char **mountpoints, unsigned int nmountpoints, unsigned int flags) @@ -81,7 +81,7 @@ int virDomainFSFreezeCompat(virDomainPtr dom, #endif } =20 -int virDomainFSThawCompat(virDomainPtr dom, +int virDomainFSThawWrapper(virDomainPtr dom, const char **mountpoints, unsigned int nmountpoints, unsigned int flags) @@ -93,7 +93,7 @@ int virDomainFSThawCompat(virDomainPtr dom, #endif } =20 -int virDomainBlockCopyCompat(virDomainPtr dom, const char *disk, +int virDomainBlockCopyWrapper(virDomainPtr dom, const char *disk, const char *destxml, virTypedParameterPtr params, int nparams, @@ -106,7 +106,7 @@ int virDomainBlockCopyCompat(virDomainPtr dom, const ch= ar *disk, #endif } =20 -int virDomainOpenGraphicsFDCompat(virDomainPtr dom, +int virDomainOpenGraphicsFDWrapper(virDomainPtr dom, unsigned int idx, unsigned int flags) { @@ -117,11 +117,11 @@ int virDomainOpenGraphicsFDCompat(virDomainPtr dom, #endif } =20 -void virDomainFSInfoFreeCompat(virDomainFSInfoPtr info) +void virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info) { } =20 -int virDomainGetFSInfoCompat(virDomainPtr dom, +int virDomainGetFSInfoWrapper(virDomainPtr dom, virDomainFSInfoPtr **info, unsigned int flags) { @@ -132,7 +132,7 @@ int virDomainGetFSInfoCompat(virDomainPtr dom, #endif } =20 -int virDomainInterfaceAddressesCompat(virDomainPtr dom, +int virDomainInterfaceAddressesWrapper(virDomainPtr dom, virDomainInterfacePtr **ifaces, unsigned int source, unsigned int flags) @@ -144,15 +144,15 @@ int virDomainInterfaceAddressesCompat(virDomainPtr do= m, #endif } =20 -void virDomainInterfaceFreeCompat(virDomainInterfacePtr iface) +void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface) { } =20 -void virDomainIOThreadInfoFreeCompat(virDomainIOThreadInfoPtr info) +void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info) { } =20 -int virDomainGetIOThreadInfoCompat(virDomainPtr domain, +int virDomainGetIOThreadInfoWrapper(virDomainPtr domain, virDomainIOThreadInfoPtr **info, unsigned int flags) { @@ -162,7 +162,7 @@ int virDomainGetIOThreadInfoCompat(virDomainPtr domain, return virDomainGetIOThreadInfo(domain, info, flags); #endif } -int virDomainPinIOThreadCompat(virDomainPtr domain, +int virDomainPinIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned char *cpumap, int maplen, @@ -175,7 +175,7 @@ int virDomainPinIOThreadCompat(virDomainPtr domain, #endif } =20 -int virDomainAddIOThreadCompat(virDomainPtr domain, +int virDomainAddIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned int flags) { @@ -187,7 +187,7 @@ int virDomainAddIOThreadCompat(virDomainPtr domain, } =20 =20 -int virDomainDelIOThreadCompat(virDomainPtr domain, +int virDomainDelIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned int flags) { @@ -199,7 +199,7 @@ int virDomainDelIOThreadCompat(virDomainPtr domain, } =20 =20 -int virDomainSetUserPasswordCompat(virDomainPtr dom, +int virDomainSetUserPasswordWrapper(virDomainPtr dom, const char *user, const char *password, unsigned int flags) @@ -212,7 +212,7 @@ int virDomainSetUserPasswordCompat(virDomainPtr dom, } =20 =20 -int virDomainRenameCompat(virDomainPtr dom, +int virDomainRenameWrapper(virDomainPtr dom, const char *new_name, unsigned int flags) { @@ -224,7 +224,7 @@ int virDomainRenameCompat(virDomainPtr dom, } =20 =20 -int virDomainGetPerfEventsCompat(virDomainPtr dom, +int virDomainGetPerfEventsWrapper(virDomainPtr dom, virTypedParameterPtr *params, int *nparams, unsigned int flags) @@ -237,7 +237,7 @@ int virDomainGetPerfEventsCompat(virDomainPtr dom, } =20 =20 -int virDomainSetPerfEventsCompat(virDomainPtr dom, +int virDomainSetPerfEventsWrapper(virDomainPtr dom, virTypedParameterPtr params, int nparams, unsigned int flags) @@ -250,7 +250,7 @@ int virDomainSetPerfEventsCompat(virDomainPtr dom, } =20 =20 -int virDomainMigrateStartPostCopyCompat(virDomainPtr domain, +int virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, unsigned int flags) { #if LIBVIR_VERSION_NUMBER < 1003003 @@ -261,7 +261,7 @@ int virDomainMigrateStartPostCopyCompat(virDomainPtr do= main, } =20 =20 -int virDomainGetGuestVcpusCompat(virDomainPtr domain, +int virDomainGetGuestVcpusWrapper(virDomainPtr domain, virTypedParameterPtr *params, unsigned int *nparams, unsigned int flags) @@ -274,7 +274,7 @@ int virDomainGetGuestVcpusCompat(virDomainPtr domain, } =20 =20 -int virDomainSetGuestVcpusCompat(virDomainPtr domain, +int virDomainSetGuestVcpusWrapper(virDomainPtr domain, const char *cpumap, int state, unsigned int flags) @@ -286,7 +286,7 @@ int virDomainSetGuestVcpusCompat(virDomainPtr domain, #endif } =20 -int virDomainSetVcpuCompat(virDomainPtr domain, +int virDomainSetVcpuWrapper(virDomainPtr domain, const char *cpumap, int state, unsigned int flags) @@ -299,7 +299,7 @@ int virDomainSetVcpuCompat(virDomainPtr domain, } =20 =20 -int virDomainSetBlockThresholdCompat(virDomainPtr domain, +int virDomainSetBlockThresholdWrapper(virDomainPtr domain, const char *dev, unsigned long long threshold, unsigned int flags) @@ -311,7 +311,7 @@ int virDomainSetBlockThresholdCompat(virDomainPtr domai= n, #endif } =20 -int virDomainMigrateGetMaxDowntimeCompat(virDomainPtr domain, +int virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, unsigned long long *downtime, unsigned int flags) { @@ -323,7 +323,7 @@ int virDomainMigrateGetMaxDowntimeCompat(virDomainPtr d= omain, } =20 =20 -char *virDomainManagedSaveGetXMLDescCompat(virDomainPtr domain, +char *virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, unsigned int flags) { #if LIBVIR_VERSION_NUMBER < 3007000 @@ -334,7 +334,7 @@ char *virDomainManagedSaveGetXMLDescCompat(virDomainPtr= domain, } =20 =20 -int virDomainManagedSaveDefineXMLCompat(virDomainPtr domain, +int virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, const char *dxml, unsigned int flags) { @@ -345,7 +345,7 @@ int virDomainManagedSaveDefineXMLCompat(virDomainPtr do= main, #endif } =20 -int virDomainSetLifecycleActionCompat(virDomainPtr domain, +int virDomainSetLifecycleActionWrapper(virDomainPtr domain, unsigned int type, unsigned int action, unsigned int flags) @@ -357,7 +357,7 @@ int virDomainSetLifecycleActionCompat(virDomainPtr doma= in, #endif } =20 -int virDomainDetachDeviceAliasCompat(virDomainPtr domain, +int virDomainDetachDeviceAliasWrapper(virDomainPtr domain, const char *alias, unsigned int flags) { @@ -368,7 +368,7 @@ int virDomainDetachDeviceAliasCompat(virDomainPtr domai= n, #endif } =20 -int virDomainGetLaunchSecurityInfoCompat(virDomainPtr domain, +int virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, virTypedParameterPtr *params, int *nparams, unsigned int flags) diff --git a/domain_compat.h b/domain_compat.h index 345505c..3a868fe 100644 --- a/domain_compat.h +++ b/domain_compat.h @@ -68,7 +68,7 @@ #define VIR_MIGRATE_AUTO_CONVERGE 1 << 13 #endif =20 -int virDomainCoreDumpWithFormatCompat(virDomainPtr domain, +int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, const char *to, unsigned int dumpformat, unsigned int flags); @@ -88,22 +88,22 @@ int virDomainCoreDumpWithFormatCompat(virDomainPtr doma= in, #define VIR_DOMAIN_TIME_SYNC 1 << 0 #endif =20 -int virDomainGetTimeCompat(virDomainPtr dom, +int virDomainGetTimeWrapper(virDomainPtr dom, long long *seconds, unsigned int *nseconds, unsigned int flags); =20 -int virDomainSetTimeCompat(virDomainPtr dom, +int virDomainSetTimeWrapper(virDomainPtr dom, long long seconds, unsigned int nseconds, unsigned int flags); =20 -int virDomainFSFreezeCompat(virDomainPtr dom, +int virDomainFSFreezeWrapper(virDomainPtr dom, const char **mountpoints, unsigned int nmountpoints, unsigned int flags); =20 -int virDomainFSThawCompat(virDomainPtr dom, +int virDomainFSThawWrapper(virDomainPtr dom, const char **mountpoints, unsigned int nmountpoints, unsigned int flags); @@ -161,13 +161,13 @@ int virDomainFSThawCompat(virDomainPtr dom, #define VIR_DOMAIN_STATS_STATE 1 << 0 #endif =20 -int virDomainBlockCopyCompat(virDomainPtr dom, const char *disk, +int virDomainBlockCopyWrapper(virDomainPtr dom, const char *disk, const char *destxml, virTypedParameterPtr params, int nparams, unsigned int flags); =20 -int virDomainOpenGraphicsFDCompat(virDomainPtr dom, +int virDomainOpenGraphicsFDWrapper(virDomainPtr dom, unsigned int idx, unsigned int flags); =20 @@ -374,9 +374,9 @@ struct _virDomainFSInfo { }; #endif =20 -void virDomainFSInfoFreeCompat(virDomainFSInfoPtr info); +void virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); =20 -int virDomainGetFSInfoCompat(virDomainPtr dom, +int virDomainGetFSInfoWrapper(virDomainPtr dom, virDomainFSInfoPtr **info, unsigned int flags); =20 @@ -450,19 +450,19 @@ struct _virDomainInterface { }; #endif =20 -int virDomainInterfaceAddressesCompat(virDomainPtr dom, +int virDomainInterfaceAddressesWrapper(virDomainPtr dom, virDomainInterfacePtr **ifaces, unsigned int source, unsigned int flags); =20 -void virDomainInterfaceFreeCompat(virDomainInterfacePtr iface); +void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface); =20 -void virDomainIOThreadInfoFreeCompat(virDomainIOThreadInfoPtr info); +void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info); =20 -int virDomainGetIOThreadInfoCompat(virDomainPtr domain, +int virDomainGetIOThreadInfoWrapper(virDomainPtr domain, virDomainIOThreadInfoPtr **info, unsigned int flags); -int virDomainPinIOThreadCompat(virDomainPtr domain, +int virDomainPinIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned char *cpumap, int maplen, @@ -483,10 +483,10 @@ int virDomainPinIOThreadCompat(virDomainPtr domain, #define VIR_DOMAIN_EVENT_ID_DEVICE_ADDED 19 #endif =20 -int virDomainAddIOThreadCompat(virDomainPtr domain, +int virDomainAddIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned int flags); -int virDomainDelIOThreadCompat(virDomainPtr domain, +int virDomainDelIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned int flags); =20 @@ -497,7 +497,7 @@ int virDomainDelIOThreadCompat(virDomainPtr domain, #define VIR_DOMAIN_PASSWORD_ENCRYPTED 1 << 0 #endif =20 -int virDomainSetUserPasswordCompat(virDomainPtr dom, +int virDomainSetUserPasswordWrapper(virDomainPtr dom, const char *user, const char *password, unsigned int flags); @@ -528,7 +528,7 @@ int virDomainSetUserPasswordCompat(virDomainPtr dom, #define VIR_DOMAIN_EVENT_UNDEFINED_RENAMED 1 #endif =20 -int virDomainRenameCompat(virDomainPtr dom, +int virDomainRenameWrapper(virDomainPtr dom, const char *new_name, unsigned int flags); =20 @@ -617,15 +617,15 @@ int virDomainRenameCompat(virDomainPtr dom, #define VIR_DOMAIN_TUNABLE_CPU_GLOBAL_QUOTA "cputune.global_quota" #endif =20 -int virDomainGetPerfEventsCompat(virDomainPtr dom, +int virDomainGetPerfEventsWrapper(virDomainPtr dom, virTypedParameterPtr *params, int *nparams, unsigned int flags); -int virDomainSetPerfEventsCompat(virDomainPtr dom, +int virDomainSetPerfEventsWrapper(virDomainPtr dom, virTypedParameterPtr params, int nparams, unsigned int flags); -int virDomainMigrateStartPostCopyCompat(virDomainPtr domain, +int virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, unsigned int flags); =20 =20 @@ -685,12 +685,12 @@ int virDomainMigrateStartPostCopyCompat(virDomainPtr = domain, #define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment" #endif =20 -int virDomainGetGuestVcpusCompat(virDomainPtr domain, +int virDomainGetGuestVcpusWrapper(virDomainPtr domain, virTypedParameterPtr *params, unsigned int *nparams, unsigned int flags); =20 -int virDomainSetGuestVcpusCompat(virDomainPtr domain, +int virDomainSetGuestVcpusWrapper(virDomainPtr domain, const char *cpumap, int state, unsigned int flags); @@ -878,7 +878,7 @@ int virDomainSetGuestVcpusCompat(virDomainPtr domain, =20 /* 3.1.0 */ =20 -int virDomainSetVcpuCompat(virDomainPtr domain, +int virDomainSetVcpuWrapper(virDomainPtr domain, const char *cpumap, int state, unsigned int flags); @@ -893,7 +893,7 @@ int virDomainSetVcpuCompat(virDomainPtr domain, #define VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD 24 #endif =20 -int virDomainSetBlockThresholdCompat(virDomainPtr domain, +int virDomainSetBlockThresholdWrapper(virDomainPtr domain, const char *dev, unsigned long long threshold, unsigned int flags); @@ -961,13 +961,13 @@ int virDomainSetBlockThresholdCompat(virDomainPtr dom= ain, =20 /* 3.7.0 */ =20 -int virDomainMigrateGetMaxDowntimeCompat(virDomainPtr domain, +int virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, unsigned long long *downtime, unsigned int flags); =20 -char *virDomainManagedSaveGetXMLDescCompat(virDomainPtr domain, +char *virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, unsigned int flags); -int virDomainManagedSaveDefineXMLCompat(virDomainPtr domain, +int virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, const char *dxml, unsigned int flags); =20 @@ -1013,7 +1013,7 @@ int virDomainManagedSaveDefineXMLCompat(virDomainPtr = domain, #define VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_RESTART 5 #endif =20 -int virDomainSetLifecycleActionCompat(virDomainPtr domain, +int virDomainSetLifecycleActionWrapper(virDomainPtr domain, unsigned int type, unsigned int action, unsigned int flags); @@ -1031,13 +1031,13 @@ int virDomainSetLifecycleActionCompat(virDomainPtr = domain, =20 /* 4.4.0 */ =20 -int virDomainDetachDeviceAliasCompat(virDomainPtr domain, +int virDomainDetachDeviceAliasWrapper(virDomainPtr domain, const char *alias, unsigned int flags); =20 /* 4.5.0 */ =20 -int virDomainGetLaunchSecurityInfoCompat(virDomainPtr domain, +int virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, virTypedParameterPtr *params, int *nparams, unsigned int flags); diff --git a/lxc.go b/lxc.go index cf1c67b..d121231 100644 --- a/lxc.go +++ b/lxc.go @@ -144,7 +144,7 @@ func (d *Domain) DomainLxcEnterCGroup(flags uint32) err= or { return GetNotImplementedError("virDomainLxcEnterCGroup") } =20 - ret :=3D C.virDomainLxcEnterCGroupCompat(d.ptr, C.uint(flags)) + ret :=3D C.virDomainLxcEnterCGroupWrapper(d.ptr, C.uint(flags)) =20 if ret =3D=3D -1 { return GetLastError() diff --git a/lxc_compat.go b/lxc_compat.go index a130144..cc4420c 100644 --- a/lxc_compat.go +++ b/lxc_compat.go @@ -36,7 +36,7 @@ package libvirt #include #include "lxc_compat.h" =20 -int virDomainLxcEnterCGroupCompat(virDomainPtr domain, +int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, unsigned int flags) { #if LIBVIR_VERSION_NUMBER < 2000000 diff --git a/lxc_compat.h b/lxc_compat.h index 088485c..4004baf 100644 --- a/lxc_compat.h +++ b/lxc_compat.h @@ -29,7 +29,7 @@ =20 /* 2.0.0 */ =20 -int virDomainLxcEnterCGroupCompat(virDomainPtr domain, +int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, unsigned int flags); =20 =20 diff --git a/network.go b/network.go index 8b19c6a..fe54bf1 100644 --- a/network.go +++ b/network.go @@ -291,7 +291,7 @@ func (n *Network) GetDHCPLeases() ([]NetworkDHCPLease, = error) { return []NetworkDHCPLease{}, GetNotImplementedError("virNetworkGetDHCPLe= ases") } var cLeases *C.virNetworkDHCPLeasePtr - numLeases :=3D C.virNetworkGetDHCPLeasesCompat(n.ptr, nil, (**C.virNetwor= kDHCPLeasePtr)(&cLeases), C.uint(0)) + numLeases :=3D C.virNetworkGetDHCPLeasesWrapper(n.ptr, nil, (**C.virNetwo= rkDHCPLeasePtr)(&cLeases), C.uint(0)) if numLeases =3D=3D -1 { return nil, GetLastError() } @@ -314,7 +314,7 @@ func (n *Network) GetDHCPLeases() ([]NetworkDHCPLease, = error) { Hostname: C.GoString(clease.hostname), Clientid: C.GoString(clease.clientid), }) - C.virNetworkDHCPLeaseFreeCompat(clease) + C.virNetworkDHCPLeaseFreeWrapper(clease) } C.free(unsafe.Pointer(cLeases)) return leases, nil diff --git a/network_compat.go b/network_compat.go index 744b41a..56e9749 100644 --- a/network_compat.go +++ b/network_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "network_compat.h" =20 -int virConnectNetworkEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID) { #if LIBVIR_VERSION_NUMBER < 1002001 @@ -42,11 +42,11 @@ int virConnectNetworkEventDeregisterAnyCompat(virConnec= tPtr conn, #endif } =20 -void virNetworkDHCPLeaseFreeCompat(virNetworkDHCPLeasePtr lease) +void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease) { } =20 -int virNetworkGetDHCPLeasesCompat(virNetworkPtr network, +int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, const char *mac, virNetworkDHCPLeasePtr **leases, unsigned int flags) diff --git a/network_compat.h b/network_compat.h index fea9e37..97c8ad5 100644 --- a/network_compat.h +++ b/network_compat.h @@ -56,7 +56,7 @@ typedef void (*virConnectNetworkEventGenericCallback)(vir= ConnectPtr conn, void *opaque); #endif =20 -int virConnectNetworkEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID); =20 =20 @@ -86,9 +86,9 @@ struct _virNetworkDHCPLease { }; #endif =20 -void virNetworkDHCPLeaseFreeCompat(virNetworkDHCPLeasePtr lease); +void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); =20 -int virNetworkGetDHCPLeasesCompat(virNetworkPtr network, +int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, const char *mac, virNetworkDHCPLeasePtr **leases, unsigned int flags); diff --git a/network_events.go b/network_events.go index 39cc62b..fee2253 100644 --- a/network_events.go +++ b/network_events.go @@ -95,7 +95,7 @@ func (c *Connect) NetworkEventDeregister(callbackId int) = error { return GetNotImplementedError("virConnectNetworkEventDeregisterAny") } // Deregister the callback - if i :=3D int(C.virConnectNetworkEventDeregisterAnyCompat(c.ptr, C.int(ca= llbackId))); i !=3D 0 { + if i :=3D int(C.virConnectNetworkEventDeregisterAnyWrapper(c.ptr, C.int(c= allbackId))); i !=3D 0 { return GetLastError() } return nil diff --git a/node_device_compat.go b/node_device_compat.go index 1f69c7e..f2d32d9 100644 --- a/node_device_compat.go +++ b/node_device_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "node_device_compat.h" =20 -int virConnectNodeDeviceEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID) { #if LIBVIR_VERSION_NUMBER < 2002000 diff --git a/node_device_compat.h b/node_device_compat.h index ca849da..e214bd6 100644 --- a/node_device_compat.h +++ b/node_device_compat.h @@ -51,7 +51,7 @@ typedef void (*virConnectNodeDeviceEventGenericCallback)(= virConnectPtr conn, void *opaque); #endif =20 -int virConnectNodeDeviceEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID); =20 =20 diff --git a/node_device_events.go b/node_device_events.go index 1be2c73..969a134 100644 --- a/node_device_events.go +++ b/node_device_events.go @@ -131,7 +131,7 @@ func (c *Connect) NodeDeviceEventDeregister(callbackId = int) error { return GetNotImplementedError("virConnectNodeDeviceEventDeregisterAny") } // Deregister the callback - if i :=3D int(C.virConnectNodeDeviceEventDeregisterAnyCompat(c.ptr, C.int= (callbackId))); i !=3D 0 { + if i :=3D int(C.virConnectNodeDeviceEventDeregisterAnyWrapper(c.ptr, C.in= t(callbackId))); i !=3D 0 { return GetLastError() } return nil diff --git a/nwfilter_binding.go b/nwfilter_binding.go index e4d9cd3..256ac19 100644 --- a/nwfilter_binding.go +++ b/nwfilter_binding.go @@ -47,7 +47,7 @@ func (f *NWFilterBinding) Free() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { return GetNotImplementedError("virNWFilterBindingFree") } - ret :=3D C.virNWFilterBindingFreeCompat(f.ptr) + ret :=3D C.virNWFilterBindingFreeWrapper(f.ptr) if ret =3D=3D -1 { return GetLastError() } @@ -59,7 +59,7 @@ func (c *NWFilterBinding) Ref() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { return GetNotImplementedError("virNWFilterBindingRef") } - ret :=3D C.virNWFilterBindingRefCompat(c.ptr) + ret :=3D C.virNWFilterBindingRefWrapper(c.ptr) if ret =3D=3D -1 { return GetLastError() } @@ -71,7 +71,7 @@ func (f *NWFilterBinding) Delete() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { return GetNotImplementedError("virNWFilterBindingDelete") } - result :=3D C.virNWFilterBindingDeleteCompat(f.ptr) + result :=3D C.virNWFilterBindingDeleteWrapper(f.ptr) if result =3D=3D -1 { return GetLastError() } @@ -83,7 +83,7 @@ func (f *NWFilterBinding) GetPortDev() (string, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { return "", GetNotImplementedError("virNWFilterBindingGetPortDev") } - result :=3D C.virNWFilterBindingGetPortDevCompat(f.ptr) + result :=3D C.virNWFilterBindingGetPortDevWrapper(f.ptr) if result =3D=3D nil { return "", GetLastError() } @@ -97,7 +97,7 @@ func (f *NWFilterBinding) GetFilterName() (string, error)= { if C.LIBVIR_VERSION_NUMBER < 4005000 { return "", GetNotImplementedError("virNWFilterBindingGetFilterName") } - result :=3D C.virNWFilterBindingGetFilterNameCompat(f.ptr) + result :=3D C.virNWFilterBindingGetFilterNameWrapper(f.ptr) if result =3D=3D nil { return "", GetLastError() } @@ -111,7 +111,7 @@ func (f *NWFilterBinding) GetXMLDesc(flags uint32) (str= ing, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { return "", GetNotImplementedError("virNWFilterBindingGetXMLDesc") } - result :=3D C.virNWFilterBindingGetXMLDescCompat(f.ptr, C.uint(flags)) + result :=3D C.virNWFilterBindingGetXMLDescWrapper(f.ptr, C.uint(flags)) if result =3D=3D nil { return "", GetLastError() } diff --git a/nwfilter_binding_compat.go b/nwfilter_binding_compat.go index 89b457a..37fcce0 100644 --- a/nwfilter_binding_compat.go +++ b/nwfilter_binding_compat.go @@ -31,7 +31,7 @@ package libvirt #include #include "nwfilter_binding_compat.h" =20 -const char *virNWFilterBindingGetPortDevCompat(virNWFilterBindingPtr bindi= ng) +const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version @@ -41,7 +41,7 @@ const char *virNWFilterBindingGetPortDevCompat(virNWFilte= rBindingPtr binding) } =20 =20 -const char *virNWFilterBindingGetFilterNameCompat(virNWFilterBindingPtr bi= nding) +const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version @@ -51,7 +51,7 @@ const char *virNWFilterBindingGetFilterNameCompat(virNWFi= lterBindingPtr binding) } =20 =20 -char *virNWFilterBindingGetXMLDescCompat(virNWFilterBindingPtr binding, +char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, unsigned int flags) { #if LIBVIR_VERSION_NUMBER < 4005000 @@ -62,7 +62,7 @@ char *virNWFilterBindingGetXMLDescCompat(virNWFilterBindi= ngPtr binding, } =20 =20 -int virNWFilterBindingDeleteCompat(virNWFilterBindingPtr binding) +int virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version @@ -72,7 +72,7 @@ int virNWFilterBindingDeleteCompat(virNWFilterBindingPtr = binding) } =20 =20 -int virNWFilterBindingRefCompat(virNWFilterBindingPtr binding) +int virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version @@ -82,7 +82,7 @@ int virNWFilterBindingRefCompat(virNWFilterBindingPtr bin= ding) } =20 =20 -int virNWFilterBindingFreeCompat(virNWFilterBindingPtr binding) +int virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version diff --git a/nwfilter_binding_compat.h b/nwfilter_binding_compat.h index 5669462..4aa138d 100644 --- a/nwfilter_binding_compat.h +++ b/nwfilter_binding_compat.h @@ -30,15 +30,15 @@ typedef struct _virNWFilterBinding *virNWFilterBindingPtr; #endif =20 -const char *virNWFilterBindingGetPortDevCompat(virNWFilterBindingPtr bindi= ng); -const char *virNWFilterBindingGetFilterNameCompat(virNWFilterBindingPtr bi= nding); +const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing); +const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding); =20 -char *virNWFilterBindingGetXMLDescCompat(virNWFilterBindingPtr binding, +char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, unsigned int flags); =20 -int virNWFilterBindingDeleteCompat(virNWFilterBindingPtr binding); -int virNWFilterBindingRefCompat(virNWFilterBindingPtr binding); -int virNWFilterBindingFreeCompat(virNWFilterBindingPtr binding); +int virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding); +int virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding); +int virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding); =20 =20 #endif /* LIBVIRT_GO_NWFILTER_BINDING_COMPAT_H__ */ diff --git a/qemu.go b/qemu.go index b8679dc..678991f 100644 --- a/qemu.go +++ b/qemu.go @@ -183,7 +183,7 @@ func (c *Connect) DomainQemuEventDeregister(callbackId = int) error { } =20 // Deregister the callback - if i :=3D int(C.virConnectDomainQemuMonitorEventDeregisterCompat(c.ptr, C= .int(callbackId))); i !=3D 0 { + if i :=3D int(C.virConnectDomainQemuMonitorEventDeregisterWrapper(c.ptr, = C.int(callbackId))); i !=3D 0 { return GetLastError() } return nil diff --git a/qemu_compat.go b/qemu_compat.go index a24abf3..6cd28b0 100644 --- a/qemu_compat.go +++ b/qemu_compat.go @@ -34,7 +34,7 @@ package libvirt #include "qemu_compat.h" =20 =20 -int virConnectDomainQemuMonitorEventDeregisterCompat(virConnectPtr conn, +int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, int callbackID) { #if LIBVIR_VERSION_NUMBER < 1002003 diff --git a/qemu_compat.h b/qemu_compat.h index f889391..ad556cc 100644 --- a/qemu_compat.h +++ b/qemu_compat.h @@ -39,7 +39,7 @@ typedef void (*virConnectDomainQemuMonitorEventCallback)(= virConnectPtr conn, void *opaque); #endif =20 -int virConnectDomainQemuMonitorEventDeregisterCompat(virConnectPtr conn, +int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, int callbackID); =20 #ifndef VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX diff --git a/secret_compat.go b/secret_compat.go index b68b9d1..4444f6b 100644 --- a/secret_compat.go +++ b/secret_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "secret_compat.h" =20 -int virConnectSecretEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID) { #if LIBVIR_VERSION_NUMBER < 3000000 diff --git a/secret_compat.h b/secret_compat.h index 745e672..d1e1b8a 100644 --- a/secret_compat.h +++ b/secret_compat.h @@ -52,7 +52,7 @@ typedef void (*virConnectSecretEventGenericCallback)(virC= onnectPtr conn, void *opaque); #endif =20 -int virConnectSecretEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID); =20 /* 2.2.1 */ diff --git a/secret_events.go b/secret_events.go index 0dd2708..5860033 100644 --- a/secret_events.go +++ b/secret_events.go @@ -134,7 +134,7 @@ func (c *Connect) SecretEventDeregister(callbackId int)= error { return GetNotImplementedError("virConnectSecretEventDeregisterAny") } // Deregister the callback - if i :=3D int(C.virConnectSecretEventDeregisterAnyCompat(c.ptr, C.int(cal= lbackId))); i !=3D 0 { + if i :=3D int(C.virConnectSecretEventDeregisterAnyWrapper(c.ptr, C.int(ca= llbackId))); i !=3D 0 { return GetLastError() } return nil diff --git a/storage_pool_compat.go b/storage_pool_compat.go index 04ad85a..7ad66b3 100644 --- a/storage_pool_compat.go +++ b/storage_pool_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "storage_pool_compat.h" =20 -int virConnectStoragePoolEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID) { #if LIBVIR_VERSION_NUMBER < 2000000 diff --git a/storage_pool_compat.h b/storage_pool_compat.h index 175904e..cad74fd 100644 --- a/storage_pool_compat.h +++ b/storage_pool_compat.h @@ -78,7 +78,7 @@ typedef void (*virConnectStoragePoolEventGenericCallback)= (virConnectPtr conn, void *opaque); #endif =20 -int virConnectStoragePoolEventDeregisterAnyCompat(virConnectPtr conn, +int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, int callbackID); =20 =20 diff --git a/storage_pool_events.go b/storage_pool_events.go index cf98616..6bd4a2f 100644 --- a/storage_pool_events.go +++ b/storage_pool_events.go @@ -137,7 +137,7 @@ func (c *Connect) StoragePoolEventDeregister(callbackId= int) error { } =20 // Deregister the callback - if i :=3D int(C.virConnectStoragePoolEventDeregisterAnyCompat(c.ptr, C.in= t(callbackId))); i !=3D 0 { + if i :=3D int(C.virConnectStoragePoolEventDeregisterAnyWrapper(c.ptr, C.i= nt(callbackId))); i !=3D 0 { return GetLastError() } return nil diff --git a/storage_volume.go b/storage_volume.go index 739cdb2..56a3026 100644 --- a/storage_volume.go +++ b/storage_volume.go @@ -171,7 +171,7 @@ func (v *StorageVol) GetInfoFlags(flags StorageVolInfoF= lags) (*StorageVolInfo, e } =20 var cinfo C.virStorageVolInfo - result :=3D C.virStorageVolGetInfoFlagsCompat(v.ptr, &cinfo, C.uint(flags= )) + result :=3D C.virStorageVolGetInfoFlagsWrapper(v.ptr, &cinfo, C.uint(flag= s)) if result =3D=3D -1 { return nil, GetLastError() } diff --git a/storage_volume_compat.go b/storage_volume_compat.go index 46f0e0b..a1f622e 100644 --- a/storage_volume_compat.go +++ b/storage_volume_compat.go @@ -32,7 +32,7 @@ package libvirt #include #include "storage_volume_compat.h" =20 -int virStorageVolGetInfoFlagsCompat(virStorageVolPtr vol, +int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, virStorageVolInfoPtr info, unsigned int flags) { diff --git a/storage_volume_compat.h b/storage_volume_compat.h index a20d04a..69e2dd8 100644 --- a/storage_volume_compat.h +++ b/storage_volume_compat.h @@ -29,7 +29,7 @@ =20 /* 3.0.0 */ =20 -int virStorageVolGetInfoFlagsCompat(virStorageVolPtr vol, +int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, virStorageVolInfoPtr info, unsigned int flags); =20 diff --git a/stream.go b/stream.go index 1282aef..3fc89ab 100644 --- a/stream.go +++ b/stream.go @@ -122,7 +122,7 @@ func (v *Stream) RecvFlags(p []byte, flags StreamRecvFl= agsValues) (int, error) { return 0, GetNotImplementedError("virStreamRecvFlags") } =20 - n :=3D C.virStreamRecvFlagsCompat(v.ptr, (*C.char)(unsafe.Pointer(&p[0]))= , C.size_t(len(p)), C.uint(flags)) + n :=3D C.virStreamRecvFlagsWrapper(v.ptr, (*C.char)(unsafe.Pointer(&p[0])= ), C.size_t(len(p)), C.uint(flags)) if n < 0 { return 0, GetLastError() } @@ -140,7 +140,7 @@ func (v *Stream) RecvHole(flags uint) (int64, error) { } =20 var len C.longlong - ret :=3D C.virStreamRecvHoleCompat(v.ptr, &len, C.uint(flags)) + ret :=3D C.virStreamRecvHoleWrapper(v.ptr, &len, C.uint(flags)) if ret < 0 { return 0, GetLastError() } @@ -167,7 +167,7 @@ func (v *Stream) SendHole(len int64, flags uint32) erro= r { return GetNotImplementedError("virStreamSendHole") } =20 - ret :=3D C.virStreamSendHoleCompat(v.ptr, C.longlong(len), C.uint(flags)) + ret :=3D C.virStreamSendHoleWrapper(v.ptr, C.longlong(len), C.uint(flags)) if ret < 0 { return GetLastError() } diff --git a/stream_compat.go b/stream_compat.go index c5a3f2f..d718ae1 100644 --- a/stream_compat.go +++ b/stream_compat.go @@ -31,7 +31,7 @@ package libvirt #include #include "stream_compat.h" =20 -int virStreamRecvFlagsCompat(virStreamPtr st, +int virStreamRecvFlagsWrapper(virStreamPtr st, char *data, size_t nbytes, unsigned int flags) @@ -43,7 +43,7 @@ int virStreamRecvFlagsCompat(virStreamPtr st, #endif } =20 -int virStreamSendHoleCompat(virStreamPtr st, +int virStreamSendHoleWrapper(virStreamPtr st, long long length, unsigned int flags) { @@ -54,7 +54,7 @@ int virStreamSendHoleCompat(virStreamPtr st, #endif } =20 -int virStreamRecvHoleCompat(virStreamPtr st, +int virStreamRecvHoleWrapper(virStreamPtr st, long long *length, unsigned int flags) { diff --git a/stream_compat.h b/stream_compat.h index 1488d8f..9db2184 100644 --- a/stream_compat.h +++ b/stream_compat.h @@ -33,16 +33,16 @@ #define VIR_STREAM_RECV_STOP_AT_HOLE (1 << 0) #endif =20 -int virStreamRecvFlagsCompat(virStreamPtr st, +int virStreamRecvFlagsWrapper(virStreamPtr st, char *data, size_t nbytes, unsigned int flags); =20 -int virStreamSendHoleCompat(virStreamPtr st, +int virStreamSendHoleWrapper(virStreamPtr st, long long length, unsigned int flags); =20 -int virStreamRecvHoleCompat(virStreamPtr, +int virStreamRecvHoleWrapper(virStreamPtr, long long *length, unsigned int flags); =20 --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747486423701.7985910348841; Mon, 16 Jul 2018 06:24:46 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1D752308625E; Mon, 16 Jul 2018 13:24:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C88B7CA5F5; Mon, 16 Jul 2018 13:24:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7C8501853DA0; Mon, 16 Jul 2018 13:24:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOWTc027998 for ; Mon, 16 Jul 2018 09:24:32 -0400 Received: by smtp.corp.redhat.com (Postfix) id AF9172026D76; Mon, 16 Jul 2018 13:24:32 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3231E2026D65; Mon, 16 Jul 2018 13:24:32 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:52 +0100 Message-Id: <20180716132423.10354-7-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 06/37] connect: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 16 Jul 2018 13:24:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- connect_compat.go | 206 --------------------------------------------- connect_compat.h | 81 ------------------ connect_wrapper.go | 172 +++++++++++++++++++++++++++++++++++++ connect_wrapper.h | 75 +++++++++++++++++ 4 files changed, 247 insertions(+), 287 deletions(-) delete mode 100644 connect_compat.go diff --git a/connect_compat.go b/connect_compat.go deleted file mode 100644 index 1ecbef2..0000000 --- a/connect_compat.go +++ /dev/null @@ -1,206 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (c) 2013 Alex Zorin - * Copyright (C) 2016 Red Hat, Inc. - * - */ - -package libvirt - -/* -#cgo pkg-config: libvirt -#include -#include -#include "connect_compat.h" - -int virNodeGetFreePagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pages, - int startcell, - unsigned int cellcount, - unsigned long long *counts, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 1002006 - assert(0); // Caller should have checked version -#else - return virNodeGetFreePages(conn, npages, pages, startcell, cellcount, = counts, flags); -#endif -} - -char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, - const char *emulatorbin, - const char *arch, - const char *machine, - const char *virttype, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 1002007 - assert(0); // Caller should have checked version -#else - return virConnectGetDomainCapabilities(conn, emulatorbin, arch, machin= e, virttype, flags); -#endif -} - -int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 1002008 - assert(0); // Caller should have checked version -#else - return virConnectGetAllDomainStats(conn, stats, retStats, flags); -#endif -} - -int virDomainListGetStatsWrapper(virDomainPtr *doms, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 1002008 - assert(0); // Caller should have checked version -#else - return virDomainListGetStats(doms, stats, retStats, flags); -#endif -} - -void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats) -{ -} - -int virNodeAllocPagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pageSizes, - unsigned long long *pageCounts, - int startCell, - unsigned int cellCount, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 1002009 - assert(0); // Caller should have checked version -#else - return virNodeAllocPages(conn, npages, pageSizes, pageCounts, startCel= l, cellCount, flags); -#endif -} - - -virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, - const char *xml, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 1002012 - assert(0); // Caller should have checked version -#else - return virDomainDefineXMLFlags(conn, xml, flags); -#endif -} - -virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, - const char *path) -{ -#if LIBVIR_VERSION_NUMBER < 4001000 - assert(0); // Caller should have checked version -#else - return virStoragePoolLookupByTargetPath(conn, path); -#endif -} - -char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char **xmlCPUs, - unsigned int ncpus, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 4004000 - assert(0); // Caller should have checked version -#else - return virConnectBaselineHypervisorCPU(conn, emulator, arch, machine, = virttype, xmlCPUs, ncpus, flags); -#endif -} - -int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char *xmlCPU, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 4004000 - assert(0); // Caller should have checked version -#else - return virConnectCompareHypervisorCPU(conn, emulator, arch, machine, v= irttype, xmlCPU, flags); -#endif -} - -int virNodeGetSEVInfoWrapper(virConnectPtr conn, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 4005000 - assert(0); // Caller should have checked version -#else - return virNodeGetSEVInfo(conn, params, nparams, flags); -#endif -} - -int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, - virNWFilterBindingPtr **bindin= gs, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 4005000 - assert(0); // Caller should have checked version -#else - return virConnectListAllNWFilterBindings(conn, bindings, flags); -#endif -} - -virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, - const char *xml, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 4005000 - assert(0); // Caller should have checked version -#else - return virNWFilterBindingCreateXML(conn, xml, flags); -#endif -} - -virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, - const char *portdev) -{ -#if LIBVIR_VERSION_NUMBER < 4005000 - assert(0); // Caller should have checked version -#else - return virNWFilterBindingLookupByPortDev(conn, portdev); -#endif -} - - -*/ -import "C" diff --git a/connect_compat.h b/connect_compat.h index 09cbe22..924b07d 100644 --- a/connect_compat.h +++ b/connect_compat.h @@ -47,24 +47,6 @@ #define VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE 1 << 0 #endif =20 -int virNodeGetFreePagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pages, - int startcell, - unsigned int cellcount, - unsigned long long *counts, - unsigned int flags); - - -/* 1.2.7 */ - -char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, - const char *emulatorbin, - const char *arch, - const char *machine, - const char *virttype, - unsigned int flags); - =20 /* 1.2.8 */ =20 @@ -118,18 +100,6 @@ struct _virDomainStatsRecord { }; #endif =20 -int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags); - -int virDomainListGetStatsWrapper(virDomainPtr *doms, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags); - -void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats); - =20 /* 1.2.9 */ #ifndef VIR_NODE_ALLOC_PAGES_ADD @@ -140,14 +110,6 @@ void virDomainStatsRecordListFreeWrapper(virDomainStat= sRecordPtr *stats); #define VIR_NODE_ALLOC_PAGES_SET 1 << 0 #endif =20 -int virNodeAllocPagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pageSizes, - unsigned long long *pageCounts, - int startCell, - unsigned int cellCount, - unsigned int flags); - =20 /* 1.2.11 */ =20 @@ -178,10 +140,6 @@ int virNodeAllocPagesWrapper(virConnectPtr conn, #define VIR_CONNECT_GET_ALL_DOMAINS_STATS_BACKING 1 << 30 #endif =20 -virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, - const char *xml, - unsigned int flags); - /* 1.2.14 */ =20 #ifndef VIR_CONNECT_BASELINE_CPU_MIGRATABLE @@ -212,37 +170,9 @@ virDomainPtr virDomainDefineXMLFlagsWrapper(virConnect= Ptr conn, #define VIR_CONNECT_LIST_NODE_DEVICES_CAP_CCW_DEV 1 << 15 #endif =20 -/* 4.1.0 */ - -virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, - const char *path); - -/* 4.4.0 */ - -char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char **xmlCPUs, - unsigned int ncpus, - unsigned int flags); - -int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char *xmlCPU, - unsigned int flags); =20 /* 4.5.0 */ =20 -int virNodeGetSEVInfoWrapper(virConnectPtr conn, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); - #ifndef VIR_NODE_SEV_CBITPOS #define VIR_NODE_SEV_CBITPOS "cbitpos" #endif @@ -263,17 +193,6 @@ int virNodeGetSEVInfoWrapper(virConnectPtr conn, typedef struct _virNWFilterBinding *virNWFilterBindingPtr; #endif =20 -int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, - virNWFilterBindingPtr **bindin= gs, - unsigned int flags); - -virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, - const char *xml, - unsigned int flags); - -virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, - const char *portdev); - #ifndef VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT #define VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT 1 << 29 #endif diff --git a/connect_wrapper.go b/connect_wrapper.go index ec2da69..cbafc53 100644 --- a/connect_wrapper.go +++ b/connect_wrapper.go @@ -30,6 +30,7 @@ package libvirt #cgo pkg-config: libvirt #include #include +#include #include "connect_wrapper.h" #include "callbacks_wrapper.h" =20 @@ -67,5 +68,176 @@ virConnectPtr virConnectOpenAuthWrap(const char *name, = int *credtype, uint ncred return virConnectOpenAuth(name, &auth, flags); } =20 + +int virNodeGetFreePagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pages, + int startcell, + unsigned int cellcount, + unsigned long long *counts, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 1002006 + assert(0); // Caller should have checked version +#else + return virNodeGetFreePages(conn, npages, pages, startcell, cellcount, = counts, flags); +#endif +} + +char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, + const char *emulatorbin, + const char *arch, + const char *machine, + const char *virttype, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 1002007 + assert(0); // Caller should have checked version +#else + return virConnectGetDomainCapabilities(conn, emulatorbin, arch, machin= e, virttype, flags); +#endif +} + +int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 1002008 + assert(0); // Caller should have checked version +#else + return virConnectGetAllDomainStats(conn, stats, retStats, flags); +#endif +} + +int virDomainListGetStatsWrapper(virDomainPtr *doms, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 1002008 + assert(0); // Caller should have checked version +#else + return virDomainListGetStats(doms, stats, retStats, flags); +#endif +} + +void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats) +{ +} + +int virNodeAllocPagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pageSizes, + unsigned long long *pageCounts, + int startCell, + unsigned int cellCount, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 1002009 + assert(0); // Caller should have checked version +#else + return virNodeAllocPages(conn, npages, pageSizes, pageCounts, startCel= l, cellCount, flags); +#endif +} + + +virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 1002012 + assert(0); // Caller should have checked version +#else + return virDomainDefineXMLFlags(conn, xml, flags); +#endif +} + +virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, + const char *path) +{ +#if LIBVIR_VERSION_NUMBER < 4001000 + assert(0); // Caller should have checked version +#else + return virStoragePoolLookupByTargetPath(conn, path); +#endif +} + +char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 4004000 + assert(0); // Caller should have checked version +#else + return virConnectBaselineHypervisorCPU(conn, emulator, arch, machine, = virttype, xmlCPUs, ncpus, flags); +#endif +} + +int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char *xmlCPU, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 4004000 + assert(0); // Caller should have checked version +#else + return virConnectCompareHypervisorCPU(conn, emulator, arch, machine, v= irttype, xmlCPU, flags); +#endif +} + +int virNodeGetSEVInfoWrapper(virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 + assert(0); // Caller should have checked version +#else + return virNodeGetSEVInfo(conn, params, nparams, flags); +#endif +} + +int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, + virNWFilterBindingPtr **bindi= ngs, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 + assert(0); // Caller should have checked version +#else + return virConnectListAllNWFilterBindings(conn, bindings, flags); +#endif +} + +virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, + const char *xml, + unsigned int flag= s) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 + assert(0); // Caller should have checked version +#else + return virNWFilterBindingCreateXML(conn, xml, flags); +#endif +} + +virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, + const char = *portdev) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 + assert(0); // Caller should have checked version +#else + return virNWFilterBindingLookupByPortDev(conn, portdev); +#endif +} + + */ import "C" diff --git a/connect_wrapper.h b/connect_wrapper.h index 60374c7..7af88f1 100644 --- a/connect_wrapper.h +++ b/connect_wrapper.h @@ -31,4 +31,79 @@ int virConnectRegisterCloseCallbackHelper(virConnectPtr = c, virConnectCloseFunc c =20 virConnectPtr virConnectOpenAuthWrap(const char *name, int *credtype, uint= ncredtype, int callbackID, unsigned int flags); =20 +int virNodeGetFreePagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pages, + int startcell, + unsigned int cellcount, + unsigned long long *counts, + unsigned int flags); + +char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, + const char *emulatorbin, + const char *arch, + const char *machine, + const char *virttype, + unsigned int flags); + +int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags); + +int virDomainListGetStatsWrapper(virDomainPtr *doms, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags); + +void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats); + +int virNodeAllocPagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pageSizes, + unsigned long long *pageCounts, + int startCell, + unsigned int cellCount, + unsigned int flags); + +virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags); + +virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, + const char *path= ); + +char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags); + +int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char *xmlCPU, + unsigned int flags); + +int virNodeGetSEVInfoWrapper(virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); + +int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, + virNWFilterBindingPtr **bindi= ngs, + unsigned int flags); + +virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, + const char *xml, + unsigned int flag= s); + +virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, + const char = *portdev); + #endif /* LIBVIRT_GO_CONNECT_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747492249905.4194142964641; Mon, 16 Jul 2018 06:24:52 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9358B30820DC; Mon, 16 Jul 2018 13:24:50 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 56E34600C9; Mon, 16 Jul 2018 13:24:50 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id DBB101853DA2; Mon, 16 Jul 2018 13:24:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOXt3028009 for ; Mon, 16 Jul 2018 09:24:34 -0400 Received: by smtp.corp.redhat.com (Postfix) id CF9BF2026D76; Mon, 16 Jul 2018 13:24:33 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 05CBB202704B; Mon, 16 Jul 2018 13:24:32 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:53 +0100 Message-Id: <20180716132423.10354-8-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 07/37] network: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Mon, 16 Jul 2018 13:24:51 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- network.go | 1 + network_compat.h | 10 ------- network_events_wrapper.go | 10 +++++++ network_events_wrapper.h | 8 ++++++ network_compat.go =3D> network_wrapper.go | 11 +------- network_wrapper.h | 37 +++++++++++++++++++++++++ 6 files changed, 57 insertions(+), 20 deletions(-) rename network_compat.go =3D> network_wrapper.go (86%) create mode 100644 network_wrapper.h diff --git a/network.go b/network.go index fe54bf1..26bf24e 100644 --- a/network.go +++ b/network.go @@ -32,6 +32,7 @@ package libvirt #include #include #include "network_compat.h" +#include "network_wrapper.h" */ import "C" =20 diff --git a/network_compat.h b/network_compat.h index 97c8ad5..08f0778 100644 --- a/network_compat.h +++ b/network_compat.h @@ -56,9 +56,6 @@ typedef void (*virConnectNetworkEventGenericCallback)(vir= ConnectPtr conn, void *opaque); #endif =20 -int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); - =20 /* 1.2.5 */ =20 @@ -86,11 +83,4 @@ struct _virNetworkDHCPLease { }; #endif =20 -void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); - -int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, - const char *mac, - virNetworkDHCPLeasePtr **leases, - unsigned int flags); - #endif /* LIBVIRT_GO_NETWORK_COMPAT_H__ */ diff --git a/network_events_wrapper.go b/network_events_wrapper.go index ea892cf..27bf555 100644 --- a/network_events_wrapper.go +++ b/network_events_wrapper.go @@ -54,5 +54,15 @@ int virConnectNetworkEventRegisterAnyWrapper(virConnectP= tr c, virNetworkPtr d, #endif } =20 +int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID) +{ +#if LIBVIR_VERSION_NUMBER < 1002001 + assert(0); // Caller should have checked version +#else + return virConnectNetworkEventDeregisterAny(conn, callbackID); +#endif +} + */ import "C" diff --git a/network_events_wrapper.h b/network_events_wrapper.h index 1b73369..8388467 100644 --- a/network_events_wrapper.h +++ b/network_events_wrapper.h @@ -34,5 +34,13 @@ int virConnectNetworkEventRegisterAnyWrapper(virConnectP= tr c, virNetworkPtr d, int eventID, virConnectNetworkEve= ntGenericCallback cb, long goCallbackId); =20 +int virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, + virNetworkPtr d, + int eventID, + virConnectNetworkEventGeneric= Callback cb, + long goCallbackId); +int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); + =20 #endif /* LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ */ diff --git a/network_compat.go b/network_wrapper.go similarity index 86% rename from network_compat.go rename to network_wrapper.go index 56e9749..bd58754 100644 --- a/network_compat.go +++ b/network_wrapper.go @@ -31,16 +31,7 @@ package libvirt #include #include #include "network_compat.h" - -int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) -{ -#if LIBVIR_VERSION_NUMBER < 1002001 - assert(0); // Caller should have checked version -#else - return virConnectNetworkEventDeregisterAny(conn, callbackID); -#endif -} +#include "network_wrapper.h" =20 void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease) { diff --git a/network_wrapper.h b/network_wrapper.h new file mode 100644 index 0000000..762fe3b --- /dev/null +++ b/network_wrapper.h @@ -0,0 +1,37 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (c) 2013 Alex Zorin + * Copyright (C) 2016 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_NETWORK_WRAPPER_H__ +#define LIBVIRT_GO_NETWORK_WRAPPER_H__ + +void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); + +int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, + const char *mac, + virNetworkDHCPLeasePtr **leases, + unsigned int flags); + +#endif /* LIBVIRT_GO_NETWORK_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747497803237.77553478330265; Mon, 16 Jul 2018 06:24:57 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4D0A0C0587D2; Mon, 16 Jul 2018 13:24:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 09B772010CA0; Mon, 16 Jul 2018 13:24:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id AB1084A46C; Mon, 16 Jul 2018 13:24:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOYt1028020 for ; Mon, 16 Jul 2018 09:24:35 -0400 Received: by smtp.corp.redhat.com (Postfix) id BCB762026D76; Mon, 16 Jul 2018 13:24:34 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 29AFF2027047; Mon, 16 Jul 2018 13:24:34 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:54 +0100 Message-Id: <20180716132423.10354-9-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 08/37] nwfilter binding: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Mon, 16 Jul 2018 13:24:57 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- nwfilter_binding.go | 1 + nwfilter_binding_compat.h | 11 ------ ...g_compat.go =3D> nwfilter_binding_wrapper.go | 1 + nwfilter_binding_wrapper.h | 38 +++++++++++++++++++ 4 files changed, 40 insertions(+), 11 deletions(-) rename nwfilter_binding_compat.go =3D> nwfilter_binding_wrapper.go (98%) create mode 100644 nwfilter_binding_wrapper.h diff --git a/nwfilter_binding.go b/nwfilter_binding.go index 256ac19..daab598 100644 --- a/nwfilter_binding.go +++ b/nwfilter_binding.go @@ -31,6 +31,7 @@ package libvirt #include #include #include "nwfilter_binding_compat.h" +#include "nwfilter_binding_wrapper.h" */ import "C" =20 diff --git a/nwfilter_binding_compat.h b/nwfilter_binding_compat.h index 4aa138d..1d6fd16 100644 --- a/nwfilter_binding_compat.h +++ b/nwfilter_binding_compat.h @@ -30,15 +30,4 @@ typedef struct _virNWFilterBinding *virNWFilterBindingPtr; #endif =20 -const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing); -const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding); - -char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, - unsigned int flags); - -int virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding); -int virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding); -int virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding); - - #endif /* LIBVIRT_GO_NWFILTER_BINDING_COMPAT_H__ */ diff --git a/nwfilter_binding_compat.go b/nwfilter_binding_wrapper.go similarity index 98% rename from nwfilter_binding_compat.go rename to nwfilter_binding_wrapper.go index 37fcce0..4d0e086 100644 --- a/nwfilter_binding_compat.go +++ b/nwfilter_binding_wrapper.go @@ -30,6 +30,7 @@ package libvirt #include #include #include "nwfilter_binding_compat.h" +#include "nwfilter_binding_wrapper.h" =20 const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing) { diff --git a/nwfilter_binding_wrapper.h b/nwfilter_binding_wrapper.h new file mode 100644 index 0000000..be09dca --- /dev/null +++ b/nwfilter_binding_wrapper.h @@ -0,0 +1,38 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ +#define LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ + +const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing); +const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding); +char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, + unsigned int flags); +int virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding); +int virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding); +int virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding); + + +#endif /* LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747487555717.3012530525505; Mon, 16 Jul 2018 06:24:47 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 18415308A968; Mon, 16 Jul 2018 13:24:46 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D28AC308BDAC; Mon, 16 Jul 2018 13:24:45 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 77B864A469; Mon, 16 Jul 2018 13:24:45 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOZCN028029 for ; Mon, 16 Jul 2018 09:24:36 -0400 Received: by smtp.corp.redhat.com (Postfix) id DBE602026D76; Mon, 16 Jul 2018 13:24:35 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1690E2027047; Mon, 16 Jul 2018 13:24:34 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:55 +0100 Message-Id: <20180716132423.10354-10-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 09/37] node device: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Mon, 16 Jul 2018 13:24:46 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- node_device_compat.go | 46 ----------------------------------- node_device_compat.h | 3 --- node_device_events_wrapper.go | 10 ++++++++ node_device_events_wrapper.h | 9 ++++--- 4 files changed, 16 insertions(+), 52 deletions(-) delete mode 100644 node_device_compat.go diff --git a/node_device_compat.go b/node_device_compat.go deleted file mode 100644 index f2d32d9..0000000 --- a/node_device_compat.go +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (c) 2013 Alex Zorin - * Copyright (C) 2016 Red Hat, Inc. - * - */ - -package libvirt - -/* -#cgo pkg-config: libvirt -#include -#include -#include "node_device_compat.h" - -int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) -{ -#if LIBVIR_VERSION_NUMBER < 2002000 - assert(0); // Caller should have checked version -#else - return virConnectNodeDeviceEventDeregisterAny(conn, callbackID); -#endif -} - -*/ -import "C" diff --git a/node_device_compat.h b/node_device_compat.h index e214bd6..3202039 100644 --- a/node_device_compat.h +++ b/node_device_compat.h @@ -51,8 +51,5 @@ typedef void (*virConnectNodeDeviceEventGenericCallback)(= virConnectPtr conn, void *opaque); #endif =20 -int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); - =20 #endif /* LIBVIRT_GO_NODE_DEVICE_COMPAT_H__ */ diff --git a/node_device_events_wrapper.go b/node_device_events_wrapper.go index ff7b6e4..20441f4 100644 --- a/node_device_events_wrapper.go +++ b/node_device_events_wrapper.go @@ -60,5 +60,15 @@ int virConnectNodeDeviceEventRegisterAnyWrapper(virConne= ctPtr c, virNodeDeviceP #endif } =20 +int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID) +{ +#if LIBVIR_VERSION_NUMBER < 2002000 + assert(0); // Caller should have checked version +#else + return virConnectNodeDeviceEventDeregisterAny(conn, callbackID); +#endif +} + */ import "C" diff --git a/node_device_events_wrapper.h b/node_device_events_wrapper.h index ae76b3e..a9576e7 100644 --- a/node_device_events_wrapper.h +++ b/node_device_events_wrapper.h @@ -28,13 +28,16 @@ #define LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ =20 void nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, virNodeDevice= Ptr d, - int event, int detail, void* data); + int event, int detail, void* data= ); =20 void nodeDeviceEventGenericCallbackHelper(virConnectPtr c, virNodeDevicePt= r d, void* data); =20 int virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, virNodeD= evicePtr d, - int eventID, virConnectNodeDeviceEventGenericCallback cb, - long goCallbackId); + int eventID, virConnectNodeDev= iceEventGenericCallback cb, + long goCallbackId); + +int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 =20 #endif /* LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747493101853.0945211861468; Mon, 16 Jul 2018 06:24:53 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AC864796E0; Mon, 16 Jul 2018 13:24:51 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7C1EE2010CA0; Mon, 16 Jul 2018 13:24:51 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 22CCD1853DA1; Mon, 16 Jul 2018 13:24:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDObAa028042 for ; Mon, 16 Jul 2018 09:24:37 -0400 Received: by smtp.corp.redhat.com (Postfix) id E1E412026D76; Mon, 16 Jul 2018 13:24:36 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3668F2027047; Mon, 16 Jul 2018 13:24:36 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:56 +0100 Message-Id: <20180716132423.10354-11-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 10/37] secret: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 16 Jul 2018 13:24:52 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- secret_compat.go | 47 ---------------------------------------- secret_compat.h | 3 --- secret_events_wrapper.go | 11 ++++++++++ secret_events_wrapper.h | 6 +++-- 4 files changed, 15 insertions(+), 52 deletions(-) delete mode 100644 secret_compat.go diff --git a/secret_compat.go b/secret_compat.go deleted file mode 100644 index 4444f6b..0000000 --- a/secret_compat.go +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (c) 2013 Alex Zorin - * Copyright (C) 2016 Red Hat, Inc. - * - */ - -package libvirt - -/* -#cgo pkg-config: libvirt -#include -#include -#include "secret_compat.h" - -int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) -{ -#if LIBVIR_VERSION_NUMBER < 3000000 - assert(0); // Caller should have checked version -#else - return virConnectSecretEventDeregisterAny(conn, callbackID); -#endif -} - - -*/ -import "C" diff --git a/secret_compat.h b/secret_compat.h index d1e1b8a..ba38c68 100644 --- a/secret_compat.h +++ b/secret_compat.h @@ -52,9 +52,6 @@ typedef void (*virConnectSecretEventGenericCallback)(virC= onnectPtr conn, void *opaque); #endif =20 -int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); - /* 2.2.1 */ =20 #ifndef VIR_SECRET_USAGE_TYPE_TLS diff --git a/secret_events_wrapper.go b/secret_events_wrapper.go index 3366065..6e1ef21 100644 --- a/secret_events_wrapper.go +++ b/secret_events_wrapper.go @@ -61,5 +61,16 @@ int virConnectSecretEventRegisterAnyWrapper(virConnectPt= r c, virSecretPtr d, #endif } =20 +int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID) +{ +#if LIBVIR_VERSION_NUMBER < 3000000 + assert(0); // Caller should have checked version +#else + return virConnectSecretEventDeregisterAny(conn, callbackID); +#endif +} + + */ import "C" diff --git a/secret_events_wrapper.h b/secret_events_wrapper.h index 1b5b527..f388542 100644 --- a/secret_events_wrapper.h +++ b/secret_events_wrapper.h @@ -28,13 +28,15 @@ #define LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ =20 void secretEventLifecycleCallbackHelper(virConnectPtr c, virSecretPtr d, - int event, int detail, void* data); + int event, int detail, void* data); void secretEventGenericCallbackHelper(virConnectPtr c, virSecretPtr d, - void* data); + void* data); =20 int virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, virSecretPtr= d, int eventID, virConnectSecretEven= tGenericCallback cb, long goCallbackId); =20 +int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 #endif /* LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747498647991.5460520022299; Mon, 16 Jul 2018 06:24:58 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 540F45D68D; Mon, 16 Jul 2018 13:24:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1D58F30012C2; Mon, 16 Jul 2018 13:24:57 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id B8F5A4BB78; Mon, 16 Jul 2018 13:24:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDObEb028052 for ; Mon, 16 Jul 2018 09:24:38 -0400 Received: by smtp.corp.redhat.com (Postfix) id DD56B2027047; Mon, 16 Jul 2018 13:24:37 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4EF762026D76; Mon, 16 Jul 2018 13:24:37 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:57 +0100 Message-Id: <20180716132423.10354-12-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 11/37] stream: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 16 Jul 2018 13:24:57 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- stream_compat.go | 69 ----------------------------------------------- stream_compat.h | 13 --------- stream_wrapper.go | 34 +++++++++++++++++++++++ stream_wrapper.h | 12 +++++++++ 4 files changed, 46 insertions(+), 82 deletions(-) delete mode 100644 stream_compat.go diff --git a/stream_compat.go b/stream_compat.go deleted file mode 100644 index d718ae1..0000000 --- a/stream_compat.go +++ /dev/null @@ -1,69 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (C) 2017 Red Hat, Inc. - * - */ - -package libvirt - -/* -#cgo pkg-config: libvirt -#include -#include -#include "stream_compat.h" - -int virStreamRecvFlagsWrapper(virStreamPtr st, - char *data, - size_t nbytes, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 3004000 - assert(0); // Caller should have checked version -#else - return virStreamRecvFlags(st, data, nbytes, flags); -#endif -} - -int virStreamSendHoleWrapper(virStreamPtr st, - long long length, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 3004000 - assert(0); // Caller should have checked version -#else - return virStreamSendHole(st, length, flags); -#endif -} - -int virStreamRecvHoleWrapper(virStreamPtr st, - long long *length, - unsigned int flags) -{ -#if LIBVIR_VERSION_NUMBER < 3004000 - assert(0); // Caller should have checked version -#else - return virStreamRecvHole(st, length, flags); -#endif -} - -*/ -import "C" diff --git a/stream_compat.h b/stream_compat.h index 9db2184..92befd5 100644 --- a/stream_compat.h +++ b/stream_compat.h @@ -33,17 +33,4 @@ #define VIR_STREAM_RECV_STOP_AT_HOLE (1 << 0) #endif =20 -int virStreamRecvFlagsWrapper(virStreamPtr st, - char *data, - size_t nbytes, - unsigned int flags); - -int virStreamSendHoleWrapper(virStreamPtr st, - long long length, - unsigned int flags); - -int virStreamRecvHoleWrapper(virStreamPtr, - long long *length, - unsigned int flags); - #endif /* LIBVIRT_GO_STREAM_COMPAT_H__ */ diff --git a/stream_wrapper.go b/stream_wrapper.go index 4e1c2c9..419bb41 100644 --- a/stream_wrapper.go +++ b/stream_wrapper.go @@ -128,5 +128,39 @@ int virStreamEventAddCallbackWrapper(virStreamPtr st, = int events, int callbackID return virStreamEventAddCallback(st, events, streamEventCallbackHelper= , (void *)(intptr_t)callbackID, NULL); } =20 +int virStreamRecvFlagsWrapper(virStreamPtr st, + char *data, + size_t nbytes, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 3004000 + assert(0); // Caller should have checked version +#else + return virStreamRecvFlags(st, data, nbytes, flags); +#endif +} + +int virStreamSendHoleWrapper(virStreamPtr st, + long long length, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 3004000 + assert(0); // Caller should have checked version +#else + return virStreamSendHole(st, length, flags); +#endif +} + +int virStreamRecvHoleWrapper(virStreamPtr st, + long long *length, + unsigned int flags) +{ +#if LIBVIR_VERSION_NUMBER < 3004000 + assert(0); // Caller should have checked version +#else + return virStreamRecvHole(st, length, flags); +#endif +} + */ import "C" diff --git a/stream_wrapper.h b/stream_wrapper.h index c064423..cfa6c37 100644 --- a/stream_wrapper.h +++ b/stream_wrapper.h @@ -33,5 +33,17 @@ int virStreamSparseSendAllWrapper(virStreamPtr st, int c= allbackID, int holeCallb int virStreamSparseRecvAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID); =20 int virStreamEventAddCallbackWrapper(virStreamPtr st, int events, int call= backID); +int virStreamRecvFlagsWrapper(virStreamPtr st, + char *data, + size_t nbytes, + unsigned int flags); + +int virStreamSendHoleWrapper(virStreamPtr st, + long long length, + unsigned int flags); + +int virStreamRecvHoleWrapper(virStreamPtr, + long long *length, + unsigned int flags); =20 #endif /* LIBVIRT_GO_STREAM_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 153174749175642.594837294812464; Mon, 16 Jul 2018 06:24:51 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5ED70A53B7; Mon, 16 Jul 2018 13:24:50 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 156BCCA5EC; Mon, 16 Jul 2018 13:24:50 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id ACFEA1853DA0; Mon, 16 Jul 2018 13:24:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOcJX028060 for ; Mon, 16 Jul 2018 09:24:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id D38512027047; Mon, 16 Jul 2018 13:24:38 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D30A2026D76; Mon, 16 Jul 2018 13:24:38 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:58 +0100 Message-Id: <20180716132423.10354-13-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 12/37] storage volume: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 16 Jul 2018 13:24:51 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- storage_volume.go | 1 + storage_volume_compat.h | 4 --- ...ume_compat.go =3D> storage_volume_wrapper.go | 1 + storage_volume_wrapper.h | 34 +++++++++++++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) rename storage_volume_compat.go =3D> storage_volume_wrapper.go (97%) create mode 100644 storage_volume_wrapper.h diff --git a/storage_volume.go b/storage_volume.go index 56a3026..3526ed4 100644 --- a/storage_volume.go +++ b/storage_volume.go @@ -32,6 +32,7 @@ package libvirt #include #include #include "storage_volume_compat.h" +#include "storage_volume_wrapper.h" */ import "C" =20 diff --git a/storage_volume_compat.h b/storage_volume_compat.h index 69e2dd8..bd3cee9 100644 --- a/storage_volume_compat.h +++ b/storage_volume_compat.h @@ -29,10 +29,6 @@ =20 /* 3.0.0 */ =20 -int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, - virStorageVolInfoPtr info, - unsigned int flags); - #ifndef VIR_STORAGE_VOL_USE_ALLOCATION #define VIR_STORAGE_VOL_USE_ALLOCATION 0 #endif diff --git a/storage_volume_compat.go b/storage_volume_wrapper.go similarity index 97% rename from storage_volume_compat.go rename to storage_volume_wrapper.go index a1f622e..62c5df8 100644 --- a/storage_volume_compat.go +++ b/storage_volume_wrapper.go @@ -31,6 +31,7 @@ package libvirt #include #include #include "storage_volume_compat.h" +#include "storage_volume_wrapper.h" =20 int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, virStorageVolInfoPtr info, diff --git a/storage_volume_wrapper.h b/storage_volume_wrapper.h new file mode 100644 index 0000000..a97a59a --- /dev/null +++ b/storage_volume_wrapper.h @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (c) 2013 Alex Zorin + * Copyright (C) 2016 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ +#define LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ + +int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, + virStorageVolInfoPtr info, + unsigned int flags); + +#endif /* LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747503913854.087383212878; Mon, 16 Jul 2018 06:25:03 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 90EBF30E685E; Mon, 16 Jul 2018 13:25:02 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4332C60F93; Mon, 16 Jul 2018 13:25:02 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id DB4B71853DA6; Mon, 16 Jul 2018 13:25:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOePg028074 for ; Mon, 16 Jul 2018 09:24:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id F2E072027047; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5E9132026D65; Mon, 16 Jul 2018 13:24:39 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:23:59 +0100 Message-Id: <20180716132423.10354-14-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 13/37] storage pool: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Mon, 16 Jul 2018 13:25:03 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- storage_pool_compat.go | 46 ---------------------------------- storage_pool_compat.h | 4 --- storage_pool_events_wrapper.go | 10 ++++++++ storage_pool_events_wrapper.h | 2 ++ 4 files changed, 12 insertions(+), 50 deletions(-) delete mode 100644 storage_pool_compat.go diff --git a/storage_pool_compat.go b/storage_pool_compat.go deleted file mode 100644 index 7ad66b3..0000000 --- a/storage_pool_compat.go +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (c) 2013 Alex Zorin - * Copyright (C) 2016 Red Hat, Inc. - * - */ - -package libvirt - -/* -#cgo pkg-config: libvirt -#include -#include -#include "storage_pool_compat.h" - -int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) -{ -#if LIBVIR_VERSION_NUMBER < 2000000 - assert(0); // Caller shouuld have checked version -#else - return virConnectStoragePoolEventDeregisterAny(conn, callbackID); -#endif -} - -*/ -import "C" diff --git a/storage_pool_compat.h b/storage_pool_compat.h index cad74fd..4df1a0d 100644 --- a/storage_pool_compat.h +++ b/storage_pool_compat.h @@ -78,10 +78,6 @@ typedef void (*virConnectStoragePoolEventGenericCallback= )(virConnectPtr conn, void *opaque); #endif =20 -int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); - - /* 3.8.0 */ =20 #ifndef VIR_STORAGE_POOL_EVENT_CREATED diff --git a/storage_pool_events_wrapper.go b/storage_pool_events_wrapper.go index 9670440..d03f6c5 100644 --- a/storage_pool_events_wrapper.go +++ b/storage_pool_events_wrapper.go @@ -61,5 +61,15 @@ int virConnectStoragePoolEventRegisterAnyWrapper(virConn= ectPtr c, virStoragePoo #endif } =20 +int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID) +{ +#if LIBVIR_VERSION_NUMBER < 2000000 + assert(0); // Caller shouuld have checked version +#else + return virConnectStoragePoolEventDeregisterAny(conn, callbackID); +#endif +} + */ import "C" diff --git a/storage_pool_events_wrapper.h b/storage_pool_events_wrapper.h index c82abb2..2420dee 100644 --- a/storage_pool_events_wrapper.h +++ b/storage_pool_events_wrapper.h @@ -36,5 +36,7 @@ int virConnectStoragePoolEventRegisterAnyWrapper(virConne= ctPtr c, virStoragePoo int eventID, virConnectStoragePoolEventGenericCallback cb, long goCallbackId); =20 +int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 #endif /* LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747504739586.2792331830425; Mon, 16 Jul 2018 06:25:04 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 49B1F308FBB2; Mon, 16 Jul 2018 13:25:02 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DDD895D978; Mon, 16 Jul 2018 13:25:01 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7524A1853DA7; Mon, 16 Jul 2018 13:25:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOf45028086 for ; Mon, 16 Jul 2018 09:24:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id EB3BD2027047; Mon, 16 Jul 2018 13:24:40 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5C0132026D65; Mon, 16 Jul 2018 13:24:40 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:00 +0100 Message-Id: <20180716132423.10354-15-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 14/37] qemu: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Mon, 16 Jul 2018 13:25:03 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- qemu_compat.go | 48 ------------------------------------------------ qemu_compat.h | 3 --- qemu_wrapper.go | 10 ++++++++++ qemu_wrapper.h | 3 +++ 4 files changed, 13 insertions(+), 51 deletions(-) delete mode 100644 qemu_compat.go diff --git a/qemu_compat.go b/qemu_compat.go deleted file mode 100644 index 6cd28b0..0000000 --- a/qemu_compat.go +++ /dev/null @@ -1,48 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (c) 2013 Alex Zorin - * Copyright (C) 2016 Red Hat, Inc. - * - */ - -package libvirt - -/* -#cgo pkg-config: libvirt -#include -#include -#include -#include "qemu_compat.h" - - -int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, - int callbackID) -{ -#if LIBVIR_VERSION_NUMBER < 1002003 - assert(0); // Caller should have checked version -#else - return virConnectDomainQemuMonitorEventDeregister(conn, callbackID); -#endif -} - -*/ -import "C" diff --git a/qemu_compat.h b/qemu_compat.h index ad556cc..7756d7f 100644 --- a/qemu_compat.h +++ b/qemu_compat.h @@ -39,9 +39,6 @@ typedef void (*virConnectDomainQemuMonitorEventCallback)(= virConnectPtr conn, void *opaque); #endif =20 -int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, - int callbackID); - #ifndef VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX #define VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX (1 << 0) #endif diff --git a/qemu_wrapper.go b/qemu_wrapper.go index bbd95cc..ff837a0 100644 --- a/qemu_wrapper.go +++ b/qemu_wrapper.go @@ -60,5 +60,15 @@ int virConnectDomainQemuMonitorEventRegisterWrapper(virC= onnectPtr c, virDomainP #endif } =20 +int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, + int callbackID) +{ +#if LIBVIR_VERSION_NUMBER < 1002003 + assert(0); // Caller should have checked version +#else + return virConnectDomainQemuMonitorEventDeregister(conn, callbackID); +#endif +} + */ import "C" diff --git a/qemu_wrapper.h b/qemu_wrapper.h index 9284256..3f4dd6a 100644 --- a/qemu_wrapper.h +++ b/qemu_wrapper.h @@ -35,5 +35,8 @@ int virConnectDomainQemuMonitorEventRegisterWrapper(virCo= nnectPtr c, virDomainP const char *event, virConnectDomainQemuMonitorEventCallback cb, long goCallbackId, unsigned int flags); =20 +int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, + int callbackID); + =20 #endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747510384530.4553490000942; Mon, 16 Jul 2018 06:25:10 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CEB55307CF25; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8C24360BE4; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 389111853DA0; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOfBF028093 for ; Mon, 16 Jul 2018 09:24:42 -0400 Received: by smtp.corp.redhat.com (Postfix) id CC2272027047; Mon, 16 Jul 2018 13:24:41 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4CD162026D65; Mon, 16 Jul 2018 13:24:41 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:01 +0100 Message-Id: <20180716132423.10354-16-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 15/37] lxc: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Mon, 16 Jul 2018 13:25:09 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- lxc.go | 2 +- lxc_compat.go =3D> lxc_wrapper.go | 2 +- lxc_compat.h =3D> lxc_wrapper.h | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename lxc_compat.go =3D> lxc_wrapper.go (98%) rename lxc_compat.h =3D> lxc_wrapper.h (100%) diff --git a/lxc.go b/lxc.go index d121231..07ed7ff 100644 --- a/lxc.go +++ b/lxc.go @@ -38,7 +38,7 @@ package libvirt #include #include #include -#include "lxc_compat.h" +#include "lxc_wrapper.h" */ import "C" =20 diff --git a/lxc_compat.go b/lxc_wrapper.go similarity index 98% rename from lxc_compat.go rename to lxc_wrapper.go index cc4420c..4a49348 100644 --- a/lxc_compat.go +++ b/lxc_wrapper.go @@ -34,7 +34,7 @@ package libvirt #include #include #include -#include "lxc_compat.h" +#include "lxc_wrapper.h" =20 int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, unsigned int flags) diff --git a/lxc_compat.h b/lxc_wrapper.h similarity index 100% rename from lxc_compat.h rename to lxc_wrapper.h --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747515680925.9568813687722; Mon, 16 Jul 2018 06:25:15 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 666C830832E6; Mon, 16 Jul 2018 13:25:14 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 322D8308332B; Mon, 16 Jul 2018 13:25:14 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C06E04A469; Mon, 16 Jul 2018 13:25:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOhVi028107 for ; Mon, 16 Jul 2018 09:24:43 -0400 Received: by smtp.corp.redhat.com (Postfix) id 343A52027047; Mon, 16 Jul 2018 13:24:43 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3BEA02026D65; Mon, 16 Jul 2018 13:24:42 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:02 +0100 Message-Id: <20180716132423.10354-17-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 16/37] domain: move wrapper functions out of compat header X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Mon, 16 Jul 2018 13:25:15 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- domain.go | 1 + domain_compat.h | 141 ----------------------- domain_compat.go =3D> domain_wrapper.go | 2 +- domain_wrapper.h | 157 ++++++++++++++++++++++++++ 4 files changed, 159 insertions(+), 142 deletions(-) rename domain_compat.go =3D> domain_wrapper.go (99%) create mode 100644 domain_wrapper.h diff --git a/domain.go b/domain.go index 75c3458..7253c67 100644 --- a/domain.go +++ b/domain.go @@ -32,6 +32,7 @@ package libvirt #include #include #include "domain_compat.h" +#include "domain_wrapper.h" */ import "C" =20 diff --git a/domain_compat.h b/domain_compat.h index 3a868fe..c0d93b6 100644 --- a/domain_compat.h +++ b/domain_compat.h @@ -68,11 +68,6 @@ #define VIR_MIGRATE_AUTO_CONVERGE 1 << 13 #endif =20 -int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, - const char *to, - unsigned int dumpformat, - unsigned int flags); - =20 /* 1.2.5 */ =20 @@ -88,27 +83,6 @@ int virDomainCoreDumpWithFormatWrapper(virDomainPtr doma= in, #define VIR_DOMAIN_TIME_SYNC 1 << 0 #endif =20 -int virDomainGetTimeWrapper(virDomainPtr dom, - long long *seconds, - unsigned int *nseconds, - unsigned int flags); - -int virDomainSetTimeWrapper(virDomainPtr dom, - long long seconds, - unsigned int nseconds, - unsigned int flags); - -int virDomainFSFreezeWrapper(virDomainPtr dom, - const char **mountpoints, - unsigned int nmountpoints, - unsigned int flags); - -int virDomainFSThawWrapper(virDomainPtr dom, - const char **mountpoints, - unsigned int nmountpoints, - unsigned int flags); - - /* 1.2.6 */ =20 #ifndef VIR_DOMAIN_BLOCK_COMMIT_ACTIVE @@ -161,17 +135,6 @@ int virDomainFSThawWrapper(virDomainPtr dom, #define VIR_DOMAIN_STATS_STATE 1 << 0 #endif =20 -int virDomainBlockCopyWrapper(virDomainPtr dom, const char *disk, - const char *destxml, - virTypedParameterPtr params, - int nparams, - unsigned int flags); - -int virDomainOpenGraphicsFDWrapper(virDomainPtr dom, - unsigned int idx, - unsigned int flags); - - /* 1.2.9 */ =20 #ifndef VIR_DOMAIN_BLOCK_COMMIT_BANDWIDTH_BYTES @@ -374,13 +337,6 @@ struct _virDomainFSInfo { }; #endif =20 -void virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); - -int virDomainGetFSInfoWrapper(virDomainPtr dom, - virDomainFSInfoPtr **info, - unsigned int flags); - - /* 1.2.12 */ =20 #ifndef VIR_DOMAIN_DEFINE_VALIDATE @@ -450,24 +406,6 @@ struct _virDomainInterface { }; #endif =20 -int virDomainInterfaceAddressesWrapper(virDomainPtr dom, - virDomainInterfacePtr **ifaces, - unsigned int source, - unsigned int flags); - -void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface); - -void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info); - -int virDomainGetIOThreadInfoWrapper(virDomainPtr domain, - virDomainIOThreadInfoPtr **info, - unsigned int flags); -int virDomainPinIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned char *cpumap, - int maplen, - unsigned int flags); - =20 /* 1.2.15 */ =20 @@ -483,13 +421,6 @@ int virDomainPinIOThreadWrapper(virDomainPtr domain, #define VIR_DOMAIN_EVENT_ID_DEVICE_ADDED 19 #endif =20 -int virDomainAddIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags); -int virDomainDelIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags); - =20 /* 1.2.16 */ =20 @@ -497,11 +428,6 @@ int virDomainDelIOThreadWrapper(virDomainPtr domain, #define VIR_DOMAIN_PASSWORD_ENCRYPTED 1 << 0 #endif =20 -int virDomainSetUserPasswordWrapper(virDomainPtr dom, - const char *user, - const char *password, - unsigned int flags); - =20 /* 1.2.17 */ =20 @@ -528,10 +454,6 @@ int virDomainSetUserPasswordWrapper(virDomainPtr dom, #define VIR_DOMAIN_EVENT_UNDEFINED_RENAMED 1 #endif =20 -int virDomainRenameWrapper(virDomainPtr dom, - const char *new_name, - unsigned int flags); - =20 /* 1.3.1 */ =20 @@ -617,18 +539,6 @@ int virDomainRenameWrapper(virDomainPtr dom, #define VIR_DOMAIN_TUNABLE_CPU_GLOBAL_QUOTA "cputune.global_quota" #endif =20 -int virDomainGetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); -int virDomainSetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr params, - int nparams, - unsigned int flags); -int virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, - unsigned int flags); - - /* 1.3.4 */ =20 #ifndef VIR_MIGRATE_PARAM_COMPRESSION @@ -685,17 +595,6 @@ int virDomainMigrateStartPostCopyWrapper(virDomainPtr = domain, #define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment" #endif =20 -int virDomainGetGuestVcpusWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - unsigned int *nparams, - unsigned int flags); - -int virDomainSetGuestVcpusWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags); - - /* 2.1.0 */ =20 #ifndef VIR_DOMAIN_MEMORY_STAT_USABLE @@ -876,13 +775,6 @@ int virDomainSetGuestVcpusWrapper(virDomainPtr domain, #define VIR_DOMAIN_TUNABLE_BLKDEV_GROUP_NAME "blkdeviotune.group_name" #endif =20 -/* 3.1.0 */ - -int virDomainSetVcpuWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags); - /* 3.2.0 */ =20 #ifndef VIR_MIGRATE_TLS @@ -893,11 +785,6 @@ int virDomainSetVcpuWrapper(virDomainPtr domain, #define VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD 24 #endif =20 -int virDomainSetBlockThresholdWrapper(virDomainPtr domain, - const char *dev, - unsigned long long threshold, - unsigned int flags); - /* 3.3.0 */ =20 #ifndef VIR_DOMAIN_JOB_OPERATION @@ -959,18 +846,6 @@ int virDomainSetBlockThresholdWrapper(virDomainPtr dom= ain, #endif =20 =20 -/* 3.7.0 */ - -int virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, - unsigned long long *downtime, - unsigned int flags); - -char *virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, - unsigned int flags); -int virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, - const char *dxml, - unsigned int flags); - /* 3.9.0 */ =20 #ifndef VIR_DOMAIN_JOB_MEMORY_PAGE_SIZE @@ -1013,11 +888,6 @@ int virDomainManagedSaveDefineXMLWrapper(virDomainPtr= domain, #define VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_RESTART 5 #endif =20 -int virDomainSetLifecycleActionWrapper(virDomainPtr domain, - unsigned int type, - unsigned int action, - unsigned int flags); - /* 4.2.0 */ =20 #ifndef VIR_KEYCODE_SET_QNUM @@ -1028,19 +898,8 @@ int virDomainSetLifecycleActionWrapper(virDomainPtr d= omain, #define VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP 1 #endif =20 - -/* 4.4.0 */ - -int virDomainDetachDeviceAliasWrapper(virDomainPtr domain, - const char *alias, - unsigned int flags); - /* 4.5.0 */ =20 -int virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); =20 #ifndef VIR_DOMAIN_LAUNCH_SECURITY_SEV_MEASUREMENT #define VIR_DOMAIN_LAUNCH_SECURITY_SEV_MEASUREMENT "sev-measurement" diff --git a/domain_compat.go b/domain_wrapper.go similarity index 99% rename from domain_compat.go rename to domain_wrapper.go index 345c28a..209af78 100644 --- a/domain_compat.go +++ b/domain_wrapper.go @@ -30,7 +30,7 @@ package libvirt #cgo pkg-config: libvirt #include #include -#include "domain_compat.h" +#include "domain_wrapper.h" =20 int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, const char *to, diff --git a/domain_wrapper.h b/domain_wrapper.h new file mode 100644 index 0000000..ab2138e --- /dev/null +++ b/domain_wrapper.h @@ -0,0 +1,157 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (c) 2013 Alex Zorin + * Copyright (C) 2016 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_DOMAIN_WRAPPER_H__ +#define LIBVIRT_GO_DOMAIN_WRAPPER_H__ + + +int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, + const char *to, + unsigned int dumpformat, + unsigned int flags); + + +int virDomainGetTimeWrapper(virDomainPtr dom, + long long *seconds, + unsigned int *nseconds, + unsigned int flags); + +int virDomainSetTimeWrapper(virDomainPtr dom, + long long seconds, + unsigned int nseconds, + unsigned int flags); + +int virDomainFSFreezeWrapper(virDomainPtr dom, + const char **mountpoints, + unsigned int nmountpoints, + unsigned int flags); + +int virDomainFSThawWrapper(virDomainPtr dom, + const char **mountpoints, + unsigned int nmountpoints, + unsigned int flags); + + +int virDomainBlockCopyWrapper(virDomainPtr dom, const char *disk, + const char *destxml, + virTypedParameterPtr params, + int nparams, + unsigned int flags); + +int virDomainOpenGraphicsFDWrapper(virDomainPtr dom, + unsigned int idx, + unsigned int flags); + + +void virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); + +int virDomainGetFSInfoWrapper(virDomainPtr dom, + virDomainFSInfoPtr **info, + unsigned int flags); + + +int virDomainInterfaceAddressesWrapper(virDomainPtr dom, + virDomainInterfacePtr **ifaces, + unsigned int source, + unsigned int flags); + +void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface); + +void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info); + +int virDomainGetIOThreadInfoWrapper(virDomainPtr domain, + virDomainIOThreadInfoPtr **info, + unsigned int flags); +int virDomainPinIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned char *cpumap, + int maplen, + unsigned int flags); + +int virDomainAddIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags); +int virDomainDelIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags); + +int virDomainSetUserPasswordWrapper(virDomainPtr dom, + const char *user, + const char *password, + unsigned int flags); + +int virDomainRenameWrapper(virDomainPtr dom, + const char *new_name, + unsigned int flags); +int virDomainGetPerfEventsWrapper(virDomainPtr dom, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); +int virDomainSetPerfEventsWrapper(virDomainPtr dom, + virTypedParameterPtr params, + int nparams, + unsigned int flags); +int virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, + unsigned int flags); +int virDomainGetGuestVcpusWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + unsigned int *nparams, + unsigned int flags); + +int virDomainSetGuestVcpusWrapper(virDomainPtr domain, + const char *cpumap, + int state, + unsigned int flags); +int virDomainSetVcpuWrapper(virDomainPtr domain, + const char *cpumap, + int state, + unsigned int flags); +int virDomainSetBlockThresholdWrapper(virDomainPtr domain, + const char *dev, + unsigned long long threshold, + unsigned int flags); +int virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, + unsigned long long *downtime, + unsigned int flags); + +char *virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, + unsigned int flags); +int virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, + const char *dxml, + unsigned int flags); +int virDomainSetLifecycleActionWrapper(virDomainPtr domain, + unsigned int type, + unsigned int action, + unsigned int flags); +int virDomainDetachDeviceAliasWrapper(virDomainPtr domain, + const char *alias, + unsigned int flags); +int virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); + +#endif /* LIBVIRT_GO_DOMAIN_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747510475250.69285460498827; Mon, 16 Jul 2018 06:25:10 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 23425307D85F; Mon, 16 Jul 2018 13:25:09 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C01C8308BDB3; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6AEC31853DA3; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOi4D028119 for ; Mon, 16 Jul 2018 09:24:44 -0400 Received: by smtp.corp.redhat.com (Postfix) id 483E62027047; Mon, 16 Jul 2018 13:24:44 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id BCDCE2026D65; Mon, 16 Jul 2018 13:24:43 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:03 +0100 Message-Id: <20180716132423.10354-18-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 17/37] make the XXX_wrapper.h header files self-contained X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Mon, 16 Jul 2018 13:25:09 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Pull in the main libvirt headers and compat headers from XXX_wrapper.h so that they are self-contained Signed-off-by: Daniel P. Berrang=C3=A9 --- callbacks_wrapper.go | 2 -- connect.go | 3 --- connect_wrapper.go | 2 -- connect_wrapper.h | 5 +++++ domain.go | 3 --- domain_events.go | 2 -- domain_events_wrapper.go | 2 -- domain_events_wrapper.h | 4 ++++ domain_wrapper.go | 1 - domain_wrapper.h | 3 +++ events.go | 1 - events_wrapper.go | 2 -- events_wrapper.h | 3 +++ lxc.go | 3 --- lxc_wrapper.go | 2 -- lxc_wrapper.h | 4 +++- network.go | 3 --- network_events.go | 2 -- network_events_wrapper.go | 5 +---- network_events_wrapper.h | 4 ++++ network_wrapper.go | 2 -- network_wrapper.h | 4 ++++ node_device_events.go | 2 -- node_device_events_wrapper.go | 5 +---- node_device_events_wrapper.h | 4 ++++ nwfilter_binding.go | 3 --- nwfilter_binding_wrapper.go | 2 -- nwfilter_binding_wrapper.h | 4 ++++ qemu.go | 4 ---- qemu_wrapper.go | 8 ++------ qemu_wrapper.h | 5 +++++ secret_events.go | 2 -- secret_events_wrapper.go | 5 +---- secret_events_wrapper.h | 4 ++++ storage_pool_events.go | 2 -- storage_pool_events_wrapper.go | 3 --- storage_pool_events_wrapper.h | 4 ++++ storage_volume.go | 3 --- storage_volume_wrapper.go | 2 -- storage_volume_wrapper.h | 4 ++++ stream.go | 3 --- stream_wrapper.go | 2 -- stream_wrapper.h | 4 ++++ 43 files changed, 60 insertions(+), 77 deletions(-) diff --git a/callbacks_wrapper.go b/callbacks_wrapper.go index 64caf69..9716bb1 100644 --- a/callbacks_wrapper.go +++ b/callbacks_wrapper.go @@ -28,8 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include "callbacks_wrapper.h" =20 extern void freeCallbackId(long); diff --git a/connect.go b/connect.go index 98ab7ab..639225b 100644 --- a/connect.go +++ b/connect.go @@ -36,10 +36,7 @@ import ( =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "connect_compat.h" #include "connect_wrapper.h" */ import "C" diff --git a/connect_wrapper.go b/connect_wrapper.go index cbafc53..82f0ba7 100644 --- a/connect_wrapper.go +++ b/connect_wrapper.go @@ -28,8 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include #include "connect_wrapper.h" #include "callbacks_wrapper.h" diff --git a/connect_wrapper.h b/connect_wrapper.h index 7af88f1..0fdde02 100644 --- a/connect_wrapper.h +++ b/connect_wrapper.h @@ -26,6 +26,11 @@ =20 #ifndef LIBVIRT_GO_CONNECT_WRAPPER_H__ #define LIBVIRT_GO_CONNECT_WRAPPER_H__ + +#include +#include +#include "connect_compat.h" + void closeCallbackHelper(virConnectPtr conn, int reason, void *opaque); int virConnectRegisterCloseCallbackHelper(virConnectPtr c, virConnectClose= Func cb, long goCallbackId); =20 diff --git a/domain.go b/domain.go index 7253c67..fad2a41 100644 --- a/domain.go +++ b/domain.go @@ -28,10 +28,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "domain_compat.h" #include "domain_wrapper.h" */ import "C" diff --git a/domain_events.go b/domain_events.go index 5d21b01..68dc301 100644 --- a/domain_events.go +++ b/domain_events.go @@ -33,9 +33,7 @@ import ( =20 /* #cgo pkg-config: libvirt -#include #include "domain_events_wrapper.h" -#include "domain_compat.h" */ import "C" =20 diff --git a/domain_events_wrapper.go b/domain_events_wrapper.go index 799945b..07b9418 100644 --- a/domain_events_wrapper.go +++ b/domain_events_wrapper.go @@ -28,8 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include "domain_events_wrapper.h" #include "callbacks_wrapper.h" #include diff --git a/domain_events_wrapper.h b/domain_events_wrapper.h index 55cf48e..a9c98c1 100644 --- a/domain_events_wrapper.h +++ b/domain_events_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ =20 +#include +#include +#include "domain_compat.h" + void domainEventLifecycleCallbackHelper(virConnectPtr c, virDomainPtr d, int event, int detail, void* data); =20 diff --git a/domain_wrapper.go b/domain_wrapper.go index 209af78..1596ae5 100644 --- a/domain_wrapper.go +++ b/domain_wrapper.go @@ -28,7 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include #include #include "domain_wrapper.h" =20 diff --git a/domain_wrapper.h b/domain_wrapper.h index ab2138e..7f857d7 100644 --- a/domain_wrapper.h +++ b/domain_wrapper.h @@ -27,6 +27,9 @@ #ifndef LIBVIRT_GO_DOMAIN_WRAPPER_H__ #define LIBVIRT_GO_DOMAIN_WRAPPER_H__ =20 +#include +#include +#include "domain_compat.h" =20 int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, const char *to, diff --git a/events.go b/events.go index 3f8d3a9..217b033 100644 --- a/events.go +++ b/events.go @@ -28,7 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include #include #include "events_wrapper.h" */ diff --git a/events_wrapper.go b/events_wrapper.go index 6e3416f..ffcffb9 100644 --- a/events_wrapper.go +++ b/events_wrapper.go @@ -28,8 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include #include #include "events_wrapper.h" diff --git a/events_wrapper.h b/events_wrapper.h index 8420909..67b3624 100644 --- a/events_wrapper.h +++ b/events_wrapper.h @@ -27,6 +27,9 @@ #ifndef LIBVIRT_GO_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_EVENTS_WRAPPER_H__ =20 +#include +#include + int virEventAddHandleWrapper(int fd, int events, int callbackID); int virEventAddTimeoutWrapper(int freq, int callbackID); void virEventRegisterImplWrapper(void); diff --git a/lxc.go b/lxc.go index 07ed7ff..ec685b8 100644 --- a/lxc.go +++ b/lxc.go @@ -33,9 +33,6 @@ package libvirt // Can't rely on pkg-config for libvirt-lxc since it was not // installed until 2.6.0 onwards #cgo LDFLAGS: -lvirt-lxc -#include -#include -#include #include #include #include "lxc_wrapper.h" diff --git a/lxc_wrapper.go b/lxc_wrapper.go index 4a49348..0968870 100644 --- a/lxc_wrapper.go +++ b/lxc_wrapper.go @@ -31,8 +31,6 @@ package libvirt // Can't rely on pkg-config for libvirt-lxc since it was not // installed until 2.6.0 onwards #cgo LDFLAGS: -lvirt-lxc -#include -#include #include #include "lxc_wrapper.h" =20 diff --git a/lxc_wrapper.h b/lxc_wrapper.h index 4004baf..4edef2a 100644 --- a/lxc_wrapper.h +++ b/lxc_wrapper.h @@ -27,7 +27,9 @@ #ifndef LIBVIRT_GO_LXC_COMPAT_H__ #define LIBVIRT_GO_LXC_COMPAT_H__ =20 -/* 2.0.0 */ +#include +#include +#include =20 int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, unsigned int flags); diff --git a/network.go b/network.go index 26bf24e..015fe5e 100644 --- a/network.go +++ b/network.go @@ -28,10 +28,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "network_compat.h" #include "network_wrapper.h" */ import "C" diff --git a/network_events.go b/network_events.go index fee2253..7414608 100644 --- a/network_events.go +++ b/network_events.go @@ -33,8 +33,6 @@ import ( =20 /* #cgo pkg-config: libvirt -#include -#include "network_compat.h" #include "network_events_wrapper.h" */ import "C" diff --git a/network_events_wrapper.go b/network_events_wrapper.go index 27bf555..a8a5d81 100644 --- a/network_events_wrapper.go +++ b/network_events_wrapper.go @@ -28,13 +28,10 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "network_compat.h" +#include #include "network_events_wrapper.h" #include "callbacks_wrapper.h" -#include =20 extern void networkEventLifecycleCallback(virConnectPtr, virNetworkPtr, in= t, int, int); void networkEventLifecycleCallbackHelper(virConnectPtr c, virNetworkPtr d, diff --git a/network_events_wrapper.h b/network_events_wrapper.h index 8388467..8b08d00 100644 --- a/network_events_wrapper.h +++ b/network_events_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ =20 +#include +#include +#include "network_compat.h" + void networkEventLifecycleCallbackHelper(virConnectPtr c, virNetworkPtr d, int event, int detail, void* data); =20 diff --git a/network_wrapper.go b/network_wrapper.go index bd58754..5c797e0 100644 --- a/network_wrapper.go +++ b/network_wrapper.go @@ -28,9 +28,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include #include -#include "network_compat.h" #include "network_wrapper.h" =20 void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease) diff --git a/network_wrapper.h b/network_wrapper.h index 762fe3b..66fb730 100644 --- a/network_wrapper.h +++ b/network_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_NETWORK_WRAPPER_H__ #define LIBVIRT_GO_NETWORK_WRAPPER_H__ =20 +#include +#include +#include "network_compat.h" + void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); =20 int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, diff --git a/node_device_events.go b/node_device_events.go index 969a134..5d66687 100644 --- a/node_device_events.go +++ b/node_device_events.go @@ -33,8 +33,6 @@ import ( =20 /* #cgo pkg-config: libvirt -#include -#include "node_device_compat.h" #include "node_device_events_wrapper.h" */ import "C" diff --git a/node_device_events_wrapper.go b/node_device_events_wrapper.go index 20441f4..a8b0c93 100644 --- a/node_device_events_wrapper.go +++ b/node_device_events_wrapper.go @@ -28,13 +28,10 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "node_device_compat.h" +#include #include "node_device_events_wrapper.h" #include "callbacks_wrapper.h" -#include =20 extern void nodeDeviceEventLifecycleCallback(virConnectPtr, virNodeDeviceP= tr, int, int, int); void nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, virNodeDevice= Ptr d, diff --git a/node_device_events_wrapper.h b/node_device_events_wrapper.h index a9576e7..04cb71b 100644 --- a/node_device_events_wrapper.h +++ b/node_device_events_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ =20 +#include +#include +#include "node_device_compat.h" + void nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, virNodeDevice= Ptr d, int event, int detail, void* data= ); =20 diff --git a/nwfilter_binding.go b/nwfilter_binding.go index daab598..722303b 100644 --- a/nwfilter_binding.go +++ b/nwfilter_binding.go @@ -27,10 +27,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "nwfilter_binding_compat.h" #include "nwfilter_binding_wrapper.h" */ import "C" diff --git a/nwfilter_binding_wrapper.go b/nwfilter_binding_wrapper.go index 4d0e086..fdafaef 100644 --- a/nwfilter_binding_wrapper.go +++ b/nwfilter_binding_wrapper.go @@ -27,9 +27,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include #include -#include "nwfilter_binding_compat.h" #include "nwfilter_binding_wrapper.h" =20 const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing) diff --git a/nwfilter_binding_wrapper.h b/nwfilter_binding_wrapper.h index be09dca..895075f 100644 --- a/nwfilter_binding_wrapper.h +++ b/nwfilter_binding_wrapper.h @@ -26,6 +26,10 @@ #ifndef LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ #define LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ =20 +#include +#include +#include "nwfilter_binding_compat.h" + const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing); const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding); char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, diff --git a/qemu.go b/qemu.go index 678991f..3631b00 100644 --- a/qemu.go +++ b/qemu.go @@ -33,11 +33,7 @@ package libvirt // Can't rely on pkg-config for libvirt-qemu since it was not // installed until 2.6.0 onwards #cgo LDFLAGS: -lvirt-qemu -#include -#include -#include #include -#include "qemu_compat.h" #include "qemu_wrapper.h" */ import "C" diff --git a/qemu_wrapper.go b/qemu_wrapper.go index ff837a0..1dda84d 100644 --- a/qemu_wrapper.go +++ b/qemu_wrapper.go @@ -31,14 +31,10 @@ package libvirt // Can't rely on pkg-config for libvirt-qemu since it was not // installed until 2.6.0 onwards #cgo LDFLAGS: -lvirt-qemu -#include -#include -#include -#include "qemu_compat.h" -#include "qemu_wrapper.h" -#include "callbacks_wrapper.h" #include #include +#include "qemu_wrapper.h" +#include "callbacks_wrapper.h" =20 =20 extern void domainQemuMonitorEventCallback(virConnectPtr, virDomainPtr, co= nst char *, long long, unsigned int, const char *, int); diff --git a/qemu_wrapper.h b/qemu_wrapper.h index 3f4dd6a..228e444 100644 --- a/qemu_wrapper.h +++ b/qemu_wrapper.h @@ -27,6 +27,11 @@ #ifndef LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ =20 +#include +#include +#include +#include "qemu_compat.h" + void domainQemuMonitorEventCallbackHelper(virConnectPtr c, virDomainPtr d, const char *event, long long secs, unsigned int micros, const char *details, void *data); diff --git a/secret_events.go b/secret_events.go index 5860033..d24146f 100644 --- a/secret_events.go +++ b/secret_events.go @@ -33,8 +33,6 @@ import ( =20 /* #cgo pkg-config: libvirt -#include -#include "secret_compat.h" #include "secret_events_wrapper.h" */ import "C" diff --git a/secret_events_wrapper.go b/secret_events_wrapper.go index 6e1ef21..04b5f4f 100644 --- a/secret_events_wrapper.go +++ b/secret_events_wrapper.go @@ -28,13 +28,10 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "secret_compat.h" +#include #include "secret_events_wrapper.h" #include "callbacks_wrapper.h" -#include =20 extern void secretEventLifecycleCallback(virConnectPtr, virSecretPtr, int,= int, int); void secretEventLifecycleCallbackHelper(virConnectPtr c, virSecretPtr d, diff --git a/secret_events_wrapper.h b/secret_events_wrapper.h index f388542..6758b54 100644 --- a/secret_events_wrapper.h +++ b/secret_events_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ =20 +#include +#include +#include "secret_compat.h" + void secretEventLifecycleCallbackHelper(virConnectPtr c, virSecretPtr d, int event, int detail, void* data); void secretEventGenericCallbackHelper(virConnectPtr c, virSecretPtr d, diff --git a/storage_pool_events.go b/storage_pool_events.go index 6bd4a2f..15fb90b 100644 --- a/storage_pool_events.go +++ b/storage_pool_events.go @@ -33,8 +33,6 @@ import ( =20 /* #cgo pkg-config: libvirt -#include -#include "storage_pool_compat.h" #include "storage_pool_events_wrapper.h" */ import "C" diff --git a/storage_pool_events_wrapper.go b/storage_pool_events_wrapper.go index d03f6c5..df9b092 100644 --- a/storage_pool_events_wrapper.go +++ b/storage_pool_events_wrapper.go @@ -28,10 +28,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "storage_pool_compat.h" #include "storage_pool_events_wrapper.h" #include "callbacks_wrapper.h" #include diff --git a/storage_pool_events_wrapper.h b/storage_pool_events_wrapper.h index 2420dee..f178951 100644 --- a/storage_pool_events_wrapper.h +++ b/storage_pool_events_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ #define LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ =20 +#include +#include +#include "storage_pool_compat.h" + void storagePoolEventLifecycleCallbackHelper(virConnectPtr c, virStoragePo= olPtr d, int event, int detail, void* data); void storagePoolEventGenericCallbackHelper(virConnectPtr c, virStoragePool= Ptr d, diff --git a/storage_volume.go b/storage_volume.go index 3526ed4..d913c59 100644 --- a/storage_volume.go +++ b/storage_volume.go @@ -28,10 +28,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "storage_volume_compat.h" #include "storage_volume_wrapper.h" */ import "C" diff --git a/storage_volume_wrapper.go b/storage_volume_wrapper.go index 62c5df8..63cc2b5 100644 --- a/storage_volume_wrapper.go +++ b/storage_volume_wrapper.go @@ -28,9 +28,7 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include #include -#include "storage_volume_compat.h" #include "storage_volume_wrapper.h" =20 int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, diff --git a/storage_volume_wrapper.h b/storage_volume_wrapper.h index a97a59a..77d75e0 100644 --- a/storage_volume_wrapper.h +++ b/storage_volume_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ #define LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ =20 +#include +#include +#include "storage_volume_compat.h" + int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, virStorageVolInfoPtr info, unsigned int flags); diff --git a/stream.go b/stream.go index 3fc89ab..c5c1ef7 100644 --- a/stream.go +++ b/stream.go @@ -28,11 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include #include "stream_wrapper.h" -#include "stream_compat.h" */ import "C" import ( diff --git a/stream_wrapper.go b/stream_wrapper.go index 419bb41..90cc110 100644 --- a/stream_wrapper.go +++ b/stream_wrapper.go @@ -28,8 +28,6 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include #include #include diff --git a/stream_wrapper.h b/stream_wrapper.h index cfa6c37..b8417d3 100644 --- a/stream_wrapper.h +++ b/stream_wrapper.h @@ -27,6 +27,10 @@ #ifndef LIBVIRT_GO_STREAM_WRAPPER_H__ #define LIBVIRT_GO_STREAM_WRAPPER_H__ =20 +#include +#include +#include "stream_compat.h" + int virStreamSendAllWrapper(virStreamPtr st, int callbackID); int virStreamRecvAllWrapper(virStreamPtr st, int callbackID); int virStreamSparseSendAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID, int skipCallbackID); --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747522245867.2555302224382; Mon, 16 Jul 2018 06:25:22 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B55BE3DF; Mon, 16 Jul 2018 13:25:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 77AF7CA5EC; Mon, 16 Jul 2018 13:25:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 059411853DA4; Mon, 16 Jul 2018 13:25:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOjsf028126 for ; Mon, 16 Jul 2018 09:24:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4E2942027047; Mon, 16 Jul 2018 13:24:45 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 87A862026D65; Mon, 16 Jul 2018 13:24:44 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:04 +0100 Message-Id: <20180716132423.10354-19-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 18/37] Add XXX_wrapper.{h, go} for every remaining file X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 16 Jul 2018 13:25:21 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- domain_snapshot_wrapper.go | 34 ++++++++++++++++++++++++++++++++++ domain_snapshot_wrapper.h | 32 ++++++++++++++++++++++++++++++++ interface_wrapper.go | 34 ++++++++++++++++++++++++++++++++++ interface_wrapper.h | 32 ++++++++++++++++++++++++++++++++ node_device_wrapper.go | 34 ++++++++++++++++++++++++++++++++++ node_device_wrapper.h | 33 +++++++++++++++++++++++++++++++++ nwfilter_wrapper.go | 34 ++++++++++++++++++++++++++++++++++ nwfilter_wrapper.h | 32 ++++++++++++++++++++++++++++++++ secret_wrapper.go | 34 ++++++++++++++++++++++++++++++++++ secret_wrapper.h | 33 +++++++++++++++++++++++++++++++++ storage_pool_wrapper.go | 34 ++++++++++++++++++++++++++++++++++ storage_pool_wrapper.h | 33 +++++++++++++++++++++++++++++++++ 12 files changed, 399 insertions(+) create mode 100644 domain_snapshot_wrapper.go create mode 100644 domain_snapshot_wrapper.h create mode 100644 interface_wrapper.go create mode 100644 interface_wrapper.h create mode 100644 node_device_wrapper.go create mode 100644 node_device_wrapper.h create mode 100644 nwfilter_wrapper.go create mode 100644 nwfilter_wrapper.h create mode 100644 secret_wrapper.go create mode 100644 secret_wrapper.h create mode 100644 storage_pool_wrapper.go create mode 100644 storage_pool_wrapper.h diff --git a/domain_snapshot_wrapper.go b/domain_snapshot_wrapper.go new file mode 100644 index 0000000..75e3ea5 --- /dev/null +++ b/domain_snapshot_wrapper.go @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +package libvirt + +/* +#cgo pkg-config: libvirt +#include +#include "domain_snapshot_wrapper.h" + +*/ +import "C" diff --git a/domain_snapshot_wrapper.h b/domain_snapshot_wrapper.h new file mode 100644 index 0000000..45464ce --- /dev/null +++ b/domain_snapshot_wrapper.h @@ -0,0 +1,32 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_DOMAIN_SNAPSHOT_WRAPPER_H__ +#define LIBVIRT_GO_DOMAIN_SNAPSHOT_WRAPPER_H__ + +#include +#include + +#endif /* LIBVIRT_GO_DOMAIN_SNAPSHOT_WRAPPER_H__ */ diff --git a/interface_wrapper.go b/interface_wrapper.go new file mode 100644 index 0000000..c9618fb --- /dev/null +++ b/interface_wrapper.go @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +package libvirt + +/* +#cgo pkg-config: libvirt +#include +#include "interface_wrapper.h" + +*/ +import "C" diff --git a/interface_wrapper.h b/interface_wrapper.h new file mode 100644 index 0000000..8b1f8f1 --- /dev/null +++ b/interface_wrapper.h @@ -0,0 +1,32 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_INTERFACE_WRAPPER_H__ +#define LIBVIRT_GO_INTERFACE_WRAPPER_H__ + +#include +#include + +#endif /* LIBVIRT_GO_INTERFACE_WRAPPER_H__ */ diff --git a/node_device_wrapper.go b/node_device_wrapper.go new file mode 100644 index 0000000..bf8f987 --- /dev/null +++ b/node_device_wrapper.go @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +package libvirt + +/* +#cgo pkg-config: libvirt +#include +#include "node_device_wrapper.h" + +*/ +import "C" diff --git a/node_device_wrapper.h b/node_device_wrapper.h new file mode 100644 index 0000000..22fc791 --- /dev/null +++ b/node_device_wrapper.h @@ -0,0 +1,33 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_NODE_DEVICE_WRAPPER_H__ +#define LIBVIRT_GO_NODE_DEVICE_WRAPPER_H__ + +#include +#include +#include "node_device_compat.h" + +#endif /* LIBVIRT_GO_NODE_DEVICE_WRAPPER_H__ */ diff --git a/nwfilter_wrapper.go b/nwfilter_wrapper.go new file mode 100644 index 0000000..78d0487 --- /dev/null +++ b/nwfilter_wrapper.go @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +package libvirt + +/* +#cgo pkg-config: libvirt +#include +#include "nwfilter_wrapper.h" + +*/ +import "C" diff --git a/nwfilter_wrapper.h b/nwfilter_wrapper.h new file mode 100644 index 0000000..c470366 --- /dev/null +++ b/nwfilter_wrapper.h @@ -0,0 +1,32 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_NWFILTER_WRAPPER_H__ +#define LIBVIRT_GO_NWFILTER_WRAPPER_H__ + +#include +#include + +#endif /* LIBVIRT_GO_NWFILTER_WRAPPER_H__ */ diff --git a/secret_wrapper.go b/secret_wrapper.go new file mode 100644 index 0000000..1bcc74d --- /dev/null +++ b/secret_wrapper.go @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +package libvirt + +/* +#cgo pkg-config: libvirt +#include +#include "secret_wrapper.h" + +*/ +import "C" diff --git a/secret_wrapper.h b/secret_wrapper.h new file mode 100644 index 0000000..478c7d4 --- /dev/null +++ b/secret_wrapper.h @@ -0,0 +1,33 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_SECRET_WRAPPER_H__ +#define LIBVIRT_GO_SECRET_WRAPPER_H__ + +#include +#include +#include "secret_compat.h" + +#endif /* LIBVIRT_GO_SECRET_WRAPPER_H__ */ diff --git a/storage_pool_wrapper.go b/storage_pool_wrapper.go new file mode 100644 index 0000000..cd3c1bc --- /dev/null +++ b/storage_pool_wrapper.go @@ -0,0 +1,34 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +package libvirt + +/* +#cgo pkg-config: libvirt +#include +#include "storage_pool_wrapper.h" + +*/ +import "C" diff --git a/storage_pool_wrapper.h b/storage_pool_wrapper.h new file mode 100644 index 0000000..3e2f60f --- /dev/null +++ b/storage_pool_wrapper.h @@ -0,0 +1,33 @@ +/* + * This file is part of the libvirt-go project + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + * + * Copyright (C) 2018 Red Hat, Inc. + * + */ + +#ifndef LIBVIRT_GO_STORAGE_POOL_WRAPPER_H__ +#define LIBVIRT_GO_STORAGE_POOL_WRAPPER_H__ + +#include +#include +#include "storage_pool_compat.h" + +#endif /* LIBVIRT_GO_STORAGE_POOL_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747516581857.4745384139467; Mon, 16 Jul 2018 06:25:16 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B667DA8BB; Mon, 16 Jul 2018 13:25:14 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 766FACA7C9; Mon, 16 Jul 2018 13:25:14 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 15B8C4A46E; Mon, 16 Jul 2018 13:25:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOkwZ028131 for ; Mon, 16 Jul 2018 09:24:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id 807952027047; Mon, 16 Jul 2018 13:24:46 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 965592026D65; Mon, 16 Jul 2018 13:24:45 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:05 +0100 Message-Id: <20180716132423.10354-20-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 19/37] Standardize formatting in all wrapper headers X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 16 Jul 2018 13:25:15 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- connect.go | 2 +- connect_wrapper.go | 2 +- connect_wrapper.h | 169 +++++++++++--------- domain_events_wrapper.h | 258 +++++++++++++++++++----------- domain_snapshot.go | 3 +- domain_wrapper.h | 290 ++++++++++++++++++++-------------- events_wrapper.h | 39 ++++- interface.go | 3 +- lxc_wrapper.h | 5 +- network_events_wrapper.h | 32 ++-- network_wrapper.h | 12 +- node_device.go | 4 +- node_device_events_wrapper.h | 29 ++-- nwfilter.go | 3 +- nwfilter_binding_wrapper.h | 25 ++- qemu_wrapper.h | 26 ++- secret.go | 4 +- secret_events_wrapper.h | 26 ++- storage_pool.go | 4 +- storage_pool_events_wrapper.h | 29 ++-- storage_volume_wrapper.h | 7 +- stream_wrapper.h | 57 ++++--- 22 files changed, 638 insertions(+), 391 deletions(-) diff --git a/connect.go b/connect.go index 639225b..5ea8c48 100644 --- a/connect.go +++ b/connect.go @@ -395,7 +395,7 @@ func NewConnectWithAuth(uri string, auth *ConnectAuth, = flags ConnectFlags) (*Con =20 callbackID :=3D registerCallbackId(auth.Callback) =20 - ptr :=3D C.virConnectOpenAuthWrap(cUri, &ccredtype[0], C.uint(len(auth.Cr= edType)), C.int(callbackID), C.uint(flags)) + ptr :=3D C.virConnectOpenAuthWrapper(cUri, &ccredtype[0], C.uint(len(auth= .CredType)), C.int(callbackID), C.uint(flags)) freeCallbackId(callbackID) if ptr =3D=3D nil { return nil, GetLastError() diff --git a/connect_wrapper.go b/connect_wrapper.go index 82f0ba7..d714fb9 100644 --- a/connect_wrapper.go +++ b/connect_wrapper.go @@ -54,7 +54,7 @@ int connectAuthCallbackHelper(virConnectCredentialPtr cre= d, unsigned int ncred, return connectAuthCallback(cred, ncred, *callbackID); } =20 -virConnectPtr virConnectOpenAuthWrap(const char *name, int *credtype, uint= ncredtype, int callbackID, unsigned int flags) +virConnectPtr virConnectOpenAuthWrapper(const char *name, int *credtype, u= int ncredtype, int callbackID, unsigned int flags) { virConnectAuth auth =3D { .credtype =3D credtype, diff --git a/connect_wrapper.h b/connect_wrapper.h index 0fdde02..726d29c 100644 --- a/connect_wrapper.h +++ b/connect_wrapper.h @@ -31,84 +31,111 @@ #include #include "connect_compat.h" =20 -void closeCallbackHelper(virConnectPtr conn, int reason, void *opaque); -int virConnectRegisterCloseCallbackHelper(virConnectPtr c, virConnectClose= Func cb, long goCallbackId); - -virConnectPtr virConnectOpenAuthWrap(const char *name, int *credtype, uint= ncredtype, int callbackID, unsigned int flags); - -int virNodeGetFreePagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pages, - int startcell, - unsigned int cellcount, - unsigned long long *counts, - unsigned int flags); - -char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, - const char *emulatorbin, - const char *arch, - const char *machine, - const char *virttype, - unsigned int flags); - -int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, - unsigned int stats, - virDomainStatsRecordPtr **retStats, +void +closeCallbackHelper(virConnectPtr conn, + int reason, + void *opaque); + +int +virConnectRegisterCloseCallbackHelper(virConnectPtr c, + virConnectCloseFunc cb, + long goCallbackId); + +virConnectPtr +virConnectOpenAuthWrapper(const char *name, + int *credtype, + uint ncredtype, + int callbackID, + unsigned int flags); + +int +virNodeGetFreePagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pages, + int startcell, + unsigned int cellcount, + unsigned long long *counts, + unsigned int flags); + +char * +virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, + const char *emulatorbin, + const char *arch, + const char *machine, + const char *virttype, unsigned int flags); =20 -int virDomainListGetStatsWrapper(virDomainPtr *doms, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags); +int +virConnectGetAllDomainStatsWrapper(virConnectPtr conn, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags); =20 -void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats); +int =20 -int virNodeAllocPagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pageSizes, - unsigned long long *pageCounts, - int startCell, - unsigned int cellCount, +virDomainListGetStatsWrapper(virDomainPtr *doms, + unsigned int stats, + virDomainStatsRecordPtr **retStats, unsigned int flags); =20 -virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, - const char *xml, - unsigned int flags); - -virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, - const char *path= ); - -char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char **xmlCPUs, - unsigned int ncpus, - unsigned int flags); - -int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char *xmlCPU, - unsigned int flags); - -int virNodeGetSEVInfoWrapper(virConnectPtr conn, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); - -int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, - virNWFilterBindingPtr **bindi= ngs, - unsigned int flags); +void +virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats); + +int +virNodeAllocPagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pageSizes, + unsigned long long *pageCounts, + int startCell, + unsigned int cellCount, + unsigned int flags); + +virDomainPtr +virDomainDefineXMLFlagsWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags); =20 -virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, - const char *xml, - unsigned int flag= s); +virStoragePoolPtr +virStoragePoolLookupByTargetPathWrapper(virConnectPtr conn, + const char *path); + +char * +virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags); =20 -virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, - const char = *portdev); +int +virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char *xmlCPU, + unsigned int flags); + +int +virNodeGetSEVInfoWrapper(virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); + +int +virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, + virNWFilterBindingPtr **bindings, + unsigned int flags); + +virNWFilterBindingPtr +virNWFilterBindingCreateXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags); + +virNWFilterBindingPtr +virNWFilterBindingLookupByPortDevWrapper(virConnectPtr conn, + const char *portdev); =20 #endif /* LIBVIRT_GO_CONNECT_WRAPPER_H__ */ diff --git a/domain_events_wrapper.h b/domain_events_wrapper.h index a9c98c1..4016497 100644 --- a/domain_events_wrapper.h +++ b/domain_events_wrapper.h @@ -31,98 +31,172 @@ #include #include "domain_compat.h" =20 -void domainEventLifecycleCallbackHelper(virConnectPtr c, virDomainPtr d, - int event, int detail, void* data); - -void domainEventGenericCallbackHelper(virConnectPtr c, virDomainPtr d, voi= d* data); - -void domainEventRTCChangeCallbackHelper(virConnectPtr c, virDomainPtr d, - long long utcoffset, void* data); - -void domainEventWatchdogCallbackHelper(virConnectPtr c, virDomainPtr d, - int action, void* data); - -void domainEventIOErrorCallbackHelper(virConnectPtr c, virDomainPtr d, - const char *srcPath, const char *devAli= as, - int action, void* data); - -void domainEventGraphicsCallbackHelper(virConnectPtr c, virDomainPtr d, - int phase, const virDomainEventGraphic= sAddress *local, - const virDomainEventGraphicsAddress *r= emote, - const char *authScheme, - const virDomainEventGraphicsSubject *s= ubject, void* data); - -void domainEventIOErrorReasonCallbackHelper(virConnectPtr c, virDomainPtr = d, - const char *srcPath, const char *= devAlias, - int action, const char *reason, v= oid* data); - -void domainEventBlockJobCallbackHelper(virConnectPtr c, virDomainPtr d, - const char *disk, int type, int status= , void* data); - -void domainEventDiskChangeCallbackHelper(virConnectPtr c, virDomainPtr d, - const char *oldSrcPath, const char *= newSrcPath, - const char *devAlias, int reason, vo= id* data); - -void domainEventTrayChangeCallbackHelper(virConnectPtr c, virDomainPtr d, - const char *devAlias, int reason, vo= id* data); - -void domainEventPMSuspendCallbackHelper(virConnectPtr c, virDomainPtr d, - int reason, void* data); - -void domainEventPMWakeupCallbackHelper(virConnectPtr c, virDomainPtr d, - int reason, void* data); - -void domainEventPMSuspendDiskCallbackHelper(virConnectPtr c, virDomainPtr = d, - int reason, void* data); - -void domainEventBalloonChangeCallbackHelper(virConnectPtr c, virDomainPtr = d, - unsigned long long actual, void* = data); - -void domainEventDeviceRemovedCallbackHelper(virConnectPtr c, virDomainPtr = d, - const char *devAlias, void* data); -void domainEventTunableCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - virTypedParameterPtr params, - int nparams, - void *opaque); -void domainEventAgentLifecycleCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - int state, - int reason, - void *opaque); -void domainEventDeviceAddedCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - const char *devAlias, - void *opaque); -void domainEventMigrationIterationCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - int iteration, - void *opaque); -void domainEventJobCompletedCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - virTypedParameterPtr params, - int nparams, - void *opaque); -void domainEventDeviceRemovalFailedCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - const char *devAlias, - void *opaque); -void domainEventMetadataChangeCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - int type, - const char *nsuri, - void *opaque); -void domainEventBlockThresholdCallbackHelper(virConnectPtr conn, - virDomainPtr dom, - const char *dev, - const char *path, - unsigned long long threshold, - unsigned long long excess, - void *opaque); - -int virConnectDomainEventRegisterAnyWrapper(virConnectPtr c, virDomainPtr= d, - int eventID, virConnectDomainEven= tGenericCallback cb, - long goCallbackId); +void +domainEventLifecycleCallbackHelper(virConnectPtr c, + virDomainPtr d, + int event, + int detail, + void *data); + +void +domainEventGenericCallbackHelper(virConnectPtr c, + virDomainPtr d, + void *data); + +void +domainEventRTCChangeCallbackHelper(virConnectPtr c, + virDomainPtr d, + long long utcoffset, + void *data); + +void +domainEventWatchdogCallbackHelper(virConnectPtr c, + virDomainPtr d, + int action, + void *data); + +void +domainEventIOErrorCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *srcPath, + const char *devAlias, + int action, + void *data); + +void +domainEventGraphicsCallbackHelper(virConnectPtr c, + virDomainPtr d, + int phase, + const virDomainEventGraphicsAddress *loc= al, + const virDomainEventGraphicsAddress *rem= ote, + const char *authScheme, + const virDomainEventGraphicsSubject *sub= ject, + void *data); + +void +domainEventIOErrorReasonCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *srcPath, + const char *devAlias, + int action, + const char *reason, + void *data); + +void +domainEventBlockJobCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *disk, + int type, + int status, + void *data); + +void +domainEventDiskChangeCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *oldSrcPath, + const char *newSrcPath, + const char *devAlias, + int reason, + void *data); + +void +domainEventTrayChangeCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *devAlias, + int reason, + void *data); + +void +domainEventPMSuspendCallbackHelper(virConnectPtr c, + virDomainPtr d, + int reason, + void *data); + +void +domainEventPMWakeupCallbackHelper(virConnectPtr c, + virDomainPtr d, + int reason, + void *data); + +void +domainEventPMSuspendDiskCallbackHelper(virConnectPtr c, + virDomainPtr d, + int reason, + void *data); + +void +domainEventBalloonChangeCallbackHelper(virConnectPtr c, + virDomainPtr d, + unsigned long long actual, + void *data); + +void +domainEventDeviceRemovedCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *devAlias, + void *data); + +void +domainEventTunableCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + virTypedParameterPtr params, + int nparams, + void *opaque); + +void +domainEventAgentLifecycleCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + int state, + int reason, + void *opaque); + +void +domainEventDeviceAddedCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + const char *devAlias, + void *opaque); + +void +domainEventMigrationIterationCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + int iteration, + void *opaque); + +void +domainEventJobCompletedCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + virTypedParameterPtr params, + int nparams, + void *opaque); + +void +domainEventDeviceRemovalFailedCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + const char *devAlias, + void *opaque); + +void +domainEventMetadataChangeCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + int type, + const char *nsuri, + void *opaque); + +void +domainEventBlockThresholdCallbackHelper(virConnectPtr conn, + virDomainPtr dom, + const char *dev, + const char *path, + unsigned long long threshold, + unsigned long long excess, + void *opaque); + +int +virConnectDomainEventRegisterAnyWrapper(virConnectPtr c, + virDomainPtr d, + int eventID, + virConnectDomainEventGenericCallba= ck cb, + long goCallbackId); =20 =20 #endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ diff --git a/domain_snapshot.go b/domain_snapshot.go index a133d5f..706c1a9 100644 --- a/domain_snapshot.go +++ b/domain_snapshot.go @@ -28,9 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include +#include "domain_snapshot_wrapper.h" */ import "C" =20 diff --git a/domain_wrapper.h b/domain_wrapper.h index 7f857d7..c344565 100644 --- a/domain_wrapper.h +++ b/domain_wrapper.h @@ -31,130 +31,174 @@ #include #include "domain_compat.h" =20 -int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, - const char *to, - unsigned int dumpformat, - unsigned int flags); - - -int virDomainGetTimeWrapper(virDomainPtr dom, - long long *seconds, - unsigned int *nseconds, - unsigned int flags); - -int virDomainSetTimeWrapper(virDomainPtr dom, - long long seconds, - unsigned int nseconds, - unsigned int flags); - -int virDomainFSFreezeWrapper(virDomainPtr dom, - const char **mountpoints, - unsigned int nmountpoints, - unsigned int flags); - -int virDomainFSThawWrapper(virDomainPtr dom, - const char **mountpoints, - unsigned int nmountpoints, - unsigned int flags); - - -int virDomainBlockCopyWrapper(virDomainPtr dom, const char *disk, - const char *destxml, - virTypedParameterPtr params, - int nparams, - unsigned int flags); - -int virDomainOpenGraphicsFDWrapper(virDomainPtr dom, - unsigned int idx, - unsigned int flags); - - -void virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); - -int virDomainGetFSInfoWrapper(virDomainPtr dom, - virDomainFSInfoPtr **info, - unsigned int flags); - - -int virDomainInterfaceAddressesWrapper(virDomainPtr dom, - virDomainInterfacePtr **ifaces, - unsigned int source, - unsigned int flags); - -void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface); - -void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info); - -int virDomainGetIOThreadInfoWrapper(virDomainPtr domain, - virDomainIOThreadInfoPtr **info, - unsigned int flags); -int virDomainPinIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned char *cpumap, - int maplen, - unsigned int flags); - -int virDomainAddIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags); -int virDomainDelIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags); - -int virDomainSetUserPasswordWrapper(virDomainPtr dom, - const char *user, - const char *password, - unsigned int flags); - -int virDomainRenameWrapper(virDomainPtr dom, - const char *new_name, - unsigned int flags); -int virDomainGetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); -int virDomainSetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr params, - int nparams, - unsigned int flags); -int virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, - unsigned int flags); -int virDomainGetGuestVcpusWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - unsigned int *nparams, - unsigned int flags); - -int virDomainSetGuestVcpusWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags); -int virDomainSetVcpuWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags); -int virDomainSetBlockThresholdWrapper(virDomainPtr domain, - const char *dev, - unsigned long long threshold, +int +virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, + const char *to, + unsigned int dumpformat, + unsigned int flags); + + +int +virDomainGetTimeWrapper(virDomainPtr dom, + long long *seconds, + unsigned int *nseconds, + unsigned int flags); + +int +virDomainSetTimeWrapper(virDomainPtr dom, + long long seconds, + unsigned int nseconds, + unsigned int flags); + +int +virDomainFSFreezeWrapper(virDomainPtr dom, + const char **mountpoints, + unsigned int nmountpoints, + unsigned int flags); + +int +virDomainFSThawWrapper(virDomainPtr dom, + const char **mountpoints, + unsigned int nmountpoints, + unsigned int flags); + + +int +virDomainBlockCopyWrapper(virDomainPtr dom, + const char *disk, + const char *destxml, + virTypedParameterPtr params, + int nparams, + unsigned int flags); + +int +virDomainOpenGraphicsFDWrapper(virDomainPtr dom, + unsigned int idx, + unsigned int flags); + + +void +virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); + +int +virDomainGetFSInfoWrapper(virDomainPtr dom, + virDomainFSInfoPtr **info, + unsigned int flags); + + +int +virDomainInterfaceAddressesWrapper(virDomainPtr dom, + virDomainInterfacePtr **ifaces, + unsigned int source, + unsigned int flags); + +void +virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface); + +void +virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info); + +int +virDomainGetIOThreadInfoWrapper(virDomainPtr domain, + virDomainIOThreadInfoPtr **info, + unsigned int flags); +int +virDomainPinIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned char *cpumap, + int maplen, + unsigned int flags); + +int +virDomainAddIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags); + +int +virDomainDelIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags); + +int +virDomainSetUserPasswordWrapper(virDomainPtr dom, + const char *user, + const char *password, + unsigned int flags); + +int +virDomainRenameWrapper(virDomainPtr dom, + const char *new_name, + unsigned int flags); + +int +virDomainGetPerfEventsWrapper(virDomainPtr dom, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags); + +int +virDomainSetPerfEventsWrapper(virDomainPtr dom, + virTypedParameterPtr params, + int nparams, + unsigned int flags); + +int +virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, unsigned int flags); -int virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, - unsigned long long *downtime, - unsigned int flags); - -char *virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, - unsigned int flags); -int virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, - const char *dxml, - unsigned int flags); -int virDomainSetLifecycleActionWrapper(virDomainPtr domain, - unsigned int type, - unsigned int action, + +int +virDomainGetGuestVcpusWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + unsigned int *nparams, + unsigned int flags); + +int +virDomainSetGuestVcpusWrapper(virDomainPtr domain, + const char *cpumap, + int state, + unsigned int flags); + +int +virDomainSetVcpuWrapper(virDomainPtr domain, + const char *cpumap, + int state, + unsigned int flags); + +int +virDomainSetBlockThresholdWrapper(virDomainPtr domain, + const char *dev, + unsigned long long threshold, + unsigned int flags); + +int +virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, + unsigned long long *downtime, + unsigned int flags); + +char * +virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, + unsigned int flags); + +int +virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, + const char *dxml, + unsigned int flags); + +int +virDomainSetLifecycleActionWrapper(virDomainPtr domain, + unsigned int type, + unsigned int action, + unsigned int flags); + +int +virDomainDetachDeviceAliasWrapper(virDomainPtr domain, + const char *alias, + unsigned int flags); + +int +virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, unsigned int flags); -int virDomainDetachDeviceAliasWrapper(virDomainPtr domain, - const char *alias, - unsigned int flags); -int virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); =20 #endif /* LIBVIRT_GO_DOMAIN_WRAPPER_H__ */ diff --git a/events_wrapper.h b/events_wrapper.h index 67b3624..9e9607c 100644 --- a/events_wrapper.h +++ b/events_wrapper.h @@ -30,13 +30,36 @@ #include #include =20 -int virEventAddHandleWrapper(int fd, int events, int callbackID); -int virEventAddTimeoutWrapper(int freq, int callbackID); -void virEventRegisterImplWrapper(void); - -void eventHandleCallbackInvoke(int watch, int fd, int events, uintptr_t ca= llback, uintptr_t opaque); -void eventTimeoutCallbackInvoke(int timer, uintptr_t callback, uintptr_t o= paque); -void eventHandleCallbackFree(uintptr_t callback, uintptr_t opaque); -void eventTimeoutCallbackFree(uintptr_t callback, uintptr_t opaque); +int +virEventAddHandleWrapper(int fd, + int events, + int callbackID); + +int +virEventAddTimeoutWrapper(int freq, + int callbackID); + +void +virEventRegisterImplWrapper(void); + +void +eventHandleCallbackInvoke(int watch, + int fd, + int events, + uintptr_t callback, + uintptr_t opaque); + +void +eventTimeoutCallbackInvoke(int timer, + uintptr_t callback, + uintptr_t opaque); + +void +eventHandleCallbackFree(uintptr_t callback, + uintptr_t opaque); + +void +eventTimeoutCallbackFree(uintptr_t callback, + uintptr_t opaque); =20 #endif /* LIBVIRT_GO_EVENTS_WRAPPER_H__ */ diff --git a/interface.go b/interface.go index 8a0c7e2..bd39ed0 100644 --- a/interface.go +++ b/interface.go @@ -28,9 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include +#include "interface_wrapper.h" */ import "C" =20 diff --git a/lxc_wrapper.h b/lxc_wrapper.h index 4edef2a..22f2d55 100644 --- a/lxc_wrapper.h +++ b/lxc_wrapper.h @@ -31,8 +31,9 @@ #include #include =20 -int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, - unsigned int flags); +int +virDomainLxcEnterCGroupWrapper(virDomainPtr domain, + unsigned int flags); =20 =20 #endif /* LIBVIRT_GO_LXC_COMPAT_H__ */ diff --git a/network_events_wrapper.h b/network_events_wrapper.h index 8b08d00..201be64 100644 --- a/network_events_wrapper.h +++ b/network_events_wrapper.h @@ -31,20 +31,30 @@ #include #include "network_compat.h" =20 -void networkEventLifecycleCallbackHelper(virConnectPtr c, virNetworkPtr d, - int event, int detail, void* data); +void +networkEventLifecycleCallbackHelper(virConnectPtr c, + virNetworkPtr d, + int event, + int detail, + void* data); =20 -int virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, virNetworkP= tr d, - int eventID, virConnectNetworkEve= ntGenericCallback cb, +int +virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, + virNetworkPtr d, + int eventID, + virConnectNetworkEventGenericCall= back cb, long goCallbackId); =20 -int virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, - virNetworkPtr d, - int eventID, - virConnectNetworkEventGeneric= Callback cb, - long goCallbackId); -int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); +int +virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, + virNetworkPtr d, + int eventID, + virConnectNetworkEventGenericCall= back cb, + long goCallbackId); + +int +virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 =20 #endif /* LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ */ diff --git a/network_wrapper.h b/network_wrapper.h index 66fb730..8a36d13 100644 --- a/network_wrapper.h +++ b/network_wrapper.h @@ -31,11 +31,13 @@ #include #include "network_compat.h" =20 -void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); +void +virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); =20 -int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, - const char *mac, - virNetworkDHCPLeasePtr **leases, - unsigned int flags); +int +virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, + const char *mac, + virNetworkDHCPLeasePtr **leases, + unsigned int flags); =20 #endif /* LIBVIRT_GO_NETWORK_WRAPPER_H__ */ diff --git a/node_device.go b/node_device.go index 01be1e4..0caf98b 100644 --- a/node_device.go +++ b/node_device.go @@ -28,10 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "node_device_compat.h" +#include "node_device_wrapper.h" */ import "C" =20 diff --git a/node_device_events_wrapper.h b/node_device_events_wrapper.h index 04cb71b..a3d014d 100644 --- a/node_device_events_wrapper.h +++ b/node_device_events_wrapper.h @@ -31,17 +31,28 @@ #include #include "node_device_compat.h" =20 -void nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, virNodeDevice= Ptr d, - int event, int detail, void* data= ); - -void nodeDeviceEventGenericCallbackHelper(virConnectPtr c, virNodeDevicePt= r d, void* data); - -int virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, virNodeD= evicePtr d, - int eventID, virConnectNodeDev= iceEventGenericCallback cb, +void +nodeDeviceEventLifecycleCallbackHelper(virConnectPtr c, + virNodeDevicePtr d, + int event, + int detail, + void* data); + +void +nodeDeviceEventGenericCallbackHelper(virConnectPtr c, + virNodeDevicePtr d, + void* data); + +int +virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, + virNodeDevicePtr d, + int eventID, + virConnectNodeDeviceEventGener= icCallback cb, long goCallbackId); =20 -int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); +int +virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 =20 #endif /* LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ */ diff --git a/nwfilter.go b/nwfilter.go index 6d0c052..441fcca 100644 --- a/nwfilter.go +++ b/nwfilter.go @@ -28,9 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include +#include "nwfilter_wrapper.h" */ import "C" =20 diff --git a/nwfilter_binding_wrapper.h b/nwfilter_binding_wrapper.h index 895075f..63942be 100644 --- a/nwfilter_binding_wrapper.h +++ b/nwfilter_binding_wrapper.h @@ -30,13 +30,24 @@ #include #include "nwfilter_binding_compat.h" =20 -const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing); -const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding); -char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, - unsigned int flags); -int virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding); -int virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding); -int virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding); +const char * +virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr binding); + +const char * +virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr binding); + +char * +virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, + unsigned int flags); + +int +virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding); + +int +virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding); + +int +virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding); =20 =20 #endif /* LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ */ diff --git a/qemu_wrapper.h b/qemu_wrapper.h index 228e444..e365fbd 100644 --- a/qemu_wrapper.h +++ b/qemu_wrapper.h @@ -32,16 +32,26 @@ #include #include "qemu_compat.h" =20 -void domainQemuMonitorEventCallbackHelper(virConnectPtr c, virDomainPtr d, - const char *event, long long secs, - unsigned int micros, const char *details, void *data); +void +domainQemuMonitorEventCallbackHelper(virConnectPtr c, + virDomainPtr d, + const char *event, + long long secs, + unsigned int micros, + const char *details, + void *data); =20 -int virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr c, virD= omainPtr d, - const char *event, virConnectDomainQemuMonitorEventCallback cb, - long goCallbackId, unsigned int flags); +int +virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr c, + virDomainPtr d, + const char *event, + virConnectDomainQemuMonito= rEventCallback cb, + long goCallbackId, + unsigned int flags); =20 -int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, - int callbackID); +int +virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, + int callbackID); =20 =20 #endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ diff --git a/secret.go b/secret.go index 4507e1e..9bd8b36 100644 --- a/secret.go +++ b/secret.go @@ -28,10 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "secret_compat.h" +#include "secret_wrapper.h" */ import "C" =20 diff --git a/secret_events_wrapper.h b/secret_events_wrapper.h index 6758b54..bf1c571 100644 --- a/secret_events_wrapper.h +++ b/secret_events_wrapper.h @@ -31,16 +31,26 @@ #include #include "secret_compat.h" =20 -void secretEventLifecycleCallbackHelper(virConnectPtr c, virSecretPtr d, - int event, int detail, void* data); -void secretEventGenericCallbackHelper(virConnectPtr c, virSecretPtr d, +void +secretEventLifecycleCallbackHelper(virConnectPtr c, + virSecretPtr d, + int event, + int detail, void* data); =20 -int virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, virSecretPtr= d, - int eventID, virConnectSecretEven= tGenericCallback cb, - long goCallbackId); +void secretEventGenericCallbackHelper(virConnectPtr c, + virSecretPtr d, + void* data); =20 -int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); +int +virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, + virSecretPtr d, + int eventID, + virConnectSecretEventGenericCallba= ck cb, + long goCallbackId); + +int +virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 #endif /* LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ */ diff --git a/storage_pool.go b/storage_pool.go index 87d17d4..a2d1462 100644 --- a/storage_pool.go +++ b/storage_pool.go @@ -28,10 +28,8 @@ package libvirt =20 /* #cgo pkg-config: libvirt -#include -#include #include -#include "storage_pool_compat.h" +#include "storage_pool_wrapper.h" */ import "C" =20 diff --git a/storage_pool_events_wrapper.h b/storage_pool_events_wrapper.h index f178951..84dcc8f 100644 --- a/storage_pool_events_wrapper.h +++ b/storage_pool_events_wrapper.h @@ -31,16 +31,27 @@ #include #include "storage_pool_compat.h" =20 -void storagePoolEventLifecycleCallbackHelper(virConnectPtr c, virStoragePo= olPtr d, - int event, int detail, void* data); -void storagePoolEventGenericCallbackHelper(virConnectPtr c, virStoragePool= Ptr d, - void* data); +void +storagePoolEventLifecycleCallbackHelper(virConnectPtr c, + virStoragePoolPtr d, + int event, + int detail, + void* data); =20 -int virConnectStoragePoolEventRegisterAnyWrapper(virConnectPtr c, virStor= agePoolPtr d, - int eventID, virConnectStoragePoolEventGenericCallback cb, - long goCallbackId); +void +storagePoolEventGenericCallbackHelper(virConnectPtr c, + virStoragePoolPtr d, + void* data); =20 -int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); +int +virConnectStoragePoolEventRegisterAnyWrapper(virConnectPtr c, + virStoragePoolPtr d, + int eventID, + virConnectStoragePoolEventGen= ericCallback cb, + long goCallbackId); + +int +virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID); =20 #endif /* LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ */ diff --git a/storage_volume_wrapper.h b/storage_volume_wrapper.h index 77d75e0..6fd8974 100644 --- a/storage_volume_wrapper.h +++ b/storage_volume_wrapper.h @@ -31,8 +31,9 @@ #include #include "storage_volume_compat.h" =20 -int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, - virStorageVolInfoPtr info, - unsigned int flags); +int +virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, + virStorageVolInfoPtr info, + unsigned int flags); =20 #endif /* LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ */ diff --git a/stream_wrapper.h b/stream_wrapper.h index b8417d3..5484441 100644 --- a/stream_wrapper.h +++ b/stream_wrapper.h @@ -31,23 +31,44 @@ #include #include "stream_compat.h" =20 -int virStreamSendAllWrapper(virStreamPtr st, int callbackID); -int virStreamRecvAllWrapper(virStreamPtr st, int callbackID); -int virStreamSparseSendAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID, int skipCallbackID); -int virStreamSparseRecvAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID); - -int virStreamEventAddCallbackWrapper(virStreamPtr st, int events, int call= backID); -int virStreamRecvFlagsWrapper(virStreamPtr st, - char *data, - size_t nbytes, - unsigned int flags); - -int virStreamSendHoleWrapper(virStreamPtr st, - long long length, - unsigned int flags); - -int virStreamRecvHoleWrapper(virStreamPtr, - long long *length, - unsigned int flags); +int +virStreamSendAllWrapper(virStreamPtr st, + int callbackID); + +int +virStreamRecvAllWrapper(virStreamPtr st, + int callbackID); + +int +virStreamSparseSendAllWrapper(virStreamPtr st, + int callbackID, + int holeCallbackID, + int skipCallbackID); + +int +virStreamSparseRecvAllWrapper(virStreamPtr st, + int callbackID, + int holeCallbackID); + +int +virStreamEventAddCallbackWrapper(virStreamPtr st, + int events, + int callbackID); + +int +virStreamRecvFlagsWrapper(virStreamPtr st, + char *data, + size_t nbytes, + unsigned int flags); + +int +virStreamSendHoleWrapper(virStreamPtr st, + long long length, + unsigned int flags); + +int +virStreamRecvHoleWrapper(virStreamPtr, + long long *length, + unsigned int flags); =20 #endif /* LIBVIRT_GO_STREAM_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747497541428.0846868731642; Mon, 16 Jul 2018 06:24:57 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1A17C5F726; Mon, 16 Jul 2018 13:24:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D969560C4E; Mon, 16 Jul 2018 13:24:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8059B4A464; Mon, 16 Jul 2018 13:24:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOlsB028139 for ; Mon, 16 Jul 2018 09:24:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id 721D22027047; Mon, 16 Jul 2018 13:24:47 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id CEB822026D65; Mon, 16 Jul 2018 13:24:46 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:06 +0100 Message-Id: <20180716132423.10354-21-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 20/37] storage vol: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 16 Jul 2018 13:24:56 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each storage volume C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- storage_volume.go | 79 ++++++++------ storage_volume_wrapper.go | 211 +++++++++++++++++++++++++++++++++++++- storage_volume_wrapper.h | 79 +++++++++++++- 3 files changed, 332 insertions(+), 37 deletions(-) diff --git a/storage_volume.go b/storage_volume.go index d913c59..711c3c1 100644 --- a/storage_volume.go +++ b/storage_volume.go @@ -123,27 +123,30 @@ type StorageVolInfo struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolDelete func (v *StorageVol) Delete(flags StorageVolDeleteFlags) error { - result :=3D C.virStorageVolDelete(v.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStorageVolDeleteWrapper(v.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolFree func (v *StorageVol) Free() error { - ret :=3D C.virStorageVolFree(v.ptr) + var err C.virError + ret :=3D C.virStorageVolFreeWrapper(v.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolRef func (c *StorageVol) Ref() error { - ret :=3D C.virStorageVolRef(c.ptr) + var err C.virError + ret :=3D C.virStorageVolRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -151,9 +154,10 @@ func (c *StorageVol) Ref() error { // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolGetInfo func (v *StorageVol) GetInfo() (*StorageVolInfo, error) { var cinfo C.virStorageVolInfo - result :=3D C.virStorageVolGetInfo(v.ptr, &cinfo) + var err C.virError + result :=3D C.virStorageVolGetInfoWrapper(v.ptr, &cinfo, &err) if result =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVolInfo{ Type: StorageVolType(cinfo._type), @@ -169,9 +173,10 @@ func (v *StorageVol) GetInfoFlags(flags StorageVolInfo= Flags) (*StorageVolInfo, e } =20 var cinfo C.virStorageVolInfo - result :=3D C.virStorageVolGetInfoFlagsWrapper(v.ptr, &cinfo, C.uint(flag= s)) + var err C.virError + result :=3D C.virStorageVolGetInfoFlagsWrapper(v.ptr, &cinfo, C.uint(flag= s), &err) if result =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVolInfo{ Type: StorageVolType(cinfo._type), @@ -182,27 +187,30 @@ func (v *StorageVol) GetInfoFlags(flags StorageVolInf= oFlags) (*StorageVolInfo, e =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolGetKey func (v *StorageVol) GetKey() (string, error) { - key :=3D C.virStorageVolGetKey(v.ptr) + var err C.virError + key :=3D C.virStorageVolGetKeyWrapper(v.ptr, &err) if key =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(key), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolGetName func (v *StorageVol) GetName() (string, error) { - name :=3D C.virStorageVolGetName(v.ptr) + var err C.virError + name :=3D C.virStorageVolGetNameWrapper(v.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolGetPath func (v *StorageVol) GetPath() (string, error) { - result :=3D C.virStorageVolGetPath(v.ptr) + var err C.virError + result :=3D C.virStorageVolGetPathWrapper(v.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } path :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -211,9 +219,10 @@ func (v *StorageVol) GetPath() (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolGetXMLDesc func (v *StorageVol) GetXMLDesc(flags uint32) (string, error) { - result :=3D C.virStorageVolGetXMLDesc(v.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStorageVolGetXMLDescWrapper(v.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -222,54 +231,60 @@ func (v *StorageVol) GetXMLDesc(flags uint32) (string= , error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolResize func (v *StorageVol) Resize(capacity uint64, flags StorageVolResizeFlags) = error { - result :=3D C.virStorageVolResize(v.ptr, C.ulonglong(capacity), C.uint(fl= ags)) + var err C.virError + result :=3D C.virStorageVolResizeWrapper(v.ptr, C.ulonglong(capacity), C.= uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolWipe func (v *StorageVol) Wipe(flags uint32) error { - result :=3D C.virStorageVolWipe(v.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStorageVolWipeWrapper(v.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolWipePattern func (v *StorageVol) WipePattern(algorithm StorageVolWipeAlgorithm, flags = uint32) error { - result :=3D C.virStorageVolWipePattern(v.ptr, C.uint(algorithm), C.uint(f= lags)) + var err C.virError + result :=3D C.virStorageVolWipePatternWrapper(v.ptr, C.uint(algorithm), C= .uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolUpload func (v *StorageVol) Upload(stream *Stream, offset, length uint64, flags S= torageVolUploadFlags) error { - if C.virStorageVolUpload(v.ptr, stream.ptr, C.ulonglong(offset), - C.ulonglong(length), C.uint(flags)) =3D=3D -1 { - return GetLastError() + var err C.virError + if C.virStorageVolUploadWrapper(v.ptr, stream.ptr, C.ulonglong(offset), + C.ulonglong(length), C.uint(flags), &err) =3D=3D -1 { + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolDownload func (v *StorageVol) Download(stream *Stream, offset, length uint64, flags= StorageVolDownloadFlags) error { - if C.virStorageVolDownload(v.ptr, stream.ptr, C.ulonglong(offset), - C.ulonglong(length), C.uint(flags)) =3D=3D -1 { - return GetLastError() + var err C.virError + if C.virStorageVolDownloadWrapper(v.ptr, stream.ptr, C.ulonglong(offset), + C.ulonglong(length), C.uint(flags), &err) =3D=3D -1 { + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolLookupByVolume func (v *StorageVol) LookupPoolByVolume() (*StoragePool, error) { - poolPtr :=3D C.virStoragePoolLookupByVolume(v.ptr) + var err C.virError + poolPtr :=3D C.virStoragePoolLookupByVolumeWrapper(v.ptr, &err) if poolPtr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: poolPtr}, nil } diff --git a/storage_volume_wrapper.go b/storage_volume_wrapper.go index 63cc2b5..d41a8a7 100644 --- a/storage_volume_wrapper.go +++ b/storage_volume_wrapper.go @@ -31,16 +31,219 @@ package libvirt #include #include "storage_volume_wrapper.h" =20 -int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, - virStorageVolInfoPtr info, - unsigned int flags) +virStoragePoolPtr +virStoragePoolLookupByVolumeWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + virStoragePoolPtr ret =3D virStoragePoolLookupByVolume(vol); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolDeleteWrapper(virStorageVolPtr vol, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStorageVolDelete(vol, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolDownloadWrapper(virStorageVolPtr vol, + virStreamPtr stream, + unsigned long long offset, + unsigned long long length, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStorageVolDownload(vol, stream, offset, length, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolFreeWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + int ret =3D virStorageVolFree(vol); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virStorageVolGetConnectWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + virConnectPtr ret =3D virStorageVolGetConnect(vol); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolGetInfoWrapper(virStorageVolPtr vol, + virStorageVolInfoPtr info, + virErrorPtr err) +{ + int ret =3D virStorageVolGetInfo(vol, info); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, + virStorageVolInfoPtr info, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 3000000 assert(0); // Caller should have checked version #else - return virStorageVolGetInfoFlags(vol, info, flags); + int ret =3D virStorageVolGetInfoFlags(vol, info, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 + +const char * +virStorageVolGetKeyWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + const char *ret =3D virStorageVolGetKey(vol); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virStorageVolGetNameWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + const char *ret =3D virStorageVolGetName(vol); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virStorageVolGetPathWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + char *ret =3D virStorageVolGetPath(vol); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virStorageVolGetXMLDescWrapper(virStorageVolPtr vol, + unsigned int flags, + virErrorPtr err) +{ + char *ret =3D virStorageVolGetXMLDesc(vol, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolRefWrapper(virStorageVolPtr vol, + virErrorPtr err) +{ + int ret =3D virStorageVolRef(vol); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolResizeWrapper(virStorageVolPtr vol, + unsigned long long capacity, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStorageVolResize(vol, capacity, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolUploadWrapper(virStorageVolPtr vol, + virStreamPtr stream, + unsigned long long offset, + unsigned long long length, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStorageVolUpload(vol, stream, offset, length, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolWipeWrapper(virStorageVolPtr vol, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStorageVolWipe(vol, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStorageVolWipePatternWrapper(virStorageVolPtr vol, + unsigned int algorithm, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStorageVolWipePattern(vol, algorithm, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/storage_volume_wrapper.h b/storage_volume_wrapper.h index 6fd8974..b3ed2a9 100644 --- a/storage_volume_wrapper.h +++ b/storage_volume_wrapper.h @@ -31,9 +31,86 @@ #include #include "storage_volume_compat.h" =20 +virStoragePoolPtr +virStoragePoolLookupByVolumeWrapper(virStorageVolPtr vol, + virErrorPtr err); + +int +virStorageVolDeleteWrapper(virStorageVolPtr vol, + unsigned int flags, + virErrorPtr err); + +int +virStorageVolDownloadWrapper(virStorageVolPtr vol, + virStreamPtr stream, + unsigned long long offset, + unsigned long long length, + unsigned int flags, + virErrorPtr err); + +int +virStorageVolFreeWrapper(virStorageVolPtr vol, + virErrorPtr err); + +virConnectPtr +virStorageVolGetConnectWrapper(virStorageVolPtr vol, + virErrorPtr err); + +int +virStorageVolGetInfoWrapper(virStorageVolPtr vol, + virStorageVolInfoPtr info, + virErrorPtr err); + int virStorageVolGetInfoFlagsWrapper(virStorageVolPtr vol, virStorageVolInfoPtr info, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +const char * +virStorageVolGetKeyWrapper(virStorageVolPtr vol, + virErrorPtr err); + +const char * +virStorageVolGetNameWrapper(virStorageVolPtr vol, + virErrorPtr err); + +char * +virStorageVolGetPathWrapper(virStorageVolPtr vol, + virErrorPtr err); + +char * +virStorageVolGetXMLDescWrapper(virStorageVolPtr vol, + unsigned int flags, + virErrorPtr err); + +int +virStorageVolRefWrapper(virStorageVolPtr vol, + virErrorPtr err); + +int +virStorageVolResizeWrapper(virStorageVolPtr vol, + unsigned long long capacity, + unsigned int flags, + virErrorPtr err); + +int +virStorageVolUploadWrapper(virStorageVolPtr vol, + virStreamPtr stream, + unsigned long long offset, + unsigned long long length, + unsigned int flags, + virErrorPtr err); + +int +virStorageVolWipeWrapper(virStorageVolPtr vol, + unsigned int flags, + virErrorPtr err); + +int +virStorageVolWipePatternWrapper(virStorageVolPtr vol, + unsigned int algorithm, + unsigned int flags, + virErrorPtr err); =20 #endif /* LIBVIRT_GO_STORAGE_VOLUME_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747521539394.2704166565901; Mon, 16 Jul 2018 06:25:21 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 28438307CF35; Mon, 16 Jul 2018 13:25:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D6B582010CA0; Mon, 16 Jul 2018 13:25:19 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7B6F81853DA3; Mon, 16 Jul 2018 13:25:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOmlI028154 for ; Mon, 16 Jul 2018 09:24:48 -0400 Received: by smtp.corp.redhat.com (Postfix) id AAC312027047; Mon, 16 Jul 2018 13:24:48 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id D48972026D65; Mon, 16 Jul 2018 13:24:47 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:07 +0100 Message-Id: <20180716132423.10354-22-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 21/37] storage pool: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Mon, 16 Jul 2018 13:25:20 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each storage pool C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- storage_pool.go | 117 +++++++++------ storage_pool_wrapper.go | 309 ++++++++++++++++++++++++++++++++++++++++ storage_pool_wrapper.h | 117 +++++++++++++++ 3 files changed, 496 insertions(+), 47 deletions(-) diff --git a/storage_pool.go b/storage_pool.go index a2d1462..9bfcc79 100644 --- a/storage_pool.go +++ b/storage_pool.go @@ -105,54 +105,60 @@ type StoragePoolInfo struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolBuild func (p *StoragePool) Build(flags StoragePoolBuildFlags) error { - result :=3D C.virStoragePoolBuild(p.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStoragePoolBuildWrapper(p.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolCreate func (p *StoragePool) Create(flags StoragePoolCreateFlags) error { - result :=3D C.virStoragePoolCreate(p.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStoragePoolCreateWrapper(p.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolDelete func (p *StoragePool) Delete(flags StoragePoolDeleteFlags) error { - result :=3D C.virStoragePoolDelete(p.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStoragePoolDeleteWrapper(p.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolDestroy func (p *StoragePool) Destroy() error { - result :=3D C.virStoragePoolDestroy(p.ptr) + var err C.virError + result :=3D C.virStoragePoolDestroyWrapper(p.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolFree func (p *StoragePool) Free() error { - ret :=3D C.virStoragePoolFree(p.ptr) + var err C.virError + ret :=3D C.virStoragePoolFreeWrapper(p.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolRef func (c *StoragePool) Ref() error { - ret :=3D C.virStoragePoolRef(c.ptr) + var err C.virError + ret :=3D C.virStoragePoolRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -160,9 +166,10 @@ func (c *StoragePool) Ref() error { // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolGetAutostart func (p *StoragePool) GetAutostart() (bool, error) { var out C.int - result :=3D C.virStoragePoolGetAutostart(p.ptr, (*C.int)(unsafe.Pointer(&= out))) + var err C.virError + result :=3D C.virStoragePoolGetAutostartWrapper(p.ptr, (*C.int)(unsafe.Po= inter(&out)), &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } switch out { case 1: @@ -175,9 +182,10 @@ func (p *StoragePool) GetAutostart() (bool, error) { // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolGetInfo func (p *StoragePool) GetInfo() (*StoragePoolInfo, error) { var cinfo C.virStoragePoolInfo - result :=3D C.virStoragePoolGetInfo(p.ptr, &cinfo) + var err C.virError + result :=3D C.virStoragePoolGetInfoWrapper(p.ptr, &cinfo, &err) if result =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePoolInfo{ State: StoragePoolState(cinfo.state), @@ -189,9 +197,10 @@ func (p *StoragePool) GetInfo() (*StoragePoolInfo, err= or) { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolGetName func (p *StoragePool) GetName() (string, error) { - name :=3D C.virStoragePoolGetName(p.ptr) + var err C.virError + name :=3D C.virStoragePoolGetNameWrapper(p.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } @@ -200,9 +209,10 @@ func (p *StoragePool) GetName() (string, error) { func (p *StoragePool) GetUUID() ([]byte, error) { var cUuid [C.VIR_UUID_BUFLEN](byte) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virStoragePoolGetUUID(p.ptr, (*C.uchar)(cuidPtr)) + var err C.virError + result :=3D C.virStoragePoolGetUUIDWrapper(p.ptr, (*C.uchar)(cuidPtr), &e= rr) if result !=3D 0 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } return C.GoBytes(cuidPtr, C.VIR_UUID_BUFLEN), nil } @@ -211,18 +221,20 @@ func (p *StoragePool) GetUUID() ([]byte, error) { func (p *StoragePool) GetUUIDString() (string, error) { var cUuid [C.VIR_UUID_STRING_BUFLEN](C.char) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virStoragePoolGetUUIDString(p.ptr, (*C.char)(cuidPtr)) + var err C.virError + result :=3D C.virStoragePoolGetUUIDStringWrapper(p.ptr, (*C.char)(cuidPtr= ), &err) if result !=3D 0 { - return "", GetLastError() + return "", makeError(&err) } return C.GoString((*C.char)(cuidPtr)), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolGetXMLDesc func (p *StoragePool) GetXMLDesc(flags StorageXMLFlags) (string, error) { - result :=3D C.virStoragePoolGetXMLDesc(p.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStoragePoolGetXMLDescWrapper(p.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -231,9 +243,10 @@ func (p *StoragePool) GetXMLDesc(flags StorageXMLFlags= ) (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolIsActive func (p *StoragePool) IsActive() (bool, error) { - result :=3D C.virStoragePoolIsActive(p.ptr) + var err C.virError + result :=3D C.virStoragePoolIsActiveWrapper(p.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -243,9 +256,10 @@ func (p *StoragePool) IsActive() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolIsPersistent func (p *StoragePool) IsPersistent() (bool, error) { - result :=3D C.virStoragePoolIsPersistent(p.ptr) + var err C.virError + result :=3D C.virStoragePoolIsPersistentWrapper(p.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -262,27 +276,30 @@ func (p *StoragePool) SetAutostart(autostart bool) er= ror { default: cAutostart =3D 0 } - result :=3D C.virStoragePoolSetAutostart(p.ptr, cAutostart) + var err C.virError + result :=3D C.virStoragePoolSetAutostartWrapper(p.ptr, cAutostart, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolRefresh func (p *StoragePool) Refresh(flags uint32) error { - result :=3D C.virStoragePoolRefresh(p.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virStoragePoolRefreshWrapper(p.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolUndefine func (p *StoragePool) Undefine() error { - result :=3D C.virStoragePoolUndefine(p.ptr) + var err C.virError + result :=3D C.virStoragePoolUndefineWrapper(p.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -291,9 +308,10 @@ func (p *StoragePool) Undefine() error { func (p *StoragePool) StorageVolCreateXML(xmlConfig string, flags StorageV= olCreateFlags) (*StorageVol, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virStorageVolCreateXML(p.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virStorageVolCreateXMLWrapper(p.ptr, cXml, C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVol{ptr: ptr}, nil } @@ -302,9 +320,10 @@ func (p *StoragePool) StorageVolCreateXML(xmlConfig st= ring, flags StorageVolCrea func (p *StoragePool) StorageVolCreateXMLFrom(xmlConfig string, clonevol *= StorageVol, flags StorageVolCreateFlags) (*StorageVol, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virStorageVolCreateXMLFrom(p.ptr, cXml, clonevol.ptr, C.uint(f= lags)) + var err C.virError + ptr :=3D C.virStorageVolCreateXMLFromWrapper(p.ptr, cXml, clonevol.ptr, C= .uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVol{ptr: ptr}, nil } @@ -313,18 +332,20 @@ func (p *StoragePool) StorageVolCreateXMLFrom(xmlConf= ig string, clonevol *Storag func (p *StoragePool) LookupStorageVolByName(name string) (*StorageVol, er= ror) { cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virStorageVolLookupByName(p.ptr, cName) + var err C.virError + ptr :=3D C.virStorageVolLookupByNameWrapper(p.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVol{ptr: ptr}, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolNumOfVolumes func (p *StoragePool) NumOfStorageVolumes() (int, error) { - result :=3D int(C.virStoragePoolNumOfVolumes(p.ptr)) + var err C.virError + result :=3D int(C.virStoragePoolNumOfVolumesWrapper(p.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -334,12 +355,13 @@ func (p *StoragePool) ListStorageVolumes() ([]string,= error) { const maxVols =3D 1024 var names [maxVols](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numStorageVols :=3D C.virStoragePoolListVolumes( + var err C.virError + numStorageVols :=3D C.virStoragePoolListVolumesWrapper( p.ptr, (**C.char)(namesPtr), - maxVols) + maxVols, &err) if numStorageVols =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numStorageVols) for k :=3D 0; k < int(numStorageVols); k++ { @@ -352,9 +374,10 @@ func (p *StoragePool) ListStorageVolumes() ([]string, = error) { // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolListAllVolumes func (p *StoragePool) ListAllStorageVolumes(flags uint32) ([]StorageVol, e= rror) { var cList *C.virStorageVolPtr - numVols :=3D C.virStoragePoolListAllVolumes(p.ptr, (**C.virStorageVolPtr)= (&cList), C.uint(flags)) + var err C.virError + numVols :=3D C.virStoragePoolListAllVolumesWrapper(p.ptr, (**C.virStorage= VolPtr)(&cList), C.uint(flags), &err) if numVols =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), diff --git a/storage_pool_wrapper.go b/storage_pool_wrapper.go index cd3c1bc..8534f7c 100644 --- a/storage_pool_wrapper.go +++ b/storage_pool_wrapper.go @@ -30,5 +30,314 @@ package libvirt #include #include "storage_pool_wrapper.h" =20 +int +virStoragePoolBuildWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStoragePoolBuild(pool, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolCreateWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStoragePoolCreate(pool, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolDeleteWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStoragePoolDelete(pool, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolDestroyWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolDestroy(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolFreeWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolFree(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolGetAutostartWrapper(virStoragePoolPtr pool, + int *autostart, + virErrorPtr err) +{ + int ret =3D virStoragePoolGetAutostart(pool, autostart); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virStoragePoolGetConnectWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + virConnectPtr ret =3D virStoragePoolGetConnect(pool); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolGetInfoWrapper(virStoragePoolPtr pool, + virStoragePoolInfoPtr info, + virErrorPtr err) +{ + int ret =3D virStoragePoolGetInfo(pool, info); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virStoragePoolGetNameWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + const char * ret =3D virStoragePoolGetName(pool); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolGetUUIDWrapper(virStoragePoolPtr pool, + unsigned char *uuid, + virErrorPtr err) +{ + int ret =3D virStoragePoolGetUUID(pool, uuid); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolGetUUIDStringWrapper(virStoragePoolPtr pool, + char *buf, + virErrorPtr err) +{ + int ret =3D virStoragePoolGetUUIDString(pool, buf); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virStoragePoolGetXMLDescWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virStoragePoolGetXMLDesc(pool, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolIsActiveWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolIsActive(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolIsPersistentWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolIsPersistent(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolListAllVolumesWrapper(virStoragePoolPtr pool, + virStorageVolPtr **vols, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStoragePoolListAllVolumes(pool, vols, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolListVolumesWrapper(virStoragePoolPtr pool, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virStoragePoolListVolumes(pool, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolNumOfVolumesWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolNumOfVolumes(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolRefWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolRef(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolRefreshWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virStoragePoolRefresh(pool, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolSetAutostartWrapper(virStoragePoolPtr pool, + int autostart, + virErrorPtr err) +{ + int ret =3D virStoragePoolSetAutostart(pool, autostart); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStoragePoolUndefineWrapper(virStoragePoolPtr pool, + virErrorPtr err) +{ + int ret =3D virStoragePoolUndefine(pool); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virStorageVolPtr +virStorageVolCreateXMLWrapper(virStoragePoolPtr pool, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) +{ + virStorageVolPtr ret =3D virStorageVolCreateXML(pool, xmlDesc, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStorageVolPtr +virStorageVolCreateXMLFromWrapper(virStoragePoolPtr pool, + const char *xmlDesc, + virStorageVolPtr clonevol, + unsigned int flags, + virErrorPtr err) +{ + virStorageVolPtr ret =3D virStorageVolCreateXMLFrom(pool, xmlDesc, clo= nevol, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStorageVolPtr +virStorageVolLookupByNameWrapper(virStoragePoolPtr pool, + const char *name, + virErrorPtr err) +{ + virStorageVolPtr ret =3D virStorageVolLookupByName(pool, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + + */ import "C" diff --git a/storage_pool_wrapper.h b/storage_pool_wrapper.h index 3e2f60f..acd121b 100644 --- a/storage_pool_wrapper.h +++ b/storage_pool_wrapper.h @@ -30,4 +30,121 @@ #include #include "storage_pool_compat.h" =20 +int +virStoragePoolBuildWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err); + +int +virStoragePoolCreateWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err); + +int +virStoragePoolDeleteWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err); + +int +virStoragePoolDestroyWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolFreeWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolGetAutostartWrapper(virStoragePoolPtr pool, + int *autostart, + virErrorPtr err); + +virConnectPtr +virStoragePoolGetConnectWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolGetInfoWrapper(virStoragePoolPtr pool, + virStoragePoolInfoPtr info, + virErrorPtr err); + +const char * +virStoragePoolGetNameWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolGetUUIDWrapper(virStoragePoolPtr pool, + unsigned char *uuid, + virErrorPtr err); + +int +virStoragePoolGetUUIDStringWrapper(virStoragePoolPtr pool, + char *buf, + virErrorPtr err); + +char * +virStoragePoolGetXMLDescWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err); + +int +virStoragePoolIsActiveWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolIsPersistentWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolListAllVolumesWrapper(virStoragePoolPtr pool, + virStorageVolPtr **vols, + unsigned int flags, + virErrorPtr err); + +int +virStoragePoolListVolumesWrapper(virStoragePoolPtr pool, + char **const names, + int maxnames, + virErrorPtr err); + +int +virStoragePoolNumOfVolumesWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolRefWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +int +virStoragePoolRefreshWrapper(virStoragePoolPtr pool, + unsigned int flags, + virErrorPtr err); + +int +virStoragePoolSetAutostartWrapper(virStoragePoolPtr pool, + int autostart, + virErrorPtr err); + +int +virStoragePoolUndefineWrapper(virStoragePoolPtr pool, + virErrorPtr err); + +virStorageVolPtr +virStorageVolCreateXMLWrapper(virStoragePoolPtr pool, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); + +virStorageVolPtr +virStorageVolCreateXMLFromWrapper(virStoragePoolPtr pool, + const char *xmlDesc, + virStorageVolPtr clonevol, + unsigned int flags, + virErrorPtr err); + +virStorageVolPtr +virStorageVolLookupByNameWrapper(virStoragePoolPtr pool, + const char *name, + virErrorPtr err); + + #endif /* LIBVIRT_GO_STORAGE_POOL_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747502532983.572550780777; Mon, 16 Jul 2018 06:25:02 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2CCBF4E358; Mon, 16 Jul 2018 13:25:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EB59160C4E; Mon, 16 Jul 2018 13:25:00 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 912171853DA2; Mon, 16 Jul 2018 13:25:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOoRY028166 for ; Mon, 16 Jul 2018 09:24:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6B8B42027047; Mon, 16 Jul 2018 13:24:50 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 639E42026D65; Mon, 16 Jul 2018 13:24:48 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:08 +0100 Message-Id: <20180716132423.10354-23-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 22/37] stream: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 16 Jul 2018 13:25:01 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each stream C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- stream.go | 80 +++++++++------- stream_wrapper.go | 231 +++++++++++++++++++++++++++++++++++++++------- stream_wrapper.h | 84 +++++++++++++---- 3 files changed, 312 insertions(+), 83 deletions(-) diff --git a/stream.go b/stream.go index c5c1ef7..515ae08 100644 --- a/stream.go +++ b/stream.go @@ -64,9 +64,10 @@ type Stream struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= Abort func (v *Stream) Abort() error { - result :=3D C.virStreamAbort(v.ptr) + var err C.virError + result :=3D C.virStreamAbortWrapper(v.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -74,9 +75,10 @@ func (v *Stream) Abort() error { =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= Finish func (v *Stream) Finish() error { - result :=3D C.virStreamFinish(v.ptr) + var err C.virError + result :=3D C.virStreamFinishWrapper(v.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -84,27 +86,30 @@ func (v *Stream) Finish() error { =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= Free func (v *Stream) Free() error { - ret :=3D C.virStreamFree(v.ptr) + var err C.virError + ret :=3D C.virStreamFreeWrapper(v.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= Ref func (c *Stream) Ref() error { - ret :=3D C.virStreamRef(c.ptr) + var err C.virError + ret :=3D C.virStreamRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= Recv func (v *Stream) Recv(p []byte) (int, error) { - n :=3D C.virStreamRecv(v.ptr, (*C.char)(unsafe.Pointer(&p[0])), C.size_t(= len(p))) + var err C.virError + n :=3D C.virStreamRecvWrapper(v.ptr, (*C.char)(unsafe.Pointer(&p[0])), C.= size_t(len(p)), &err) if n < 0 { - return 0, GetLastError() + return 0, makeError(&err) } if n =3D=3D 0 { return 0, io.EOF @@ -119,9 +124,10 @@ func (v *Stream) RecvFlags(p []byte, flags StreamRecvF= lagsValues) (int, error) { return 0, GetNotImplementedError("virStreamRecvFlags") } =20 - n :=3D C.virStreamRecvFlagsWrapper(v.ptr, (*C.char)(unsafe.Pointer(&p[0])= ), C.size_t(len(p)), C.uint(flags)) + var err C.virError + n :=3D C.virStreamRecvFlagsWrapper(v.ptr, (*C.char)(unsafe.Pointer(&p[0])= ), C.size_t(len(p)), C.uint(flags), &err) if n < 0 { - return 0, GetLastError() + return 0, makeError(&err) } if n =3D=3D 0 { return 0, io.EOF @@ -137,9 +143,10 @@ func (v *Stream) RecvHole(flags uint) (int64, error) { } =20 var len C.longlong - ret :=3D C.virStreamRecvHoleWrapper(v.ptr, &len, C.uint(flags)) + var err C.virError + ret :=3D C.virStreamRecvHoleWrapper(v.ptr, &len, C.uint(flags), &err) if ret < 0 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return int64(len), nil @@ -147,9 +154,10 @@ func (v *Stream) RecvHole(flags uint) (int64, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= Send func (v *Stream) Send(p []byte) (int, error) { - n :=3D C.virStreamSend(v.ptr, (*C.char)(unsafe.Pointer(&p[0])), C.size_t(= len(p))) + var err C.virError + n :=3D C.virStreamSendWrapper(v.ptr, (*C.char)(unsafe.Pointer(&p[0])), C.= size_t(len(p)), &err) if n < 0 { - return 0, GetLastError() + return 0, makeError(&err) } if n =3D=3D 0 { return 0, io.EOF @@ -164,9 +172,10 @@ func (v *Stream) SendHole(len int64, flags uint32) err= or { return GetNotImplementedError("virStreamSendHole") } =20 - ret :=3D C.virStreamSendHoleWrapper(v.ptr, C.longlong(len), C.uint(flags)) + var err C.virError + ret :=3D C.virStreamSendHoleWrapper(v.ptr, C.longlong(len), C.uint(flags)= , &err) if ret < 0 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -220,10 +229,11 @@ func (v *Stream) RecvAll(handler StreamSinkFunc) erro= r { =20 callbackID :=3D registerCallbackId(handler) =20 - ret :=3D C.virStreamRecvAllWrapper(v.ptr, (C.int)(callbackID)) + var err C.virError + ret :=3D C.virStreamRecvAllWrapper(v.ptr, (C.int)(callbackID), &err) freeCallbackId(callbackID) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -238,11 +248,12 @@ func (v *Stream) SparseRecvAll(handler StreamSinkFunc= , holeHandler StreamSinkHol callbackID :=3D registerCallbackId(handler) holeCallbackID :=3D registerCallbackId(holeHandler) =20 - ret :=3D C.virStreamSparseRecvAllWrapper(v.ptr, (C.int)(callbackID), (C.i= nt)(holeCallbackID)) + var err C.virError + ret :=3D C.virStreamSparseRecvAllWrapper(v.ptr, (C.int)(callbackID), (C.i= nt)(holeCallbackID), &err) freeCallbackId(callbackID) freeCallbackId(holeCallbackID) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -325,10 +336,11 @@ func (v *Stream) SendAll(handler StreamSourceFunc) er= ror { =20 callbackID :=3D registerCallbackId(handler) =20 - ret :=3D C.virStreamSendAllWrapper(v.ptr, (C.int)(callbackID)) + var err C.virError + ret :=3D C.virStreamSendAllWrapper(v.ptr, (C.int)(callbackID), &err) freeCallbackId(callbackID) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -344,12 +356,13 @@ func (v *Stream) SparseSendAll(handler StreamSourceFu= nc, holeHandler StreamSourc holeCallbackID :=3D registerCallbackId(holeHandler) skipCallbackID :=3D registerCallbackId(skipHandler) =20 - ret :=3D C.virStreamSparseSendAllWrapper(v.ptr, (C.int)(callbackID), (C.i= nt)(holeCallbackID), (C.int)(skipCallbackID)) + var err C.virError + ret :=3D C.virStreamSparseSendAllWrapper(v.ptr, (C.int)(callbackID), (C.i= nt)(holeCallbackID), (C.int)(skipCallbackID), &err) freeCallbackId(callbackID) freeCallbackId(holeCallbackID) freeCallbackId(skipCallbackID) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -361,9 +374,10 @@ type StreamEventCallback func(*Stream, StreamEventType) func (v *Stream) EventAddCallback(events StreamEventType, callback StreamE= ventCallback) error { callbackID :=3D registerCallbackId(callback) =20 - ret :=3D C.virStreamEventAddCallbackWrapper(v.ptr, (C.int)(events), (C.in= t)(callbackID)) + var err C.virError + ret :=3D C.virStreamEventAddCallbackWrapper(v.ptr, (C.int)(events), (C.in= t)(callbackID), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -383,9 +397,10 @@ func streamEventCallback(st C.virStreamPtr, events int= , callbackID int) { =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= EventUpdateCallback func (v *Stream) EventUpdateCallback(events StreamEventType) error { - ret :=3D C.virStreamEventUpdateCallback(v.ptr, (C.int)(events)) + var err C.virError + ret :=3D C.virStreamEventUpdateCallbackWrapper(v.ptr, (C.int)(events), &e= rr) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -393,9 +408,10 @@ func (v *Stream) EventUpdateCallback(events StreamEven= tType) error { =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= EventRemoveCallback func (v *Stream) EventRemoveCallback() error { - ret :=3D C.virStreamEventRemoveCallback(v.ptr) + var err C.virError + ret :=3D C.virStreamEventRemoveCallbackWrapper(v.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil diff --git a/stream_wrapper.go b/stream_wrapper.go index 90cc110..e563a74 100644 --- a/stream_wrapper.go +++ b/stream_wrapper.go @@ -81,84 +81,251 @@ static int streamSinkHoleCallbackHelper(virStreamPtr s= t, long long length, void return streamSinkHoleCallback(st, length, cbdata->holeCallbackID); } =20 -int virStreamSendAllWrapper(virStreamPtr st, int callbackID) +int +virStreamAbortWrapper(virStreamPtr stream, + virErrorPtr err) +{ + int ret =3D virStreamAbort(stream); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +void +streamEventCallback(virStreamPtr st, int events, int callbackID); + +static void +streamEventCallbackHelper(virStreamPtr st, int events, void *opaque) +{ + streamEventCallback(st, events, (int)(intptr_t)opaque); +} + +int +virStreamEventAddCallbackWrapper(virStreamPtr stream, + int events, + int callbackID, + virErrorPtr err) +{ + int ret =3D virStreamEventAddCallback(stream, events, streamEventCallb= ackHelper, (void *)(intptr_t)callbackID, NULL); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamEventRemoveCallbackWrapper(virStreamPtr stream, + virErrorPtr err) +{ + int ret =3D virStreamEventRemoveCallback(stream); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamEventUpdateCallbackWrapper(virStreamPtr stream, + int events, + virErrorPtr err) +{ + int ret =3D virStreamEventUpdateCallback(stream, events); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamFinishWrapper(virStreamPtr stream, + virErrorPtr err) +{ + int ret =3D virStreamFinish(stream); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamFreeWrapper(virStreamPtr stream, + virErrorPtr err) +{ + int ret =3D virStreamFree(stream); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamRecvWrapper(virStreamPtr stream, + char *data, + size_t nbytes, + virErrorPtr err) +{ + int ret =3D virStreamRecv(stream, data, nbytes); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamRecvAllWrapper(virStreamPtr stream, + int callbackID, + virErrorPtr err) { struct CallbackData cbdata =3D { .callbackID =3D callbackID }; - return virStreamSendAll(st, streamSourceCallbackHelper, &cbdata); + int ret =3D virStreamRecvAll(stream, streamSinkCallbackHelper, &cbdata= ); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virStreamSparseSendAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID, int skipCallbackID) + +int +virStreamRecvFlagsWrapper(virStreamPtr stream, + char *data, + size_t nbytes, + unsigned int flags, + virErrorPtr err) { - struct CallbackData cbdata =3D { .callbackID =3D callbackID, .holeCall= backID =3D holeCallbackID, .skipCallbackID =3D skipCallbackID }; #if LIBVIR_VERSION_NUMBER < 3004000 assert(0); // Caller should have checked version #else - return virStreamSparseSendAll(st, streamSourceCallbackHelper, streamSo= urceHoleCallbackHelper, streamSourceSkipCallbackHelper, &cbdata); + int ret =3D virStreamRecvFlags(stream, data, nbytes, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virStreamRecvAllWrapper(virStreamPtr st, int callbackID) -{ - struct CallbackData cbdata =3D { .callbackID =3D callbackID }; - return virStreamRecvAll(st, streamSinkCallbackHelper, &cbdata); -} - -int virStreamSparseRecvAllWrapper(virStreamPtr st, int callbackID, int hol= eCallbackID) +int +virStreamRecvHoleWrapper(virStreamPtr stream, + long long *length, + unsigned int flags, + virErrorPtr err) { - struct CallbackData cbdata =3D { .callbackID =3D callbackID, .holeCall= backID =3D holeCallbackID }; #if LIBVIR_VERSION_NUMBER < 3004000 assert(0); // Caller should have checked version #else - return virStreamSparseRecvAll(st, streamSinkCallbackHelper, streamSink= HoleCallbackHelper, &cbdata); + int ret =3D virStreamRecvHole(stream, length, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -void streamEventCallback(virStreamPtr st, int events, int callbackID); =20 -static void streamEventCallbackHelper(virStreamPtr st, int events, void *o= paque) +int +virStreamRefWrapper(virStreamPtr stream, + virErrorPtr err) { - streamEventCallback(st, events, (int)(intptr_t)opaque); + int ret =3D virStreamRef(stream); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virStreamEventAddCallbackWrapper(virStreamPtr st, int events, int call= backID) + +int +virStreamSendWrapper(virStreamPtr stream, + const char *data, + size_t nbytes, + virErrorPtr err) { - return virStreamEventAddCallback(st, events, streamEventCallbackHelper= , (void *)(intptr_t)callbackID, NULL); + int ret =3D virStreamSend(stream, data, nbytes); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virStreamRecvFlagsWrapper(virStreamPtr st, - char *data, - size_t nbytes, - unsigned int flags) + +int +virStreamSendAllWrapper(virStreamPtr stream, + int callbackID, + virErrorPtr err) +{ + struct CallbackData cbdata =3D { .callbackID =3D callbackID }; + int ret =3D virStreamSendAll(stream, streamSourceCallbackHelper, &cbda= ta); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virStreamSendHoleWrapper(virStreamPtr stream, + long long length, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 3004000 assert(0); // Caller should have checked version #else - return virStreamRecvFlags(st, data, nbytes, flags); + int ret =3D virStreamSendHole(stream, length, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virStreamSendHoleWrapper(virStreamPtr st, - long long length, - unsigned int flags) + +int +virStreamSparseRecvAllWrapper(virStreamPtr stream, + int callbackID, + int holeCallbackID, + virErrorPtr err) { + struct CallbackData cbdata =3D { .callbackID =3D callbackID, .holeCall= backID =3D holeCallbackID }; #if LIBVIR_VERSION_NUMBER < 3004000 assert(0); // Caller should have checked version #else - return virStreamSendHole(st, length, flags); + int ret =3D virStreamSparseRecvAll(stream, streamSinkCallbackHelper, s= treamSinkHoleCallbackHelper, &cbdata); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virStreamRecvHoleWrapper(virStreamPtr st, - long long *length, - unsigned int flags) + +int +virStreamSparseSendAllWrapper(virStreamPtr stream, + int callbackID, + int holeCallbackID, + int skipCallbackID, + virErrorPtr err) { + struct CallbackData cbdata =3D { .callbackID =3D callbackID, .holeCall= backID =3D holeCallbackID, .skipCallbackID =3D skipCallbackID }; #if LIBVIR_VERSION_NUMBER < 3004000 assert(0); // Caller should have checked version #else - return virStreamRecvHole(st, length, flags); + int ret =3D virStreamSparseSendAll(stream, streamSourceCallbackHelper,= streamSourceHoleCallbackHelper, streamSourceSkipCallbackHelper, &cbdata); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 + */ import "C" diff --git a/stream_wrapper.h b/stream_wrapper.h index 5484441..b9c6e57 100644 --- a/stream_wrapper.h +++ b/stream_wrapper.h @@ -32,43 +32,89 @@ #include "stream_compat.h" =20 int -virStreamSendAllWrapper(virStreamPtr st, - int callbackID); +virStreamAbortWrapper(virStreamPtr stream, + virErrorPtr err); =20 int -virStreamRecvAllWrapper(virStreamPtr st, - int callbackID); +virStreamEventAddCallbackWrapper(virStreamPtr st, + int events, + int callbackID, + virErrorPtr err); =20 int -virStreamSparseSendAllWrapper(virStreamPtr st, - int callbackID, - int holeCallbackID, - int skipCallbackID); +virStreamEventRemoveCallbackWrapper(virStreamPtr stream, + virErrorPtr err); =20 int -virStreamSparseRecvAllWrapper(virStreamPtr st, - int callbackID, - int holeCallbackID); +virStreamEventUpdateCallbackWrapper(virStreamPtr stream, + int events, + virErrorPtr err); =20 int -virStreamEventAddCallbackWrapper(virStreamPtr st, - int events, - int callbackID); +virStreamFinishWrapper(virStreamPtr stream, + virErrorPtr err); + +int +virStreamFreeWrapper(virStreamPtr stream, + virErrorPtr err); + +int +virStreamRecvWrapper(virStreamPtr stream, + char *data, + size_t nbytes, + virErrorPtr err); + +int +virStreamRecvAllWrapper(virStreamPtr st, + int callbackID, + virErrorPtr err); =20 int virStreamRecvFlagsWrapper(virStreamPtr st, char *data, size_t nbytes, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +int +virStreamRecvHoleWrapper(virStreamPtr, + long long *length, + unsigned int flags, + virErrorPtr err); + +int +virStreamRefWrapper(virStreamPtr stream, + virErrorPtr err); + +int +virStreamSendWrapper(virStreamPtr stream, + const char *data, + size_t nbytes, + virErrorPtr err); + +int +virStreamSendAllWrapper(virStreamPtr st, + int callbackID, + virErrorPtr err); =20 int virStreamSendHoleWrapper(virStreamPtr st, long long length, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 int -virStreamRecvHoleWrapper(virStreamPtr, - long long *length, - unsigned int flags); +virStreamSparseRecvAllWrapper(virStreamPtr st, + int callbackID, + int holeCallbackID, + virErrorPtr err); + +int +virStreamSparseSendAllWrapper(virStreamPtr st, + int callbackID, + int holeCallbackID, + int skipCallbackID, + virErrorPtr err); + =20 #endif /* LIBVIRT_GO_STREAM_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747527674847.0351451544841; Mon, 16 Jul 2018 06:25:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7F74A308403C; Mon, 16 Jul 2018 13:25:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 47044CA5F5; Mon, 16 Jul 2018 13:25:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id EECD31853DA1; Mon, 16 Jul 2018 13:25:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOpv1028174 for ; Mon, 16 Jul 2018 09:24:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8ACFC2027047; Mon, 16 Jul 2018 13:24:51 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id CCF9A2026D65; Mon, 16 Jul 2018 13:24:50 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:09 +0100 Message-Id: <20180716132423.10354-24-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 23/37] secret: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Mon, 16 Jul 2018 13:25:27 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each secret C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- secret.go | 50 +++++++++------- secret_wrapper.go | 141 ++++++++++++++++++++++++++++++++++++++++++++++ secret_wrapper.h | 53 +++++++++++++++++ 3 files changed, 224 insertions(+), 20 deletions(-) diff --git a/secret.go b/secret.go index 9bd8b36..c4ef44b 100644 --- a/secret.go +++ b/secret.go @@ -67,27 +67,30 @@ type Secret struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virSecret= Free func (s *Secret) Free() error { - ret :=3D C.virSecretFree(s.ptr) + var err C.virError + ret :=3D C.virSecretFreeWrapper(s.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virSecret= Ref func (c *Secret) Ref() error { - ret :=3D C.virSecretRef(c.ptr) + var err C.virError + ret :=3D C.virSecretRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virSecret= Undefine func (s *Secret) Undefine() error { - result :=3D C.virSecretUndefine(s.ptr) + var err C.virError + result :=3D C.virSecretUndefineWrapper(s.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -96,9 +99,10 @@ func (s *Secret) Undefine() error { func (s *Secret) GetUUID() ([]byte, error) { var cUuid [C.VIR_UUID_BUFLEN](byte) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virSecretGetUUID(s.ptr, (*C.uchar)(cuidPtr)) + var err C.virError + result :=3D C.virSecretGetUUIDWrapper(s.ptr, (*C.uchar)(cuidPtr), &err) if result !=3D 0 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } return C.GoBytes(cuidPtr, C.VIR_UUID_BUFLEN), nil } @@ -107,36 +111,40 @@ func (s *Secret) GetUUID() ([]byte, error) { func (s *Secret) GetUUIDString() (string, error) { var cUuid [C.VIR_UUID_STRING_BUFLEN](C.char) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virSecretGetUUIDString(s.ptr, (*C.char)(cuidPtr)) + var err C.virError + result :=3D C.virSecretGetUUIDStringWrapper(s.ptr, (*C.char)(cuidPtr), &e= rr) if result !=3D 0 { - return "", GetLastError() + return "", makeError(&err) } return C.GoString((*C.char)(cuidPtr)), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virSecret= GetUsageID func (s *Secret) GetUsageID() (string, error) { - result :=3D C.virSecretGetUsageID(s.ptr) + var err C.virError + result :=3D C.virSecretGetUsageIDWrapper(s.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(result), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virSecret= GetUsageType func (s *Secret) GetUsageType() (SecretUsageType, error) { - result :=3D SecretUsageType(C.virSecretGetUsageType(s.ptr)) + var err C.virError + result :=3D SecretUsageType(C.virSecretGetUsageTypeWrapper(s.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virSecret= GetXMLDesc func (s *Secret) GetXMLDesc(flags uint32) (string, error) { - result :=3D C.virSecretGetXMLDesc(s.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virSecretGetXMLDescWrapper(s.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -147,9 +155,10 @@ func (s *Secret) GetXMLDesc(flags uint32) (string, err= or) { func (s *Secret) GetValue(flags uint32) ([]byte, error) { var cvalue_size C.size_t =20 - cvalue :=3D C.virSecretGetValue(s.ptr, &cvalue_size, C.uint(flags)) + var err C.virError + cvalue :=3D C.virSecretGetValueWrapper(s.ptr, &cvalue_size, C.uint(flags)= , &err) if cvalue =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } defer C.free(unsafe.Pointer(cvalue)) ret :=3D C.GoBytes(unsafe.Pointer(cvalue), C.int(cvalue_size)) @@ -164,10 +173,11 @@ func (s *Secret) SetValue(value []byte, flags uint32)= error { cvalue[i] =3D C.uchar(value[i]) } =20 - result :=3D C.virSecretSetValue(s.ptr, &cvalue[0], C.size_t(len(value)), = C.uint(flags)) + var err C.virError + result :=3D C.virSecretSetValueWrapper(s.ptr, &cvalue[0], C.size_t(len(va= lue)), C.uint(flags), &err) =20 if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil diff --git a/secret_wrapper.go b/secret_wrapper.go index 1bcc74d..96f60f6 100644 --- a/secret_wrapper.go +++ b/secret_wrapper.go @@ -30,5 +30,146 @@ package libvirt #include #include "secret_wrapper.h" =20 + +int +virSecretFreeWrapper(virSecretPtr secret, + virErrorPtr err) +{ + int ret =3D virSecretFree(secret); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virSecretGetConnectWrapper(virSecretPtr secret, + virErrorPtr err) +{ + virConnectPtr ret =3D virSecretGetConnect(secret); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virSecretGetUUIDWrapper(virSecretPtr secret, + unsigned char *uuid, + virErrorPtr err) +{ + int ret =3D virSecretGetUUID(secret, uuid); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virSecretGetUUIDStringWrapper(virSecretPtr secret, + char *buf, + virErrorPtr err) +{ + int ret =3D virSecretGetUUIDString(secret, buf); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virSecretGetUsageIDWrapper(virSecretPtr secret, + virErrorPtr err) +{ + const char * ret =3D virSecretGetUsageID(secret); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virSecretGetUsageTypeWrapper(virSecretPtr secret, + virErrorPtr err) +{ + int ret =3D virSecretGetUsageType(secret); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +unsigned char * +virSecretGetValueWrapper(virSecretPtr secret, + size_t *value_size, + unsigned int flags, + virErrorPtr err) +{ + unsigned char * ret =3D virSecretGetValue(secret, value_size, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virSecretGetXMLDescWrapper(virSecretPtr secret, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virSecretGetXMLDesc(secret, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virSecretRefWrapper(virSecretPtr secret, + virErrorPtr err) +{ + int ret =3D virSecretRef(secret); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virSecretSetValueWrapper(virSecretPtr secret, + const unsigned char *value, + size_t value_size, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virSecretSetValue(secret, value, value_size, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virSecretUndefineWrapper(virSecretPtr secret, + virErrorPtr err) +{ + int ret =3D virSecretUndefine(secret); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/secret_wrapper.h b/secret_wrapper.h index 478c7d4..eca6f0a 100644 --- a/secret_wrapper.h +++ b/secret_wrapper.h @@ -30,4 +30,57 @@ #include #include "secret_compat.h" =20 +int +virSecretFreeWrapper(virSecretPtr secret, + virErrorPtr err); + +virConnectPtr +virSecretGetConnectWrapper(virSecretPtr secret, + virErrorPtr err); + +int +virSecretGetUUIDWrapper(virSecretPtr secret, + unsigned char *uuid, + virErrorPtr err); + +int +virSecretGetUUIDStringWrapper(virSecretPtr secret, + char *buf, + virErrorPtr err); + +const char * +virSecretGetUsageIDWrapper(virSecretPtr secret, + virErrorPtr err); + +int +virSecretGetUsageTypeWrapper(virSecretPtr secret, + virErrorPtr err); + +unsigned char * +virSecretGetValueWrapper(virSecretPtr secret, + size_t *value_size, + unsigned int flags, + virErrorPtr err); + +char * +virSecretGetXMLDescWrapper(virSecretPtr secret, + unsigned int flags, + virErrorPtr err); + +int +virSecretRefWrapper(virSecretPtr secret, + virErrorPtr err); + +int +virSecretSetValueWrapper(virSecretPtr secret, + const unsigned char *value, + size_t value_size, + unsigned int flags, + virErrorPtr err); + +int +virSecretUndefineWrapper(virSecretPtr secret, + virErrorPtr err); + + #endif /* LIBVIRT_GO_SECRET_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747532917999.3777350553981; Mon, 16 Jul 2018 06:25:32 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7A30D3086267; Mon, 16 Jul 2018 13:25:31 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3341760BE4; Mon, 16 Jul 2018 13:25:31 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CBBE03FA54; Mon, 16 Jul 2018 13:25:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOq91028184 for ; Mon, 16 Jul 2018 09:24:52 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8F7C72027047; Mon, 16 Jul 2018 13:24:52 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id D3E142026D65; Mon, 16 Jul 2018 13:24:51 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:10 +0100 Message-Id: <20180716132423.10354-25-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 24/37] nwfilter: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 16 Jul 2018 13:25:32 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each nwfilter C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- nwfilter.go | 35 ++++++++++-------- nwfilter_wrapper.go | 88 +++++++++++++++++++++++++++++++++++++++++++++ nwfilter_wrapper.h | 33 +++++++++++++++++ 3 files changed, 142 insertions(+), 14 deletions(-) diff --git a/nwfilter.go b/nwfilter.go index 441fcca..0b55c41 100644 --- a/nwfilter.go +++ b/nwfilter.go @@ -43,36 +43,40 @@ type NWFilter struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterFree func (f *NWFilter) Free() error { - ret :=3D C.virNWFilterFree(f.ptr) + var err C.virError + ret :=3D C.virNWFilterFreeWrapper(f.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterRef func (c *NWFilter) Ref() error { - ret :=3D C.virNWFilterRef(c.ptr) + var err C.virError + ret :=3D C.virNWFilterRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterGetName func (f *NWFilter) GetName() (string, error) { - name :=3D C.virNWFilterGetName(f.ptr) + var err C.virError + name :=3D C.virNWFilterGetNameWrapper(f.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterUndefine func (f *NWFilter) Undefine() error { - result :=3D C.virNWFilterUndefine(f.ptr) + var err C.virError + result :=3D C.virNWFilterUndefineWrapper(f.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -81,9 +85,10 @@ func (f *NWFilter) Undefine() error { func (f *NWFilter) GetUUID() ([]byte, error) { var cUuid [C.VIR_UUID_BUFLEN](byte) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virNWFilterGetUUID(f.ptr, (*C.uchar)(cuidPtr)) + var err C.virError + result :=3D C.virNWFilterGetUUIDWrapper(f.ptr, (*C.uchar)(cuidPtr), &err) if result !=3D 0 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } return C.GoBytes(cuidPtr, C.VIR_UUID_BUFLEN), nil } @@ -92,18 +97,20 @@ func (f *NWFilter) GetUUID() ([]byte, error) { func (f *NWFilter) GetUUIDString() (string, error) { var cUuid [C.VIR_UUID_STRING_BUFLEN](C.char) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virNWFilterGetUUIDString(f.ptr, (*C.char)(cuidPtr)) + var err C.virError + result :=3D C.virNWFilterGetUUIDStringWrapper(f.ptr, (*C.char)(cuidPtr), = &err) if result !=3D 0 { - return "", GetLastError() + return "", makeError(&err) } return C.GoString((*C.char)(cuidPtr)), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterGetXMLDesc func (f *NWFilter) GetXMLDesc(flags uint32) (string, error) { - result :=3D C.virNWFilterGetXMLDesc(f.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virNWFilterGetXMLDescWrapper(f.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) diff --git a/nwfilter_wrapper.go b/nwfilter_wrapper.go index 78d0487..809e527 100644 --- a/nwfilter_wrapper.go +++ b/nwfilter_wrapper.go @@ -30,5 +30,93 @@ package libvirt #include #include "nwfilter_wrapper.h" =20 + +int +virNWFilterFreeWrapper(virNWFilterPtr nwfilter, + virErrorPtr err) +{ + int ret =3D virNWFilterFree(nwfilter); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virNWFilterGetNameWrapper(virNWFilterPtr nwfilter, + virErrorPtr err) +{ + const char * ret =3D virNWFilterGetName(nwfilter); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNWFilterGetUUIDWrapper(virNWFilterPtr nwfilter, + unsigned char *uuid, + virErrorPtr err) +{ + int ret =3D virNWFilterGetUUID(nwfilter, uuid); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNWFilterGetUUIDStringWrapper(virNWFilterPtr nwfilter, + char *buf, + virErrorPtr err) +{ + int ret =3D virNWFilterGetUUIDString(nwfilter, buf); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virNWFilterGetXMLDescWrapper(virNWFilterPtr nwfilter, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virNWFilterGetXMLDesc(nwfilter, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNWFilterRefWrapper(virNWFilterPtr nwfilter, + virErrorPtr err) +{ + int ret =3D virNWFilterRef(nwfilter); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNWFilterUndefineWrapper(virNWFilterPtr nwfilter, + virErrorPtr err) +{ + int ret =3D virNWFilterUndefine(nwfilter); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/nwfilter_wrapper.h b/nwfilter_wrapper.h index c470366..9a0651c 100644 --- a/nwfilter_wrapper.h +++ b/nwfilter_wrapper.h @@ -29,4 +29,37 @@ #include #include =20 + +int +virNWFilterFreeWrapper(virNWFilterPtr nwfilter, + virErrorPtr err); + +const char * +virNWFilterGetNameWrapper(virNWFilterPtr nwfilter, + virErrorPtr err); + +int +virNWFilterGetUUIDWrapper(virNWFilterPtr nwfilter, + unsigned char *uuid, + virErrorPtr err); + +int +virNWFilterGetUUIDStringWrapper(virNWFilterPtr nwfilter, + char *buf, + virErrorPtr err); + +char * +virNWFilterGetXMLDescWrapper(virNWFilterPtr nwfilter, + unsigned int flags, + virErrorPtr err); + +int +virNWFilterRefWrapper(virNWFilterPtr nwfilter, + virErrorPtr err); + +int +virNWFilterUndefineWrapper(virNWFilterPtr nwfilter, + virErrorPtr err); + + #endif /* LIBVIRT_GO_NWFILTER_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747509987921.4282060608118; Mon, 16 Jul 2018 06:25:09 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 748CA81DE2; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 37C972010CC1; Mon, 16 Jul 2018 13:25:08 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CF77C4BB78; Mon, 16 Jul 2018 13:25:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOrDK028196 for ; Mon, 16 Jul 2018 09:24:53 -0400 Received: by smtp.corp.redhat.com (Postfix) id 75AC92027047; Mon, 16 Jul 2018 13:24:53 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id D96092026D65; Mon, 16 Jul 2018 13:24:52 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:11 +0100 Message-Id: <20180716132423.10354-26-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 25/37] nwfilter binding: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 16 Jul 2018 13:25:09 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each nwfilter binding C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- nwfilter_binding.go | 30 +++++++++++------- nwfilter_binding_wrapper.go | 63 +++++++++++++++++++++++++++++-------- nwfilter_binding_wrapper.h | 27 ++++++++++------ 3 files changed, 85 insertions(+), 35 deletions(-) diff --git a/nwfilter_binding.go b/nwfilter_binding.go index 722303b..5999d3e 100644 --- a/nwfilter_binding.go +++ b/nwfilter_binding.go @@ -45,9 +45,10 @@ func (f *NWFilterBinding) Free() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { return GetNotImplementedError("virNWFilterBindingFree") } - ret :=3D C.virNWFilterBindingFreeWrapper(f.ptr) + var err C.virError + ret :=3D C.virNWFilterBindingFreeWrapper(f.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -57,9 +58,10 @@ func (c *NWFilterBinding) Ref() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { return GetNotImplementedError("virNWFilterBindingRef") } - ret :=3D C.virNWFilterBindingRefWrapper(c.ptr) + var err C.virError + ret :=3D C.virNWFilterBindingRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -69,9 +71,10 @@ func (f *NWFilterBinding) Delete() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { return GetNotImplementedError("virNWFilterBindingDelete") } - result :=3D C.virNWFilterBindingDeleteWrapper(f.ptr) + var err C.virError + result :=3D C.virNWFilterBindingDeleteWrapper(f.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -81,9 +84,10 @@ func (f *NWFilterBinding) GetPortDev() (string, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { return "", GetNotImplementedError("virNWFilterBindingGetPortDev") } - result :=3D C.virNWFilterBindingGetPortDevWrapper(f.ptr) + var err C.virError + result :=3D C.virNWFilterBindingGetPortDevWrapper(f.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } name :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -95,9 +99,10 @@ func (f *NWFilterBinding) GetFilterName() (string, error= ) { if C.LIBVIR_VERSION_NUMBER < 4005000 { return "", GetNotImplementedError("virNWFilterBindingGetFilterName") } - result :=3D C.virNWFilterBindingGetFilterNameWrapper(f.ptr) + var err C.virError + result :=3D C.virNWFilterBindingGetFilterNameWrapper(f.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } name :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -109,9 +114,10 @@ func (f *NWFilterBinding) GetXMLDesc(flags uint32) (st= ring, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { return "", GetNotImplementedError("virNWFilterBindingGetXMLDesc") } - result :=3D C.virNWFilterBindingGetXMLDescWrapper(f.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virNWFilterBindingGetXMLDescWrapper(f.ptr, C.uint(flags), &= err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) diff --git a/nwfilter_binding_wrapper.go b/nwfilter_binding_wrapper.go index fdafaef..b0950b5 100644 --- a/nwfilter_binding_wrapper.go +++ b/nwfilter_binding_wrapper.go @@ -30,63 +30,100 @@ package libvirt #include #include "nwfilter_binding_wrapper.h" =20 -const char *virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr bind= ing) + +int +virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingGetPortDev(binding); + int ret =3D virNWFilterBindingDelete(binding); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -const char *virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr b= inding) +int +virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingGetFilterName(binding); + int ret =3D virNWFilterBindingFree(binding); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -char *virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, - unsigned int flags) +const char * +virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr binding, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingGetXMLDesc(binding, flags); + const char * ret =3D virNWFilterBindingGetFilterName(binding); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding) +const char * +virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr binding, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingDelete(binding); + const char * ret =3D virNWFilterBindingGetPortDev(binding); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding) +char * +virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingRef(binding); + char * ret =3D virNWFilterBindingGetXMLDesc(binding, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding) +int +virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingFree(binding); + int ret =3D virNWFilterBindingRef(binding); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 diff --git a/nwfilter_binding_wrapper.h b/nwfilter_binding_wrapper.h index 63942be..0bcbfb7 100644 --- a/nwfilter_binding_wrapper.h +++ b/nwfilter_binding_wrapper.h @@ -30,24 +30,31 @@ #include #include "nwfilter_binding_compat.h" =20 + +int +virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding, + virErrorPtr err); + +int +virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding, + virErrorPtr err); + const char * -virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr binding); +virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr binding, + virErrorPtr err); =20 const char * -virNWFilterBindingGetFilterNameWrapper(virNWFilterBindingPtr binding); +virNWFilterBindingGetPortDevWrapper(virNWFilterBindingPtr binding, + virErrorPtr err); =20 char * virNWFilterBindingGetXMLDescWrapper(virNWFilterBindingPtr binding, - unsigned int flags); - -int -virNWFilterBindingDeleteWrapper(virNWFilterBindingPtr binding); - -int -virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding); + unsigned int flags, + virErrorPtr err); =20 int -virNWFilterBindingFreeWrapper(virNWFilterBindingPtr binding); +virNWFilterBindingRefWrapper(virNWFilterBindingPtr binding, + virErrorPtr err); =20 =20 #endif /* LIBVIRT_GO_NWFILTER_BINDING_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747528076699.5907396944864; Mon, 16 Jul 2018 06:25:28 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id ACCEFA53A2; Mon, 16 Jul 2018 13:25:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7A17660BE4; Mon, 16 Jul 2018 13:25:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 297C73FCC1; Mon, 16 Jul 2018 13:25:26 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOsvK028219 for ; Mon, 16 Jul 2018 09:24:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id CE7332027047; Mon, 16 Jul 2018 13:24:54 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0D4052026D65; Mon, 16 Jul 2018 13:24:53 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:12 +0100 Message-Id: <20180716132423.10354-27-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 26/37] node device: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 16 Jul 2018 13:25:27 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each node device C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- node_device.go | 62 ++++++++++------- node_device_wrapper.go | 150 +++++++++++++++++++++++++++++++++++++++++ node_device_wrapper.h | 55 +++++++++++++++ 3 files changed, 242 insertions(+), 25 deletions(-) diff --git a/node_device.go b/node_device.go index 0caf98b..474f288 100644 --- a/node_device.go +++ b/node_device.go @@ -57,45 +57,50 @@ type NodeDevice struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceFree func (n *NodeDevice) Free() error { - ret :=3D C.virNodeDeviceFree(n.ptr) + var err C.virError + ret :=3D C.virNodeDeviceFreeWrapper(n.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceRef func (c *NodeDevice) Ref() error { - ret :=3D C.virNodeDeviceRef(c.ptr) + var err C.virError + ret :=3D C.virNodeDeviceRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceDestroy func (n *NodeDevice) Destroy() error { - result :=3D C.virNodeDeviceDestroy(n.ptr) + var err C.virError + result :=3D C.virNodeDeviceDestroyWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceReset func (n *NodeDevice) Reset() error { - result :=3D C.virNodeDeviceReset(n.ptr) + var err C.virError + result :=3D C.virNodeDeviceResetWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceDettach func (n *NodeDevice) Detach() error { - result :=3D C.virNodeDeviceDettach(n.ptr) + var err C.virError + result :=3D C.virNodeDeviceDettachWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -104,36 +109,40 @@ func (n *NodeDevice) Detach() error { func (n *NodeDevice) DetachFlags(driverName string, flags uint32) error { cDriverName :=3D C.CString(driverName) defer C.free(unsafe.Pointer(cDriverName)) - result :=3D C.virNodeDeviceDetachFlags(n.ptr, cDriverName, C.uint(flags)) + var err C.virError + result :=3D C.virNodeDeviceDetachFlagsWrapper(n.ptr, cDriverName, C.uint(= flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceReAttach func (n *NodeDevice) ReAttach() error { - result :=3D C.virNodeDeviceReAttach(n.ptr) + var err C.virError + result :=3D C.virNodeDeviceReAttachWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceGetName func (n *NodeDevice) GetName() (string, error) { - name :=3D C.virNodeDeviceGetName(n.ptr) + var err C.virError + name :=3D C.virNodeDeviceGetNameWrapper(n.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceGetXMLDesc func (n *NodeDevice) GetXMLDesc(flags uint32) (string, error) { - result :=3D C.virNodeDeviceGetXMLDesc(n.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virNodeDeviceGetXMLDescWrapper(n.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -142,9 +151,10 @@ func (n *NodeDevice) GetXMLDesc(flags uint32) (string,= error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceGetParent func (n *NodeDevice) GetParent() (string, error) { - result :=3D C.virNodeDeviceGetParent(n.ptr) + var err C.virError + result :=3D C.virNodeDeviceGetParentWrapper(n.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } defer C.free(unsafe.Pointer(result)) return C.GoString(result), nil @@ -152,9 +162,10 @@ func (n *NodeDevice) GetParent() (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virNodeD= eviceNumOfCaps func (p *NodeDevice) NumOfCaps() (int, error) { - result :=3D int(C.virNodeDeviceNumOfCaps(p.ptr)) + var err C.virError + result :=3D int(C.virNodeDeviceNumOfCapsWrapper(p.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -164,12 +175,13 @@ func (p *NodeDevice) ListCaps() ([]string, error) { const maxCaps =3D 1024 var names [maxCaps](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numCaps :=3D C.virNodeDeviceListCaps( + var err C.virError + numCaps :=3D C.virNodeDeviceListCapsWrapper( p.ptr, (**C.char)(namesPtr), - maxCaps) + maxCaps, &err) if numCaps =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numCaps) for k :=3D 0; k < int(numCaps); k++ { diff --git a/node_device_wrapper.go b/node_device_wrapper.go index bf8f987..c4e173a 100644 --- a/node_device_wrapper.go +++ b/node_device_wrapper.go @@ -30,5 +30,155 @@ package libvirt #include #include "node_device_wrapper.h" =20 + +int +virNodeDeviceDestroyWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceDestroy(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceDetachFlagsWrapper(virNodeDevicePtr dev, + const char *driverName, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeDeviceDetachFlags(dev, driverName, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceDettachWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceDettach(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceFreeWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceFree(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virNodeDeviceGetNameWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + const char * ret =3D virNodeDeviceGetName(dev); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virNodeDeviceGetParentWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + const char * ret =3D virNodeDeviceGetParent(dev); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virNodeDeviceGetXMLDescWrapper(virNodeDevicePtr dev, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virNodeDeviceGetXMLDesc(dev, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceListCapsWrapper(virNodeDevicePtr dev, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virNodeDeviceListCaps(dev, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceNumOfCapsWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceNumOfCaps(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceReAttachWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceReAttach(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceRefWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceRef(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeDeviceResetWrapper(virNodeDevicePtr dev, + virErrorPtr err) +{ + int ret =3D virNodeDeviceReset(dev); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/node_device_wrapper.h b/node_device_wrapper.h index 22fc791..7670415 100644 --- a/node_device_wrapper.h +++ b/node_device_wrapper.h @@ -30,4 +30,59 @@ #include #include "node_device_compat.h" =20 + +int +virNodeDeviceDestroyWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +int +virNodeDeviceDetachFlagsWrapper(virNodeDevicePtr dev, + const char *driverName, + unsigned int flags, + virErrorPtr err); + +int +virNodeDeviceDettachWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +int +virNodeDeviceFreeWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +const char * +virNodeDeviceGetNameWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +const char * +virNodeDeviceGetParentWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +char * +virNodeDeviceGetXMLDescWrapper(virNodeDevicePtr dev, + unsigned int flags, + virErrorPtr err); + +int +virNodeDeviceListCapsWrapper(virNodeDevicePtr dev, + char **const names, + int maxnames, + virErrorPtr err); + +int +virNodeDeviceNumOfCapsWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +int +virNodeDeviceReAttachWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +int +virNodeDeviceRefWrapper(virNodeDevicePtr dev, + virErrorPtr err); + +int +virNodeDeviceResetWrapper(virNodeDevicePtr dev, + virErrorPtr err); + + #endif /* LIBVIRT_GO_NODE_DEVICE_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747515524413.5590773688532; Mon, 16 Jul 2018 06:25:15 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0B09CBDC0; Mon, 16 Jul 2018 13:25:14 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BB5C31001F5E; Mon, 16 Jul 2018 13:25:13 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 5F99D1853DA1; Mon, 16 Jul 2018 13:25:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOu1s028235 for ; Mon, 16 Jul 2018 09:24:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id ED4422027047; Mon, 16 Jul 2018 13:24:55 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3CAF02026D65; Mon, 16 Jul 2018 13:24:55 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:13 +0100 Message-Id: <20180716132423.10354-28-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 27/37] network: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 16 Jul 2018 13:25:14 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each network C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- network.go | 80 +++++++++------- network_wrapper.go | 228 +++++++++++++++++++++++++++++++++++++++++++-- network_wrapper.h | 78 +++++++++++++++- 3 files changed, 347 insertions(+), 39 deletions(-) diff --git a/network.go b/network.go index 015fe5e..d9ec9bf 100644 --- a/network.go +++ b/network.go @@ -121,45 +121,50 @@ type NetworkDHCPLease struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkFree func (n *Network) Free() error { - ret :=3D C.virNetworkFree(n.ptr) + var err C.virError + ret :=3D C.virNetworkFreeWrapper(n.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkRef func (c *Network) Ref() error { - ret :=3D C.virNetworkRef(c.ptr) + var err C.virError + ret :=3D C.virNetworkRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkCreate func (n *Network) Create() error { - result :=3D C.virNetworkCreate(n.ptr) + var err C.virError + result :=3D C.virNetworkCreateWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkDestroy func (n *Network) Destroy() error { - result :=3D C.virNetworkDestroy(n.ptr) + var err C.virError + result :=3D C.virNetworkDestroyWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkIsActive func (n *Network) IsActive() (bool, error) { - result :=3D C.virNetworkIsActive(n.ptr) + var err C.virError + result :=3D C.virNetworkIsActiveWrapper(n.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -169,9 +174,10 @@ func (n *Network) IsActive() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkIsPersistent func (n *Network) IsPersistent() (bool, error) { - result :=3D C.virNetworkIsPersistent(n.ptr) + var err C.virError + result :=3D C.virNetworkIsPersistentWrapper(n.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -182,9 +188,10 @@ func (n *Network) IsPersistent() (bool, error) { // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkGetAutostart func (n *Network) GetAutostart() (bool, error) { var out C.int - result :=3D C.virNetworkGetAutostart(n.ptr, (*C.int)(unsafe.Pointer(&out)= )) + var err C.virError + result :=3D C.virNetworkGetAutostartWrapper(n.ptr, (*C.int)(unsafe.Pointe= r(&out)), &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } switch out { case 1: @@ -203,18 +210,20 @@ func (n *Network) SetAutostart(autostart bool) error { default: cAutostart =3D 0 } - result :=3D C.virNetworkSetAutostart(n.ptr, cAutostart) + var err C.virError + result :=3D C.virNetworkSetAutostartWrapper(n.ptr, cAutostart, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkGetName func (n *Network) GetName() (string, error) { - name :=3D C.virNetworkGetName(n.ptr) + var err C.virError + name :=3D C.virNetworkGetNameWrapper(n.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } @@ -223,9 +232,10 @@ func (n *Network) GetName() (string, error) { func (n *Network) GetUUID() ([]byte, error) { var cUuid [C.VIR_UUID_BUFLEN](byte) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virNetworkGetUUID(n.ptr, (*C.uchar)(cuidPtr)) + var err C.virError + result :=3D C.virNetworkGetUUIDWrapper(n.ptr, (*C.uchar)(cuidPtr), &err) if result !=3D 0 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } return C.GoBytes(cuidPtr, C.VIR_UUID_BUFLEN), nil } @@ -234,18 +244,20 @@ func (n *Network) GetUUID() ([]byte, error) { func (n *Network) GetUUIDString() (string, error) { var cUuid [C.VIR_UUID_STRING_BUFLEN](C.char) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virNetworkGetUUIDString(n.ptr, (*C.char)(cuidPtr)) + var err C.virError + result :=3D C.virNetworkGetUUIDStringWrapper(n.ptr, (*C.char)(cuidPtr), &= err) if result !=3D 0 { - return "", GetLastError() + return "", makeError(&err) } return C.GoString((*C.char)(cuidPtr)), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkGetBridgeName func (n *Network) GetBridgeName() (string, error) { - result :=3D C.virNetworkGetBridgeName(n.ptr) + var err C.virError + result :=3D C.virNetworkGetBridgeNameWrapper(n.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } bridge :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -254,9 +266,10 @@ func (n *Network) GetBridgeName() (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkGetXMLDesc func (n *Network) GetXMLDesc(flags NetworkXMLFlags) (string, error) { - result :=3D C.virNetworkGetXMLDesc(n.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virNetworkGetXMLDescWrapper(n.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -265,9 +278,10 @@ func (n *Network) GetXMLDesc(flags NetworkXMLFlags) (s= tring, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkUndefine func (n *Network) Undefine() error { - result :=3D C.virNetworkUndefine(n.ptr) + var err C.virError + result :=3D C.virNetworkUndefineWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -276,9 +290,10 @@ func (n *Network) Undefine() error { func (n *Network) Update(cmd NetworkUpdateCommand, section NetworkUpdateSe= ction, parentIndex int, xml string, flags NetworkUpdateFlags) error { cxml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cxml)) - result :=3D C.virNetworkUpdate(n.ptr, C.uint(cmd), C.uint(section), C.int= (parentIndex), cxml, C.uint(flags)) + var err C.virError + result :=3D C.virNetworkUpdateWrapper(n.ptr, C.uint(cmd), C.uint(section)= , C.int(parentIndex), cxml, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -289,9 +304,10 @@ func (n *Network) GetDHCPLeases() ([]NetworkDHCPLease,= error) { return []NetworkDHCPLease{}, GetNotImplementedError("virNetworkGetDHCPLe= ases") } var cLeases *C.virNetworkDHCPLeasePtr - numLeases :=3D C.virNetworkGetDHCPLeasesWrapper(n.ptr, nil, (**C.virNetwo= rkDHCPLeasePtr)(&cLeases), C.uint(0)) + var err C.virError + numLeases :=3D C.virNetworkGetDHCPLeasesWrapper(n.ptr, nil, (**C.virNetwo= rkDHCPLeasePtr)(&cLeases), C.uint(0), &err) if numLeases =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cLeases)), diff --git a/network_wrapper.go b/network_wrapper.go index 5c797e0..2fc443f 100644 --- a/network_wrapper.go +++ b/network_wrapper.go @@ -31,21 +31,237 @@ package libvirt #include #include "network_wrapper.h" =20 -void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease) +int +virNetworkCreateWrapper(virNetworkPtr network, + virErrorPtr err) { + int ret =3D virNetworkCreate(network); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, - const char *mac, - virNetworkDHCPLeasePtr **leases, - unsigned int flags) + +void +virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease) { #if LIBVIR_VERSION_NUMBER < 1002006 assert(0); // Caller should have checked version #else - return virNetworkGetDHCPLeases(network, mac, leases, flags); + virNetworkDHCPLeaseFree(lease); #endif } =20 + +int +virNetworkDestroyWrapper(virNetworkPtr network, + virErrorPtr err) +{ + int ret =3D virNetworkDestroy(network); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkFreeWrapper(virNetworkPtr network, + virErrorPtr err) +{ + int ret =3D virNetworkFree(network); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkGetAutostartWrapper(virNetworkPtr network, + int *autostart, + virErrorPtr err) +{ + int ret =3D virNetworkGetAutostart(network, autostart); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virNetworkGetBridgeNameWrapper(virNetworkPtr network, + virErrorPtr err) +{ + char * ret =3D virNetworkGetBridgeName(network); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virNetworkGetConnectWrapper(virNetworkPtr net, + virErrorPtr err) +{ + virConnectPtr ret =3D virNetworkGetConnect(net); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, + const char *mac, + virNetworkDHCPLeasePtr **leases, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002006 + assert(0); // Caller should have checked version +#else + int ret =3D virNetworkGetDHCPLeases(network, mac, leases, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +const char * +virNetworkGetNameWrapper(virNetworkPtr network, + virErrorPtr err) +{ + const char * ret =3D virNetworkGetName(network); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkGetUUIDWrapper(virNetworkPtr network, + unsigned char *uuid, + virErrorPtr err) +{ + int ret =3D virNetworkGetUUID(network, uuid); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkGetUUIDStringWrapper(virNetworkPtr network, + char *buf, + virErrorPtr err) +{ + int ret =3D virNetworkGetUUIDString(network, buf); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virNetworkGetXMLDescWrapper(virNetworkPtr network, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virNetworkGetXMLDesc(network, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkIsActiveWrapper(virNetworkPtr net, + virErrorPtr err) +{ + int ret =3D virNetworkIsActive(net); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkIsPersistentWrapper(virNetworkPtr net, + virErrorPtr err) +{ + int ret =3D virNetworkIsPersistent(net); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkRefWrapper(virNetworkPtr network, + virErrorPtr err) +{ + int ret =3D virNetworkRef(network); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkSetAutostartWrapper(virNetworkPtr network, + int autostart, + virErrorPtr err) +{ + int ret =3D virNetworkSetAutostart(network, autostart); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkUndefineWrapper(virNetworkPtr network, + virErrorPtr err) +{ + int ret =3D virNetworkUndefine(network); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNetworkUpdateWrapper(virNetworkPtr network, + unsigned int command, + unsigned int section, + int parentIndex, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNetworkUpdate(network, command, section, parentIndex, x= ml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/network_wrapper.h b/network_wrapper.h index 8a36d13..405bf89 100644 --- a/network_wrapper.h +++ b/network_wrapper.h @@ -31,13 +31,89 @@ #include #include "network_compat.h" =20 +int +virNetworkCreateWrapper(virNetworkPtr network, + virErrorPtr err); + void virNetworkDHCPLeaseFreeWrapper(virNetworkDHCPLeasePtr lease); =20 +int +virNetworkDestroyWrapper(virNetworkPtr network, + virErrorPtr err); + +int +virNetworkFreeWrapper(virNetworkPtr network, + virErrorPtr err); + +int +virNetworkGetAutostartWrapper(virNetworkPtr network, + int *autostart, + virErrorPtr err); + +char * +virNetworkGetBridgeNameWrapper(virNetworkPtr network, + virErrorPtr err); + +virConnectPtr +virNetworkGetConnectWrapper(virNetworkPtr net, + virErrorPtr err); + int virNetworkGetDHCPLeasesWrapper(virNetworkPtr network, const char *mac, virNetworkDHCPLeasePtr **leases, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +const char * +virNetworkGetNameWrapper(virNetworkPtr network, + virErrorPtr err); + +int +virNetworkGetUUIDWrapper(virNetworkPtr network, + unsigned char *uuid, + virErrorPtr err); + +int +virNetworkGetUUIDStringWrapper(virNetworkPtr network, + char *buf, + virErrorPtr err); + +char * +virNetworkGetXMLDescWrapper(virNetworkPtr network, + unsigned int flags, + virErrorPtr err); + +int +virNetworkIsActiveWrapper(virNetworkPtr net, + virErrorPtr err); + +int +virNetworkIsPersistentWrapper(virNetworkPtr net, + virErrorPtr err); + +int +virNetworkRefWrapper(virNetworkPtr network, + virErrorPtr err); + +int +virNetworkSetAutostartWrapper(virNetworkPtr network, + int autostart, + virErrorPtr err); + +int +virNetworkUndefineWrapper(virNetworkPtr network, + virErrorPtr err); + +int +virNetworkUpdateWrapper(virNetworkPtr network, + unsigned int command, + unsigned int section, + int parentIndex, + const char *xml, + unsigned int flags, + virErrorPtr err); + =20 #endif /* LIBVIRT_GO_NETWORK_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747539510184.37610021867647; Mon, 16 Jul 2018 06:25:39 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2D48F87628; Mon, 16 Jul 2018 13:25:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F267A60BE4; Mon, 16 Jul 2018 13:25:37 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id A80214BB78; Mon, 16 Jul 2018 13:25:37 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOvU2028251 for ; Mon, 16 Jul 2018 09:24:57 -0400 Received: by smtp.corp.redhat.com (Postfix) id 322972026D76; Mon, 16 Jul 2018 13:24:57 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5D8312026D65; Mon, 16 Jul 2018 13:24:56 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:14 +0100 Message-Id: <20180716132423.10354-29-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 28/37] interface: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 16 Jul 2018 13:25:38 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each interface C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- interface.go | 45 +++++++++------- interface_wrapper.go | 124 +++++++++++++++++++++++++++++++++++++++++++ interface_wrapper.h | 44 +++++++++++++++ 3 files changed, 195 insertions(+), 18 deletions(-) diff --git a/interface.go b/interface.go index bd39ed0..9b6ebb2 100644 --- a/interface.go +++ b/interface.go @@ -49,27 +49,30 @@ type Interface struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceCreate func (n *Interface) Create(flags uint32) error { - result :=3D C.virInterfaceCreate(n.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virInterfaceCreateWrapper(n.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceDestroy func (n *Interface) Destroy(flags uint32) error { - result :=3D C.virInterfaceDestroy(n.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virInterfaceDestroyWrapper(n.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceIsActive func (n *Interface) IsActive() (bool, error) { - result :=3D C.virInterfaceIsActive(n.ptr) + var err C.virError + result :=3D C.virInterfaceIsActiveWrapper(n.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -79,9 +82,10 @@ func (n *Interface) IsActive() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceGetMACString func (n *Interface) GetMACString() (string, error) { - result :=3D C.virInterfaceGetMACString(n.ptr) + var err C.virError + result :=3D C.virInterfaceGetMACStringWrapper(n.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } mac :=3D C.GoString(result) return mac, nil @@ -89,9 +93,10 @@ func (n *Interface) GetMACString() (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceGetName func (n *Interface) GetName() (string, error) { - result :=3D C.virInterfaceGetName(n.ptr) + var err C.virError + result :=3D C.virInterfaceGetNameWrapper(n.ptr, &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } name :=3D C.GoString(result) return name, nil @@ -99,9 +104,10 @@ func (n *Interface) GetName() (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceGetXMLDesc func (n *Interface) GetXMLDesc(flags InterfaceXMLFlags) (string, error) { - result :=3D C.virInterfaceGetXMLDesc(n.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virInterfaceGetXMLDescWrapper(n.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -110,27 +116,30 @@ func (n *Interface) GetXMLDesc(flags InterfaceXMLFlag= s) (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceUndefine func (n *Interface) Undefine() error { - result :=3D C.virInterfaceUndefine(n.ptr) + var err C.virError + result :=3D C.virInterfaceUndefineWrapper(n.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceFree func (n *Interface) Free() error { - ret :=3D C.virInterfaceFree(n.ptr) + var err C.virError + ret :=3D C.virInterfaceFreeWrapper(n.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceRef func (c *Interface) Ref() error { - ret :=3D C.virInterfaceRef(c.ptr) + var err C.virError + ret :=3D C.virInterfaceRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } diff --git a/interface_wrapper.go b/interface_wrapper.go index c9618fb..a33aea9 100644 --- a/interface_wrapper.go +++ b/interface_wrapper.go @@ -30,5 +30,129 @@ package libvirt #include #include "interface_wrapper.h" =20 + +int +virInterfaceCreateWrapper(virInterfacePtr iface, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virInterfaceCreate(iface, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceDestroyWrapper(virInterfacePtr iface, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virInterfaceDestroy(iface, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceFreeWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + int ret =3D virInterfaceFree(iface); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virInterfaceGetConnectWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + virConnectPtr ret =3D virInterfaceGetConnect(iface); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virInterfaceGetMACStringWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + const char * ret =3D virInterfaceGetMACString(iface); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virInterfaceGetNameWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + const char * ret =3D virInterfaceGetName(iface); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virInterfaceGetXMLDescWrapper(virInterfacePtr iface, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virInterfaceGetXMLDesc(iface, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceIsActiveWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + int ret =3D virInterfaceIsActive(iface); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceRefWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + int ret =3D virInterfaceRef(iface); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceUndefineWrapper(virInterfacePtr iface, + virErrorPtr err) +{ + int ret =3D virInterfaceUndefine(iface); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/interface_wrapper.h b/interface_wrapper.h index 8b1f8f1..b7cef76 100644 --- a/interface_wrapper.h +++ b/interface_wrapper.h @@ -29,4 +29,48 @@ #include #include =20 +int +virInterfaceCreateWrapper(virInterfacePtr iface, + unsigned int flags, + virErrorPtr err); + +int +virInterfaceDestroyWrapper(virInterfacePtr iface, + unsigned int flags, + virErrorPtr err); + +int +virInterfaceFreeWrapper(virInterfacePtr iface, + virErrorPtr err); + +virConnectPtr +virInterfaceGetConnectWrapper(virInterfacePtr iface, + virErrorPtr err); + +const char * +virInterfaceGetMACStringWrapper(virInterfacePtr iface, + virErrorPtr err); + +const char * +virInterfaceGetNameWrapper(virInterfacePtr iface, + virErrorPtr err); + +char * +virInterfaceGetXMLDescWrapper(virInterfacePtr iface, + unsigned int flags, + virErrorPtr err); + +int +virInterfaceIsActiveWrapper(virInterfacePtr iface, + virErrorPtr err); + +int +virInterfaceRefWrapper(virInterfacePtr iface, + virErrorPtr err); + +int +virInterfaceUndefineWrapper(virInterfacePtr iface, + virErrorPtr err); + + #endif /* LIBVIRT_GO_INTERFACE_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747533261402.43269488945487; Mon, 16 Jul 2018 06:25:33 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D17FDC04AC54; Mon, 16 Jul 2018 13:25:31 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9B18560E37; Mon, 16 Jul 2018 13:25:31 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 39DA11853DA1; Mon, 16 Jul 2018 13:25:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDOwcn028271 for ; Mon, 16 Jul 2018 09:24:58 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7031A2027047; Mon, 16 Jul 2018 13:24:58 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id AC7A22026D65; Mon, 16 Jul 2018 13:24:57 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:15 +0100 Message-Id: <20180716132423.10354-30-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 29/37] domain snapshot: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 16 Jul 2018 13:25:32 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each domain snapshot C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- domain_snapshot.go | 62 ++++++++----- domain_snapshot_wrapper.go | 181 +++++++++++++++++++++++++++++++++++++ domain_snapshot_wrapper.h | 70 ++++++++++++++ 3 files changed, 288 insertions(+), 25 deletions(-) diff --git a/domain_snapshot.go b/domain_snapshot.go index 706c1a9..65fbbb5 100644 --- a/domain_snapshot.go +++ b/domain_snapshot.go @@ -90,45 +90,50 @@ type DomainSnapshot struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotFree func (s *DomainSnapshot) Free() error { - ret :=3D C.virDomainSnapshotFree(s.ptr) + var err C.virError + ret :=3D C.virDomainSnapshotFreeWrapper(s.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotRef func (c *DomainSnapshot) Ref() error { - ret :=3D C.virDomainSnapshotRef(c.ptr) + var err C.virError + ret :=3D C.virDomainSnapshotRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotDelete func (s *DomainSnapshot) Delete(flags DomainSnapshotDeleteFlags) error { - result :=3D C.virDomainSnapshotDelete(s.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSnapshotDeleteWrapper(s.ptr, C.uint(flags), &err) if result !=3D 0 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainRevertToSnapshot func (s *DomainSnapshot) RevertToSnapshot(flags DomainSnapshotRevertFlags)= error { - result :=3D C.virDomainRevertToSnapshot(s.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainRevertToSnapshotWrapper(s.ptr, C.uint(flags), &err) if result !=3D 0 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotIsCurrent func (s *DomainSnapshot) IsCurrent(flags uint32) (bool, error) { - result :=3D C.virDomainSnapshotIsCurrent(s.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSnapshotIsCurrentWrapper(s.ptr, C.uint(flags), &er= r) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -138,9 +143,10 @@ func (s *DomainSnapshot) IsCurrent(flags uint32) (bool= , error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotHasMetadata func (s *DomainSnapshot) HasMetadata(flags uint32) (bool, error) { - result :=3D C.virDomainSnapshotHasMetadata(s.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSnapshotHasMetadataWrapper(s.ptr, C.uint(flags), &= err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -150,9 +156,10 @@ func (s *DomainSnapshot) HasMetadata(flags uint32) (bo= ol, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotGetXMLDesc func (s *DomainSnapshot) GetXMLDesc(flags DomainXMLFlags) (string, error) { - result :=3D C.virDomainSnapshotGetXMLDesc(s.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSnapshotGetXMLDescWrapper(s.ptr, C.uint(flags), &e= rr) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -161,27 +168,30 @@ func (s *DomainSnapshot) GetXMLDesc(flags DomainXMLFl= ags) (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotGetName func (s *DomainSnapshot) GetName() (string, error) { - name :=3D C.virDomainSnapshotGetName(s.ptr) + var err C.virError + name :=3D C.virDomainSnapshotGetNameWrapper(s.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotGetParent func (s *DomainSnapshot) GetParent(flags uint32) (*DomainSnapshot, error) { - ptr :=3D C.virDomainSnapshotGetParent(s.ptr, C.uint(flags)) + var err C.virError + ptr :=3D C.virDomainSnapshotGetParentWrapper(s.ptr, C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainSnapshot{ptr: ptr}, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotNumChildren func (s *DomainSnapshot) NumChildren(flags DomainSnapshotListFlags) (int, = error) { - result :=3D int(C.virDomainSnapshotNumChildren(s.ptr, C.uint(flags))) + var err C.virError + result :=3D int(C.virDomainSnapshotNumChildrenWrapper(s.ptr, C.uint(flags= ), &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -191,12 +201,13 @@ func (s *DomainSnapshot) ListChildrenNames(flags Doma= inSnapshotListFlags) ([]str const maxNames =3D 1024 var names [maxNames](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numNames :=3D C.virDomainSnapshotListChildrenNames( + var err C.virError + numNames :=3D C.virDomainSnapshotListChildrenNamesWrapper( s.ptr, (**C.char)(namesPtr), - maxNames, C.uint(flags)) + maxNames, C.uint(flags), &err) if numNames =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numNames) for k :=3D 0; k < int(numNames); k++ { @@ -209,9 +220,10 @@ func (s *DomainSnapshot) ListChildrenNames(flags Domai= nSnapshotListFlags) ([]str // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotListAllChildren func (d *DomainSnapshot) ListAllChildren(flags DomainSnapshotListFlags) ([= ]DomainSnapshot, error) { var cList *C.virDomainSnapshotPtr - numVols :=3D C.virDomainSnapshotListAllChildren(d.ptr, (**C.virDomainSnap= shotPtr)(&cList), C.uint(flags)) + var err C.virError + numVols :=3D C.virDomainSnapshotListAllChildrenWrapper(d.ptr, (**C.virDom= ainSnapshotPtr)(&cList), C.uint(flags), &err) if numVols =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), diff --git a/domain_snapshot_wrapper.go b/domain_snapshot_wrapper.go index 75e3ea5..a061dee 100644 --- a/domain_snapshot_wrapper.go +++ b/domain_snapshot_wrapper.go @@ -30,5 +30,186 @@ package libvirt #include #include "domain_snapshot_wrapper.h" =20 + +int +virDomainRevertToSnapshotWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainRevertToSnapshot(snapshot, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotDeleteWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotDelete(snapshot, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotFreeWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotFree(snapshot); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virDomainSnapshotGetConnectWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err) +{ + virConnectPtr ret =3D virDomainSnapshotGetConnect(snapshot); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainSnapshotGetDomainWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainSnapshotGetDomain(snapshot); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virDomainSnapshotGetNameWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err) +{ + const char * ret =3D virDomainSnapshotGetName(snapshot); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainSnapshotPtr +virDomainSnapshotGetParentWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + virDomainSnapshotPtr ret =3D virDomainSnapshotGetParent(snapshot, flag= s); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainSnapshotGetXMLDescWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainSnapshotGetXMLDesc(snapshot, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotHasMetadataWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotHasMetadata(snapshot, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotIsCurrentWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotIsCurrent(snapshot, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotListAllChildrenWrapper(virDomainSnapshotPtr snapshot, + virDomainSnapshotPtr **snaps, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotListAllChildren(snapshot, snaps, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotListChildrenNamesWrapper(virDomainSnapshotPtr snapshot, + char **names, + int nameslen, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotListChildrenNames(snapshot, names, namesl= en, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotNumChildrenWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotNumChildren(snapshot, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotRefWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotRef(snapshot); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/domain_snapshot_wrapper.h b/domain_snapshot_wrapper.h index 45464ce..fcf8036 100644 --- a/domain_snapshot_wrapper.h +++ b/domain_snapshot_wrapper.h @@ -29,4 +29,74 @@ #include #include =20 + +int +virDomainRevertToSnapshotWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotDeleteWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotFreeWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err); + +virConnectPtr +virDomainSnapshotGetConnectWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err); + +virDomainPtr +virDomainSnapshotGetDomainWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err); + +const char * +virDomainSnapshotGetNameWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err); + +virDomainSnapshotPtr +virDomainSnapshotGetParentWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +char * +virDomainSnapshotGetXMLDescWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotHasMetadataWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotIsCurrentWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotListAllChildrenWrapper(virDomainSnapshotPtr snapshot, + virDomainSnapshotPtr **snaps, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotListChildrenNamesWrapper(virDomainSnapshotPtr snapshot, + char **names, + int nameslen, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotNumChildrenWrapper(virDomainSnapshotPtr snapshot, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotRefWrapper(virDomainSnapshotPtr snapshot, + virErrorPtr err); + + #endif /* LIBVIRT_GO_DOMAIN_SNAPSHOT_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747546698415.0197960521407; Mon, 16 Jul 2018 06:25:46 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CE8FE3086269; Mon, 16 Jul 2018 13:25:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 899982010CA0; Mon, 16 Jul 2018 13:25:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1F0873F64B; Mon, 16 Jul 2018 13:25:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP1iw028306 for ; Mon, 16 Jul 2018 09:25:01 -0400 Received: by smtp.corp.redhat.com (Postfix) id DC2412026D76; Mon, 16 Jul 2018 13:25:00 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id B06472026D65; Mon, 16 Jul 2018 13:24:58 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:16 +0100 Message-Id: <20180716132423.10354-31-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 30/37] connect: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 16 Jul 2018 13:25:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each connect C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- connect.go | 700 ++++++++++-------- connect_wrapper.go | 1725 +++++++++++++++++++++++++++++++++++++++++--- connect_wrapper.h | 697 ++++++++++++++++-- error_test.go | 44 -- 4 files changed, 2677 insertions(+), 489 deletions(-) delete mode 100644 error_test.go diff --git a/connect.go b/connect.go index 5ea8c48..29e4fb0 100644 --- a/connect.go +++ b/connect.go @@ -309,8 +309,10 @@ func releaseConnectionData(c *Connect) { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virGetVersi= on func GetVersion() (uint32, error) { var version C.ulong - if err :=3D C.virGetVersion(&version, nil, nil); err < 0 { - return 0, GetLastError() + var err C.virError + ret :=3D C.virGetVersionWrapper(&version, nil, nil, &err) + if ret < 0 { + return 0, makeError(&err) } return uint32(version), nil } @@ -322,9 +324,10 @@ func NewConnect(uri string) (*Connect, error) { cUri =3D C.CString(uri) defer C.free(unsafe.Pointer(cUri)) } - ptr :=3D C.virConnectOpen(cUri) + var err C.virError + ptr :=3D C.virConnectOpenWrapper(cUri, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Connect{ptr: ptr}, nil } @@ -395,10 +398,11 @@ func NewConnectWithAuth(uri string, auth *ConnectAuth= , flags ConnectFlags) (*Con =20 callbackID :=3D registerCallbackId(auth.Callback) =20 - ptr :=3D C.virConnectOpenAuthWrapper(cUri, &ccredtype[0], C.uint(len(auth= .CredType)), C.int(callbackID), C.uint(flags)) + var err C.virError + ptr :=3D C.virConnectOpenAuthWrapper(cUri, &ccredtype[0], C.uint(len(auth= .CredType)), C.int(callbackID), C.uint(flags), &err) freeCallbackId(callbackID) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Connect{ptr: ptr}, nil } @@ -410,18 +414,20 @@ func NewConnectReadOnly(uri string) (*Connect, error)= { cUri =3D C.CString(uri) defer C.free(unsafe.Pointer(cUri)) } - ptr :=3D C.virConnectOpenReadOnly(cUri) + var err C.virError + ptr :=3D C.virConnectOpenReadOnlyWrapper(cUri, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Connect{ptr: ptr}, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectC= lose func (c *Connect) Close() (int, error) { - result :=3D int(C.virConnectClose(c.ptr)) + var err C.virError + result :=3D int(C.virConnectCloseWrapper(c.ptr, &err)) if result =3D=3D -1 { - return result, GetLastError() + return result, makeError(&err) } if result =3D=3D 0 { // No more reference to this connection, release data. @@ -433,9 +439,10 @@ func (c *Connect) Close() (int, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectR= ef func (c *Connect) Ref() error { - ret :=3D C.virConnectRef(c.ptr) + var err C.virError + ret :=3D C.virConnectRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -449,11 +456,11 @@ type CloseCallback func(conn *Connect, reason Connect= CloseReason) func (c *Connect) RegisterCloseCallback(callback CloseCallback) error { c.UnregisterCloseCallback() goCallbackId :=3D registerCallbackId(callback) - callbackPtr :=3D unsafe.Pointer(C.closeCallbackHelper) - res :=3D C.virConnectRegisterCloseCallbackHelper(c.ptr, C.virConnectClose= Func(callbackPtr), C.long(goCallbackId)) + var err C.virError + res :=3D C.virConnectRegisterCloseCallbackWrapper(c.ptr, C.long(goCallbac= kId), &err) if res !=3D 0 { freeCallbackId(goCallbackId) - return GetLastError() + return makeError(&err) } connData :=3D getConnectionData(c) connData.closeCallbackId =3D &goCallbackId @@ -466,10 +473,10 @@ func (c *Connect) UnregisterCloseCallback() error { if connData.closeCallbackId =3D=3D nil { return nil } - callbackPtr :=3D unsafe.Pointer(C.closeCallbackHelper) - res :=3D C.virConnectUnregisterCloseCallback(c.ptr, C.virConnectCloseFunc= (callbackPtr)) + var err C.virError + res :=3D C.virConnectUnregisterCloseCallbackWrapper(c.ptr, &err) if res !=3D 0 { - return GetLastError() + return makeError(&err) } connData.closeCallbackId =3D nil return nil @@ -487,9 +494,10 @@ func closeCallback(conn C.virConnectPtr, reason Connec= tCloseReason, goCallbackId =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etCapabilities func (c *Connect) GetCapabilities() (string, error) { - str :=3D C.virConnectGetCapabilities(c.ptr) + var err C.virError + str :=3D C.virConnectGetCapabilitiesWrapper(c.ptr, &err) if str =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } capabilities :=3D C.GoString(str) C.free(unsafe.Pointer(str)) @@ -499,9 +507,10 @@ func (c *Connect) GetCapabilities() (string, error) { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeGetI= nfo func (c *Connect) GetNodeInfo() (*NodeInfo, error) { var cinfo C.virNodeInfo - result :=3D C.virNodeGetInfo(c.ptr, &cinfo) + var err C.virError + result :=3D C.virNodeGetInfoWrapper(c.ptr, &cinfo, &err) if result =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } return &NodeInfo{ Model: C.GoString((*C.char)(unsafe.Pointer(&cinfo.model[0]))), @@ -521,9 +530,10 @@ func (ni *NodeInfo) GetMaxCPUs() uint32 { =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etHostname func (c *Connect) GetHostname() (string, error) { - str :=3D C.virConnectGetHostname(c.ptr) + var err C.virError + str :=3D C.virConnectGetHostnameWrapper(c.ptr, &err) if str =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } hostname :=3D C.GoString(str) C.free(unsafe.Pointer(str)) @@ -533,17 +543,20 @@ func (c *Connect) GetHostname() (string, error) { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etLibVersion func (c *Connect) GetLibVersion() (uint32, error) { var version C.ulong - if err :=3D C.virConnectGetLibVersion(c.ptr, &version); err < 0 { - return 0, GetLastError() + var err C.virError + ret :=3D C.virConnectGetLibVersionWrapper(c.ptr, &version, &err) + if ret < 0 { + return 0, makeError(&err) } return uint32(version), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etType func (c *Connect) GetType() (string, error) { - str :=3D C.virConnectGetType(c.ptr) + var err C.virError + str :=3D C.virConnectGetTypeWrapper(c.ptr, &err) if str =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } hypDriver :=3D C.GoString(str) return hypDriver, nil @@ -551,9 +564,10 @@ func (c *Connect) GetType() (string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectI= sAlive func (c *Connect) IsAlive() (bool, error) { - result :=3D C.virConnectIsAlive(c.ptr) + var err C.virError + result :=3D C.virConnectIsAliveWrapper(c.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -563,9 +577,10 @@ func (c *Connect) IsAlive() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectI= sEncrypted func (c *Connect) IsEncrypted() (bool, error) { - result :=3D C.virConnectIsEncrypted(c.ptr) + var err C.virError + result :=3D C.virConnectIsEncryptedWrapper(c.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -575,9 +590,10 @@ func (c *Connect) IsEncrypted() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectI= sSecure func (c *Connect) IsSecure() (bool, error) { - result :=3D C.virConnectIsSecure(c.ptr) + var err C.virError + result :=3D C.virConnectIsSecureWrapper(c.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -589,12 +605,13 @@ func (c *Connect) IsSecure() (bool, error) { func (c *Connect) ListDefinedDomains() ([]string, error) { var names [1024](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numDomains :=3D C.virConnectListDefinedDomains( + var err C.virError + numDomains :=3D C.virConnectListDefinedDomainsWrapper( c.ptr, (**C.char)(namesPtr), - 1024) + 1024, &err) if numDomains =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numDomains) for k :=3D 0; k < int(numDomains); k++ { @@ -608,9 +625,10 @@ func (c *Connect) ListDefinedDomains() ([]string, erro= r) { func (c *Connect) ListDomains() ([]uint32, error) { var cDomainsIds [512](uint32) cDomainsPointer :=3D unsafe.Pointer(&cDomainsIds) - numDomains :=3D C.virConnectListDomains(c.ptr, (*C.int)(cDomainsPointer),= 512) + var err C.virError + numDomains :=3D C.virConnectListDomainsWrapper(c.ptr, (*C.int)(cDomainsPo= inter), 512, &err) if numDomains =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return cDomainsIds[:numDomains], nil @@ -621,12 +639,13 @@ func (c *Connect) ListInterfaces() ([]string, error) { const maxIfaces =3D 1024 var names [maxIfaces](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numIfaces :=3D C.virConnectListInterfaces( + var err C.virError + numIfaces :=3D C.virConnectListInterfacesWrapper( c.ptr, (**C.char)(namesPtr), - maxIfaces) + maxIfaces, &err) if numIfaces =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numIfaces) for k :=3D 0; k < int(numIfaces); k++ { @@ -641,12 +660,13 @@ func (c *Connect) ListNetworks() ([]string, error) { const maxNets =3D 1024 var names [maxNets](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numNetworks :=3D C.virConnectListNetworks( + var err C.virError + numNetworks :=3D C.virConnectListNetworksWrapper( c.ptr, (**C.char)(namesPtr), - maxNets) + maxNets, &err) if numNetworks =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numNetworks) for k :=3D 0; k < int(numNetworks); k++ { @@ -661,12 +681,13 @@ func (c *Connect) ListNWFilters() ([]string, error) { const maxFilters =3D 1024 var names [maxFilters](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numNWFilters :=3D C.virConnectListNWFilters( + var err C.virError + numNWFilters :=3D C.virConnectListNWFiltersWrapper( c.ptr, (**C.char)(namesPtr), - maxFilters) + maxFilters, &err) if numNWFilters =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numNWFilters) for k :=3D 0; k < int(numNWFilters); k++ { @@ -681,12 +702,13 @@ func (c *Connect) ListStoragePools() ([]string, error= ) { const maxPools =3D 1024 var names [maxPools](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numStoragePools :=3D C.virConnectListStoragePools( + var err C.virError + numStoragePools :=3D C.virConnectListStoragePoolsWrapper( c.ptr, (**C.char)(namesPtr), - maxPools) + maxPools, &err) if numStoragePools =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numStoragePools) for k :=3D 0; k < int(numStoragePools); k++ { @@ -701,12 +723,13 @@ func (c *Connect) ListSecrets() ([]string, error) { const maxSecrets =3D 1024 var uuids [maxSecrets](*C.char) uuidsPtr :=3D unsafe.Pointer(&uuids) - numSecrets :=3D C.virConnectListSecrets( + var err C.virError + numSecrets :=3D C.virConnectListSecretsWrapper( c.ptr, (**C.char)(uuidsPtr), - maxSecrets) + maxSecrets, &err) if numSecrets =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goUuids :=3D make([]string, numSecrets) for k :=3D 0; k < int(numSecrets); k++ { @@ -723,12 +746,13 @@ func (c *Connect) ListDevices(cap string, flags uint3= 2) ([]string, error) { const maxNodeDevices =3D 1024 var uuids [maxNodeDevices](*C.char) uuidsPtr :=3D unsafe.Pointer(&uuids) - numNodeDevices :=3D C.virNodeListDevices( + var err C.virError + numNodeDevices :=3D C.virNodeListDevicesWrapper( c.ptr, ccap, (**C.char)(uuidsPtr), - maxNodeDevices, C.uint(flags)) + maxNodeDevices, C.uint(flags), &err) if numNodeDevices =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goUuids :=3D make([]string, numNodeDevices) for k :=3D 0; k < int(numNodeDevices); k++ { @@ -740,9 +764,10 @@ func (c *Connect) ListDevices(cap string, flags uint32= ) ([]string, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= LookupByID func (c *Connect) LookupDomainById(id uint32) (*Domain, error) { - ptr :=3D C.virDomainLookupByID(c.ptr, C.int(id)) + var err C.virError + ptr :=3D C.virDomainLookupByIDWrapper(c.ptr, C.int(id), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -751,9 +776,10 @@ func (c *Connect) LookupDomainById(id uint32) (*Domain= , error) { func (c *Connect) LookupDomainByName(id string) (*Domain, error) { cName :=3D C.CString(id) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virDomainLookupByName(c.ptr, cName) + var err C.virError + ptr :=3D C.virDomainLookupByNameWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -762,9 +788,10 @@ func (c *Connect) LookupDomainByName(id string) (*Doma= in, error) { func (c *Connect) LookupDomainByUUIDString(uuid string) (*Domain, error) { cUuid :=3D C.CString(uuid) defer C.free(unsafe.Pointer(cUuid)) - ptr :=3D C.virDomainLookupByUUIDString(c.ptr, cUuid) + var err C.virError + ptr :=3D C.virDomainLookupByUUIDStringWrapper(c.ptr, cUuid, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -779,9 +806,10 @@ func (c *Connect) LookupDomainByUUID(uuid []byte) (*Do= main, error) { for i :=3D 0; i < C.VIR_UUID_BUFLEN; i++ { cUuid[i] =3D C.uchar(uuid[i]) } - ptr :=3D C.virDomainLookupByUUID(c.ptr, &cUuid[0]) + var err C.virError + ptr :=3D C.virDomainLookupByUUIDWrapper(c.ptr, &cUuid[0], &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -790,9 +818,10 @@ func (c *Connect) LookupDomainByUUID(uuid []byte) (*Do= main, error) { func (c *Connect) DomainCreateXML(xmlConfig string, flags DomainCreateFlag= s) (*Domain, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virDomainCreateXML(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virDomainCreateXMLWrapper(c.ptr, cXml, C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -805,9 +834,10 @@ func (c *Connect) DomainCreateXMLWithFiles(xmlConfig s= tring, files []os.File, fl for i :=3D 0; i < len(files); i++ { cfiles[i] =3D C.int(files[i].Fd()) } - ptr :=3D C.virDomainCreateXMLWithFiles(c.ptr, cXml, C.uint(len(files)), (= &cfiles[0]), C.uint(flags)) + var err C.virError + ptr :=3D C.virDomainCreateXMLWithFilesWrapper(c.ptr, cXml, C.uint(len(fil= es)), (&cfiles[0]), C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -816,9 +846,10 @@ func (c *Connect) DomainCreateXMLWithFiles(xmlConfig s= tring, files []os.File, fl func (c *Connect) DomainDefineXML(xmlConfig string) (*Domain, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virDomainDefineXML(c.ptr, cXml) + var err C.virError + ptr :=3D C.virDomainDefineXMLWrapper(c.ptr, cXml, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -830,9 +861,10 @@ func (c *Connect) DomainDefineXMLFlags(xmlConfig strin= g, flags DomainDefineFlags } cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virDomainDefineXMLFlagsWrapper(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virDomainDefineXMLFlagsWrapper(c.ptr, cXml, C.uint(flags), &er= r) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -842,12 +874,13 @@ func (c *Connect) ListDefinedInterfaces() ([]string, = error) { const maxIfaces =3D 1024 var names [maxIfaces](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numIfaces :=3D C.virConnectListDefinedInterfaces( + var err C.virError + numIfaces :=3D C.virConnectListDefinedInterfacesWrapper( c.ptr, (**C.char)(namesPtr), - maxIfaces) + maxIfaces, &err) if numIfaces =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numIfaces) for k :=3D 0; k < int(numIfaces); k++ { @@ -862,12 +895,13 @@ func (c *Connect) ListDefinedNetworks() ([]string, er= ror) { const maxNets =3D 1024 var names [maxNets](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numNetworks :=3D C.virConnectListDefinedNetworks( + var err C.virError + numNetworks :=3D C.virConnectListDefinedNetworksWrapper( c.ptr, (**C.char)(namesPtr), - maxNets) + maxNets, &err) if numNetworks =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numNetworks) for k :=3D 0; k < int(numNetworks); k++ { @@ -882,12 +916,13 @@ func (c *Connect) ListDefinedStoragePools() ([]string= , error) { const maxPools =3D 1024 var names [maxPools](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numStoragePools :=3D C.virConnectListDefinedStoragePools( + var err C.virError + numStoragePools :=3D C.virConnectListDefinedStoragePoolsWrapper( c.ptr, (**C.char)(namesPtr), - maxPools) + maxPools, &err) if numStoragePools =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numStoragePools) for k :=3D 0; k < int(numStoragePools); k++ { @@ -899,90 +934,100 @@ func (c *Connect) ListDefinedStoragePools() ([]strin= g, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virConnec= tNumOfDefinedDomains func (c *Connect) NumOfDefinedDomains() (int, error) { - result :=3D int(C.virConnectNumOfDefinedDomains(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfDefinedDomainsWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virCon= nectNumOfDefinedInterfaces func (c *Connect) NumOfDefinedInterfaces() (int, error) { - result :=3D int(C.virConnectNumOfDefinedInterfaces(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfDefinedInterfacesWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virConne= ctNumOfDefinedNetworks func (c *Connect) NumOfDefinedNetworks() (int, error) { - result :=3D int(C.virConnectNumOfDefinedNetworks(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfDefinedNetworksWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virConne= ctNumOfDefinedStoragePools func (c *Connect) NumOfDefinedStoragePools() (int, error) { - result :=3D int(C.virConnectNumOfDefinedStoragePools(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfDefinedStoragePoolsWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virConnec= tNumOfDomains func (c *Connect) NumOfDomains() (int, error) { - result :=3D int(C.virConnectNumOfDomains(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfDomainsWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virConne= ctNumOfStoragePools func (c *Connect) NumOfStoragePools() (int, error) { - result :=3D int(C.virConnectNumOfStoragePools(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfStoragePoolsWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virCon= nectNumOfInterfaces func (c *Connect) NumOfInterfaces() (int, error) { - result :=3D int(C.virConnectNumOfInterfaces(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfInterfacesWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-network.html#virConne= ctNumOfNetworks func (c *Connect) NumOfNetworks() (int, error) { - result :=3D int(C.virConnectNumOfNetworks(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfNetworksWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virConn= ectNumOfNWFilters func (c *Connect) NumOfNWFilters() (int, error) { - result :=3D int(C.virConnectNumOfNWFilters(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfNWFiltersWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virConnec= tNumOfSecrets func (c *Connect) NumOfSecrets() (int, error) { - result :=3D int(C.virConnectNumOfSecrets(c.ptr)) + var err C.virError + result :=3D int(C.virConnectNumOfSecretsWrapper(c.ptr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -991,9 +1036,10 @@ func (c *Connect) NumOfSecrets() (int, error) { func (c *Connect) NumOfDevices(cap string, flags uint32) (int, error) { ccap :=3D C.CString(cap) defer C.free(unsafe.Pointer(ccap)) - result :=3D int(C.virNodeNumOfDevices(c.ptr, ccap, C.uint(flags))) + var err C.virError + result :=3D int(C.virNodeNumOfDevicesWrapper(c.ptr, ccap, C.uint(flags), = &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -1002,9 +1048,10 @@ func (c *Connect) NumOfDevices(cap string, flags uin= t32) (int, error) { func (c *Connect) NetworkDefineXML(xmlConfig string) (*Network, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virNetworkDefineXML(c.ptr, cXml) + var err C.virError + ptr :=3D C.virNetworkDefineXMLWrapper(c.ptr, cXml, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Network{ptr: ptr}, nil } @@ -1013,9 +1060,10 @@ func (c *Connect) NetworkDefineXML(xmlConfig string)= (*Network, error) { func (c *Connect) NetworkCreateXML(xmlConfig string) (*Network, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virNetworkCreateXML(c.ptr, cXml) + var err C.virError + ptr :=3D C.virNetworkCreateXMLWrapper(c.ptr, cXml, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Network{ptr: ptr}, nil } @@ -1024,9 +1072,10 @@ func (c *Connect) NetworkCreateXML(xmlConfig string)= (*Network, error) { func (c *Connect) LookupNetworkByName(name string) (*Network, error) { cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virNetworkLookupByName(c.ptr, cName) + var err C.virError + ptr :=3D C.virNetworkLookupByNameWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Network{ptr: ptr}, nil } @@ -1035,9 +1084,10 @@ func (c *Connect) LookupNetworkByName(name string) (= *Network, error) { func (c *Connect) LookupNetworkByUUIDString(uuid string) (*Network, error)= { cUuid :=3D C.CString(uuid) defer C.free(unsafe.Pointer(cUuid)) - ptr :=3D C.virNetworkLookupByUUIDString(c.ptr, cUuid) + var err C.virError + ptr :=3D C.virNetworkLookupByUUIDStringWrapper(c.ptr, cUuid, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Network{ptr: ptr}, nil } @@ -1052,29 +1102,32 @@ func (c *Connect) LookupNetworkByUUID(uuid []byte) = (*Network, error) { for i :=3D 0; i < C.VIR_UUID_BUFLEN; i++ { cUuid[i] =3D C.uchar(uuid[i]) } - ptr :=3D C.virNetworkLookupByUUID(c.ptr, &cUuid[0]) + var err C.virError + ptr :=3D C.virNetworkLookupByUUIDWrapper(c.ptr, &cUuid[0], &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Network{ptr: ptr}, nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectS= etKeepAlive func (c *Connect) SetKeepAlive(interval int, count uint) error { - res :=3D int(C.virConnectSetKeepAlive(c.ptr, C.int(interval), C.uint(coun= t))) + var err C.virError + res :=3D int(C.virConnectSetKeepAliveWrapper(c.ptr, C.int(interval), C.ui= nt(count), &err)) switch res { case 0: return nil default: - return GetLastError() + return makeError(&err) } } =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etSysinfo func (c *Connect) GetSysinfo(flags uint32) (string, error) { - cStr :=3D C.virConnectGetSysinfo(c.ptr, C.uint(flags)) + var err C.virError + cStr :=3D C.virConnectGetSysinfoWrapper(c.ptr, C.uint(flags), &err) if cStr =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } info :=3D C.GoString(cStr) C.free(unsafe.Pointer(cStr)) @@ -1083,9 +1136,10 @@ func (c *Connect) GetSysinfo(flags uint32) (string, = error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etURI func (c *Connect) GetURI() (string, error) { - cStr :=3D C.virConnectGetURI(c.ptr) + var err C.virError + cStr :=3D C.virConnectGetURIWrapper(c.ptr, &err) if cStr =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } uri :=3D C.GoString(cStr) C.free(unsafe.Pointer(cStr)) @@ -1099,9 +1153,10 @@ func (c *Connect) GetMaxVcpus(typeAttr string) (int,= error) { cTypeAttr =3D C.CString(typeAttr) defer C.free(unsafe.Pointer(cTypeAttr)) } - result :=3D int(C.virConnectGetMaxVcpus(c.ptr, cTypeAttr)) + var err C.virError + result :=3D int(C.virConnectGetMaxVcpusWrapper(c.ptr, cTypeAttr, &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -1110,9 +1165,10 @@ func (c *Connect) GetMaxVcpus(typeAttr string) (int,= error) { func (c *Connect) InterfaceDefineXML(xmlConfig string, flags uint32) (*Int= erface, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virInterfaceDefineXML(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virInterfaceDefineXMLWrapper(c.ptr, cXml, C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Interface{ptr: ptr}, nil } @@ -1121,9 +1177,10 @@ func (c *Connect) InterfaceDefineXML(xmlConfig strin= g, flags uint32) (*Interface func (c *Connect) LookupInterfaceByName(name string) (*Interface, error) { cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virInterfaceLookupByName(c.ptr, cName) + var err C.virError + ptr :=3D C.virInterfaceLookupByNameWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Interface{ptr: ptr}, nil } @@ -1132,9 +1189,10 @@ func (c *Connect) LookupInterfaceByName(name string)= (*Interface, error) { func (c *Connect) LookupInterfaceByMACString(mac string) (*Interface, erro= r) { cName :=3D C.CString(mac) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virInterfaceLookupByMACString(c.ptr, cName) + var err C.virError + ptr :=3D C.virInterfaceLookupByMACStringWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Interface{ptr: ptr}, nil } @@ -1143,9 +1201,10 @@ func (c *Connect) LookupInterfaceByMACString(mac str= ing) (*Interface, error) { func (c *Connect) StoragePoolDefineXML(xmlConfig string, flags uint32) (*S= toragePool, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virStoragePoolDefineXML(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virStoragePoolDefineXMLWrapper(c.ptr, cXml, C.uint(flags), &er= r) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: ptr}, nil } @@ -1154,9 +1213,10 @@ func (c *Connect) StoragePoolDefineXML(xmlConfig str= ing, flags uint32) (*Storage func (c *Connect) StoragePoolCreateXML(xmlConfig string, flags StoragePool= CreateFlags) (*StoragePool, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virStoragePoolCreateXML(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virStoragePoolCreateXMLWrapper(c.ptr, cXml, C.uint(flags), &er= r) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: ptr}, nil } @@ -1165,9 +1225,10 @@ func (c *Connect) StoragePoolCreateXML(xmlConfig str= ing, flags StoragePoolCreate func (c *Connect) LookupStoragePoolByName(name string) (*StoragePool, erro= r) { cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virStoragePoolLookupByName(c.ptr, cName) + var err C.virError + ptr :=3D C.virStoragePoolLookupByNameWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: ptr}, nil } @@ -1176,9 +1237,10 @@ func (c *Connect) LookupStoragePoolByName(name strin= g) (*StoragePool, error) { func (c *Connect) LookupStoragePoolByUUIDString(uuid string) (*StoragePool= , error) { cUuid :=3D C.CString(uuid) defer C.free(unsafe.Pointer(cUuid)) - ptr :=3D C.virStoragePoolLookupByUUIDString(c.ptr, cUuid) + var err C.virError + ptr :=3D C.virStoragePoolLookupByUUIDStringWrapper(c.ptr, cUuid, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: ptr}, nil } @@ -1193,9 +1255,10 @@ func (c *Connect) LookupStoragePoolByUUID(uuid []byt= e) (*StoragePool, error) { for i :=3D 0; i < C.VIR_UUID_BUFLEN; i++ { cUuid[i] =3D C.uchar(uuid[i]) } - ptr :=3D C.virStoragePoolLookupByUUID(c.ptr, &cUuid[0]) + var err C.virError + ptr :=3D C.virStoragePoolLookupByUUIDWrapper(c.ptr, &cUuid[0], &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: ptr}, nil } @@ -1207,9 +1270,10 @@ func (c *Connect) LookupStoragePoolByTargetPath(path= string) (*StoragePool, erro } cPath :=3D C.CString(path) defer C.free(unsafe.Pointer(cPath)) - ptr :=3D C.virStoragePoolLookupByTargetPathWrapper(c.ptr, cPath) + var err C.virError + ptr :=3D C.virStoragePoolLookupByTargetPathWrapper(c.ptr, cPath, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StoragePool{ptr: ptr}, nil } @@ -1218,9 +1282,10 @@ func (c *Connect) LookupStoragePoolByTargetPath(path= string) (*StoragePool, erro func (c *Connect) NWFilterDefineXML(xmlConfig string) (*NWFilter, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virNWFilterDefineXML(c.ptr, cXml) + var err C.virError + ptr :=3D C.virNWFilterDefineXMLWrapper(c.ptr, cXml, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NWFilter{ptr: ptr}, nil } @@ -1229,9 +1294,10 @@ func (c *Connect) NWFilterDefineXML(xmlConfig string= ) (*NWFilter, error) { func (c *Connect) LookupNWFilterByName(name string) (*NWFilter, error) { cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virNWFilterLookupByName(c.ptr, cName) + var err C.virError + ptr :=3D C.virNWFilterLookupByNameWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NWFilter{ptr: ptr}, nil } @@ -1240,9 +1306,10 @@ func (c *Connect) LookupNWFilterByName(name string) = (*NWFilter, error) { func (c *Connect) LookupNWFilterByUUIDString(uuid string) (*NWFilter, erro= r) { cUuid :=3D C.CString(uuid) defer C.free(unsafe.Pointer(cUuid)) - ptr :=3D C.virNWFilterLookupByUUIDString(c.ptr, cUuid) + var err C.virError + ptr :=3D C.virNWFilterLookupByUUIDStringWrapper(c.ptr, cUuid, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NWFilter{ptr: ptr}, nil } @@ -1257,9 +1324,10 @@ func (c *Connect) LookupNWFilterByUUID(uuid []byte) = (*NWFilter, error) { for i :=3D 0; i < C.VIR_UUID_BUFLEN; i++ { cUuid[i] =3D C.uchar(uuid[i]) } - ptr :=3D C.virNWFilterLookupByUUID(c.ptr, &cUuid[0]) + var err C.virError + ptr :=3D C.virNWFilterLookupByUUIDWrapper(c.ptr, &cUuid[0], &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NWFilter{ptr: ptr}, nil } @@ -1271,9 +1339,10 @@ func (c *Connect) LookupNWFilterBindingByPortDev(nam= e string) (*NWFilterBinding, } cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virNWFilterBindingLookupByPortDevWrapper(c.ptr, cName) + var err C.virError + ptr :=3D C.virNWFilterBindingLookupByPortDevWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NWFilterBinding{ptr: ptr}, nil } @@ -1282,9 +1351,10 @@ func (c *Connect) LookupNWFilterBindingByPortDev(nam= e string) (*NWFilterBinding, func (c *Connect) LookupStorageVolByKey(key string) (*StorageVol, error) { cKey :=3D C.CString(key) defer C.free(unsafe.Pointer(cKey)) - ptr :=3D C.virStorageVolLookupByKey(c.ptr, cKey) + var err C.virError + ptr :=3D C.virStorageVolLookupByKeyWrapper(c.ptr, cKey, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVol{ptr: ptr}, nil } @@ -1293,9 +1363,10 @@ func (c *Connect) LookupStorageVolByKey(key string) = (*StorageVol, error) { func (c *Connect) LookupStorageVolByPath(path string) (*StorageVol, error)= { cPath :=3D C.CString(path) defer C.free(unsafe.Pointer(cPath)) - ptr :=3D C.virStorageVolLookupByPath(c.ptr, cPath) + var err C.virError + ptr :=3D C.virStorageVolLookupByPathWrapper(c.ptr, cPath, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &StorageVol{ptr: ptr}, nil } @@ -1304,9 +1375,10 @@ func (c *Connect) LookupStorageVolByPath(path string= ) (*StorageVol, error) { func (c *Connect) SecretDefineXML(xmlConfig string, flags uint32) (*Secret= , error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virSecretDefineXML(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virSecretDefineXMLWrapper(c.ptr, cXml, C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Secret{ptr: ptr}, nil } @@ -1321,9 +1393,10 @@ func (c *Connect) LookupSecretByUUID(uuid []byte) (*= Secret, error) { for i :=3D 0; i < C.VIR_UUID_BUFLEN; i++ { cUuid[i] =3D C.uchar(uuid[i]) } - ptr :=3D C.virSecretLookupByUUID(c.ptr, &cUuid[0]) + var err C.virError + ptr :=3D C.virSecretLookupByUUIDWrapper(c.ptr, &cUuid[0], &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Secret{ptr: ptr}, nil } @@ -1332,9 +1405,10 @@ func (c *Connect) LookupSecretByUUID(uuid []byte) (*= Secret, error) { func (c *Connect) LookupSecretByUUIDString(uuid string) (*Secret, error) { cUuid :=3D C.CString(uuid) defer C.free(unsafe.Pointer(cUuid)) - ptr :=3D C.virSecretLookupByUUIDString(c.ptr, cUuid) + var err C.virError + ptr :=3D C.virSecretLookupByUUIDStringWrapper(c.ptr, cUuid, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Secret{ptr: ptr}, nil } @@ -1343,9 +1417,10 @@ func (c *Connect) LookupSecretByUUIDString(uuid stri= ng) (*Secret, error) { func (c *Connect) LookupSecretByUsage(usageType SecretUsageType, usageID s= tring) (*Secret, error) { cUsageID :=3D C.CString(usageID) defer C.free(unsafe.Pointer(cUsageID)) - ptr :=3D C.virSecretLookupByUsage(c.ptr, C.int(usageType), cUsageID) + var err C.virError + ptr :=3D C.virSecretLookupByUsageWrapper(c.ptr, C.int(usageType), cUsageI= D, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Secret{ptr: ptr}, nil } @@ -1354,9 +1429,10 @@ func (c *Connect) LookupSecretByUsage(usageType Secr= etUsageType, usageID string) func (c *Connect) LookupDeviceByName(id string) (*NodeDevice, error) { cName :=3D C.CString(id) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virNodeDeviceLookupByName(c.ptr, cName) + var err C.virError + ptr :=3D C.virNodeDeviceLookupByNameWrapper(c.ptr, cName, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NodeDevice{ptr: ptr}, nil } @@ -1367,9 +1443,10 @@ func (c *Connect) LookupDeviceSCSIHostByWWN(wwnn, ww= pn string, flags uint32) (*N cWwpn :=3D C.CString(wwpn) defer C.free(unsafe.Pointer(cWwnn)) defer C.free(unsafe.Pointer(cWwpn)) - ptr :=3D C.virNodeDeviceLookupSCSIHostByWWN(c.ptr, cWwnn, cWwpn, C.uint(f= lags)) + var err C.virError + ptr :=3D C.virNodeDeviceLookupSCSIHostByWWNWrapper(c.ptr, cWwnn, cWwpn, C= .uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NodeDevice{ptr: ptr}, nil } @@ -1378,9 +1455,10 @@ func (c *Connect) LookupDeviceSCSIHostByWWN(wwnn, ww= pn string, flags uint32) (*N func (c *Connect) DeviceCreateXML(xmlConfig string, flags uint32) (*NodeDe= vice, error) { cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virNodeDeviceCreateXML(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virNodeDeviceCreateXMLWrapper(c.ptr, cXml, C.uint(flags), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NodeDevice{ptr: ptr}, nil } @@ -1388,9 +1466,10 @@ func (c *Connect) DeviceCreateXML(xmlConfig string, = flags uint32) (*NodeDevice, // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virCon= nectListAllInterfaces func (c *Connect) ListAllInterfaces(flags ConnectListAllInterfacesFlags) (= []Interface, error) { var cList *C.virInterfacePtr - numIfaces :=3D C.virConnectListAllInterfaces(c.ptr, (**C.virInterfacePtr)= (&cList), C.uint(flags)) + var err C.virError + numIfaces :=3D C.virConnectListAllInterfacesWrapper(c.ptr, (**C.virInterf= acePtr)(&cList), C.uint(flags), &err) if numIfaces =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1409,9 +1488,10 @@ func (c *Connect) ListAllInterfaces(flags ConnectLis= tAllInterfacesFlags) ([]Inte // See also https://libvirt.org/html/libvirt-libvirt-network.html#virConne= ctListAllNetworks func (c *Connect) ListAllNetworks(flags ConnectListAllNetworksFlags) ([]Ne= twork, error) { var cList *C.virNetworkPtr - numNets :=3D C.virConnectListAllNetworks(c.ptr, (**C.virNetworkPtr)(&cLis= t), C.uint(flags)) + var err C.virError + numNets :=3D C.virConnectListAllNetworksWrapper(c.ptr, (**C.virNetworkPtr= )(&cList), C.uint(flags), &err) if numNets =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1430,9 +1510,10 @@ func (c *Connect) ListAllNetworks(flags ConnectListA= llNetworksFlags) ([]Network, // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virConnec= tListAllDomains func (c *Connect) ListAllDomains(flags ConnectListAllDomainsFlags) ([]Doma= in, error) { var cList *C.virDomainPtr - numDomains :=3D C.virConnectListAllDomains(c.ptr, (**C.virDomainPtr)(&cLi= st), C.uint(flags)) + var err C.virError + numDomains :=3D C.virConnectListAllDomainsWrapper(c.ptr, (**C.virDomainPt= r)(&cList), C.uint(flags), &err) if numDomains =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1451,9 +1532,10 @@ func (c *Connect) ListAllDomains(flags ConnectListAl= lDomainsFlags) ([]Domain, er // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virConn= ectListAllNWFilters func (c *Connect) ListAllNWFilters(flags uint32) ([]NWFilter, error) { var cList *C.virNWFilterPtr - numNWFilters :=3D C.virConnectListAllNWFilters(c.ptr, (**C.virNWFilterPtr= )(&cList), C.uint(flags)) + var err C.virError + numNWFilters :=3D C.virConnectListAllNWFiltersWrapper(c.ptr, (**C.virNWFi= lterPtr)(&cList), C.uint(flags), &err) if numNWFilters =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1475,9 +1557,10 @@ func (c *Connect) ListAllNWFilterBindings(flags uint= 32) ([]NWFilterBinding, erro if C.LIBVIR_VERSION_NUMBER < 4005000 { return []NWFilterBinding{}, GetNotImplementedError("virConnectListAllNWF= ilterBindings") } - numNWFilters :=3D C.virConnectListAllNWFilterBindingsWrapper(c.ptr, (**C.= virNWFilterBindingPtr)(&cList), C.uint(flags)) + var err C.virError + numNWFilters :=3D C.virConnectListAllNWFilterBindingsWrapper(c.ptr, (**C.= virNWFilterBindingPtr)(&cList), C.uint(flags), &err) if numNWFilters =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1496,9 +1579,10 @@ func (c *Connect) ListAllNWFilterBindings(flags uint= 32) ([]NWFilterBinding, erro // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virConne= ctListAllStoragePools func (c *Connect) ListAllStoragePools(flags ConnectListAllStoragePoolsFlag= s) ([]StoragePool, error) { var cList *C.virStoragePoolPtr - numPools :=3D C.virConnectListAllStoragePools(c.ptr, (**C.virStoragePoolP= tr)(&cList), C.uint(flags)) + var err C.virError + numPools :=3D C.virConnectListAllStoragePoolsWrapper(c.ptr, (**C.virStora= gePoolPtr)(&cList), C.uint(flags), &err) if numPools =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1517,9 +1601,10 @@ func (c *Connect) ListAllStoragePools(flags ConnectL= istAllStoragePoolsFlags) ([] // See also https://libvirt.org/html/libvirt-libvirt-secret.html#virConnec= tListAllSecrets func (c *Connect) ListAllSecrets(flags ConnectListAllSecretsFlags) ([]Secr= et, error) { var cList *C.virSecretPtr - numPools :=3D C.virConnectListAllSecrets(c.ptr, (**C.virSecretPtr)(&cList= ), C.uint(flags)) + var err C.virError + numPools :=3D C.virConnectListAllSecretsWrapper(c.ptr, (**C.virSecretPtr)= (&cList), C.uint(flags), &err) if numPools =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1538,9 +1623,10 @@ func (c *Connect) ListAllSecrets(flags ConnectListAl= lSecretsFlags) ([]Secret, er // See also https://libvirt.org/html/libvirt-libvirt-nodedev.html#virConne= ctListAllNodeDevices func (c *Connect) ListAllNodeDevices(flags ConnectListAllNodeDeviceFlags) = ([]NodeDevice, error) { var cList *C.virNodeDevicePtr - numPools :=3D C.virConnectListAllNodeDevices(c.ptr, (**C.virNodeDevicePtr= )(&cList), C.uint(flags)) + var err C.virError + numPools :=3D C.virConnectListAllNodeDevicesWrapper(c.ptr, (**C.virNodeDe= vicePtr)(&cList), C.uint(flags), &err) if numPools =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1558,27 +1644,30 @@ func (c *Connect) ListAllNodeDevices(flags ConnectL= istAllNodeDeviceFlags) ([]Nod =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceChangeBegin func (c *Connect) InterfaceChangeBegin(flags uint32) error { - ret :=3D C.virInterfaceChangeBegin(c.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virInterfaceChangeBeginWrapper(c.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceChangeCommit func (c *Connect) InterfaceChangeCommit(flags uint32) error { - ret :=3D C.virInterfaceChangeCommit(c.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virInterfaceChangeCommitWrapper(c.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-interface.html#virInt= erfaceChangeRollback func (c *Connect) InterfaceChangeRollback(flags uint32) error { - ret :=3D C.virInterfaceChangeRollback(c.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virInterfaceChangeRollbackWrapper(c.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1598,10 +1687,11 @@ func (c *Connect) AllocPages(pageSizes map[int]int6= 4, startCell int, cellCount u i++ } =20 + var err C.virError ret :=3D C.virNodeAllocPagesWrapper(c.ptr, C.uint(len(pageSizes)), (*C.ui= nt)(unsafe.Pointer(&cpages)), - (*C.ulonglong)(unsafe.Pointer(&ccounts)), C.int(startCell), C.uint(cellC= ount), C.uint(flags)) + (*C.ulonglong)(unsafe.Pointer(&ccounts)), C.int(startCell), C.uint(cellC= ount), C.uint(flags), &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return int(ret), nil @@ -1611,9 +1701,10 @@ func (c *Connect) AllocPages(pageSizes map[int]int64= , startCell int, cellCount u func (c *Connect) GetCPUMap(flags uint32) (map[int]bool, uint, error) { var ccpumap *C.uchar var conline C.uint - ret :=3D C.virNodeGetCPUMap(c.ptr, &ccpumap, &conline, C.uint(flags)) + var err C.virError + ret :=3D C.virNodeGetCPUMapWrapper(c.ptr, &ccpumap, &conline, C.uint(flag= s), &err) if ret =3D=3D -1 { - return map[int]bool{}, 0, GetLastError() + return map[int]bool{}, 0, makeError(&err) } defer C.free(unsafe.Pointer(ccpumap)) =20 @@ -1649,15 +1740,16 @@ type NodeCPUStats struct { func (c *Connect) GetCPUStats(cpuNum int, flags uint32) (*NodeCPUStats, er= ror) { var nparams C.int =20 - ret :=3D C.virNodeGetCPUStats(c.ptr, C.int(cpuNum), nil, &nparams, C.uint= (0)) + var err C.virError + ret :=3D C.virNodeGetCPUStatsWrapper(c.ptr, C.int(cpuNum), nil, &nparams,= C.uint(0), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 params :=3D make([]C.virNodeCPUStats, nparams) - ret =3D C.virNodeGetCPUStats(c.ptr, C.int(cpuNum), (*C.virNodeCPUStats)(u= nsafe.Pointer(¶ms[0])), &nparams, C.uint(flags)) + ret =3D C.virNodeGetCPUStatsWrapper(c.ptr, C.int(cpuNum), (*C.virNodeCPUS= tats)(unsafe.Pointer(¶ms[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 stats :=3D &NodeCPUStats{} @@ -1692,9 +1784,10 @@ func (c *Connect) GetCPUStats(cpuNum int, flags uint= 32) (*NodeCPUStats, error) { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeGetC= ellsFreeMemory func (c *Connect) GetCellsFreeMemory(startCell int, maxCells int) ([]uint6= 4, error) { cmem :=3D make([]C.ulonglong, maxCells) - ret :=3D C.virNodeGetCellsFreeMemory(c.ptr, (*C.ulonglong)(unsafe.Pointer= (&cmem[0])), C.int(startCell), C.int(maxCells)) + var err C.virError + ret :=3D C.virNodeGetCellsFreeMemoryWrapper(c.ptr, (*C.ulonglong)(unsafe.= Pointer(&cmem[0])), C.int(startCell), C.int(maxCells), &err) if ret =3D=3D -1 { - return []uint64{}, GetLastError() + return []uint64{}, makeError(&err) } =20 mem :=3D make([]uint64, ret) @@ -1707,9 +1800,10 @@ func (c *Connect) GetCellsFreeMemory(startCell int, = maxCells int) ([]uint64, err =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeGetF= reeMemory func (c *Connect) GetFreeMemory() (uint64, error) { - ret :=3D C.virNodeGetFreeMemory(c.ptr) + var err C.virError + ret :=3D C.virNodeGetFreeMemoryWrapper(c.ptr, &err) if ret =3D=3D 0 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return (uint64)(ret), nil @@ -1727,10 +1821,11 @@ func (c *Connect) GetFreePages(pageSizes []uint64, = startCell int, maxCells uint, cpageSizes[i] =3D C.uint(pageSizes[i]) } =20 + var err C.virError ret :=3D C.virNodeGetFreePagesWrapper(c.ptr, C.uint(len(pageSizes)), (*C.= uint)(unsafe.Pointer(&cpageSizes)), C.int(startCell), - C.uint(maxCells), (*C.ulonglong)(unsafe.Pointer(&ccounts)), C.uint(flags= )) + C.uint(maxCells), (*C.ulonglong)(unsafe.Pointer(&ccounts)), C.uint(flags= ), &err) if ret =3D=3D -1 { - return []uint64{}, GetLastError() + return []uint64{}, makeError(&err) } =20 counts :=3D make([]uint64, ret) @@ -1804,22 +1899,23 @@ func (c *Connect) GetMemoryParameters(flags uint32)= (*NodeMemoryParameters, erro =20 var nparams C.int =20 - ret :=3D C.virNodeGetMemoryParameters(c.ptr, nil, &nparams, C.uint(0)) + var err C.virError + ret :=3D C.virNodeGetMemoryParametersWrapper(c.ptr, nil, &nparams, C.uint= (0), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virNodeGetMemoryParameters(c.ptr, (*C.virTypedParameter)(unsafe= .Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virNodeGetMemoryParametersWrapper(c.ptr, (*C.virTypedParameter)= (unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -1840,15 +1936,16 @@ type NodeMemoryStats struct { func (c *Connect) GetMemoryStats(cellNum int, flags uint32) (*NodeMemorySt= ats, error) { var nparams C.int =20 - ret :=3D C.virNodeGetMemoryStats(c.ptr, C.int(cellNum), nil, &nparams, 0) + var err C.virError + ret :=3D C.virNodeGetMemoryStatsWrapper(c.ptr, C.int(cellNum), nil, &npar= ams, 0, &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 params :=3D make([]C.virNodeMemoryStats, nparams) - ret =3D C.virNodeGetMemoryStats(c.ptr, C.int(cellNum), (*C.virNodeMemoryS= tats)(unsafe.Pointer(¶ms[0])), &nparams, C.uint(flags)) + ret =3D C.virNodeGetMemoryStatsWrapper(c.ptr, C.int(cellNum), (*C.virNode= MemoryStats)(unsafe.Pointer(¶ms[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 stats :=3D &NodeMemoryStats{} @@ -1882,9 +1979,10 @@ type NodeSecurityModel struct { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeGetS= ecurityModel func (c *Connect) GetSecurityModel() (*NodeSecurityModel, error) { var cmodel C.virSecurityModel - ret :=3D C.virNodeGetSecurityModel(c.ptr, &cmodel) + var err C.virError + ret :=3D C.virNodeGetSecurityModelWrapper(c.ptr, &cmodel, &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &NodeSecurityModel{ @@ -1899,34 +1997,36 @@ func (c *Connect) SetMemoryParameters(params *NodeM= emoryParameters, flags uint32 =20 var nparams C.int =20 - ret :=3D C.virNodeGetMemoryParameters(c.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virNodeGetMemoryParametersWrapper(c.ptr, nil, &nparams, 0, &er= r) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virNodeGetMemoryParameters(c.ptr, (*C.virTypedParameter)(unsafe= .Pointer(&cparams[0])), &nparams, 0) + ret =3D C.virNodeGetMemoryParametersWrapper(c.ptr, (*C.virTypedParameter)= (unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virNodeSetMemoryParameters(c.ptr, (*C.virTypedParameter)(unsafe= .Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virNodeSetMemoryParametersWrapper(c.ptr, (*C.virTypedParameter)= (unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeSusp= endForDuration func (c *Connect) SuspendForDuration(target NodeSuspendTarget, duration ui= nt64, flags uint32) error { - ret :=3D C.virNodeSuspendForDuration(c.ptr, C.uint(target), C.ulonglong(d= uration), C.uint(flags)) + var err C.virError + ret :=3D C.virNodeSuspendForDurationWrapper(c.ptr, C.uint(target), C.ulon= glong(duration), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1938,10 +2038,11 @@ func (c *Connect) DomainSaveImageDefineXML(file str= ing, xml string, flags Domain cxml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cxml)) =20 - ret :=3D C.virDomainSaveImageDefineXML(c.ptr, cfile, cxml, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSaveImageDefineXMLWrapper(c.ptr, cfile, cxml, C.uint(= flags), &err) =20 if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -1952,10 +2053,11 @@ func (c *Connect) DomainSaveImageGetXMLDesc(file st= ring, flags DomainXMLFlags) ( cfile :=3D C.CString(file) defer C.free(unsafe.Pointer(cfile)) =20 - ret :=3D C.virDomainSaveImageGetXMLDesc(c.ptr, cfile, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSaveImageGetXMLDescWrapper(c.ptr, cfile, C.uint(flags= ), &err) =20 if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -1971,9 +2073,10 @@ func (c *Connect) BaselineCPU(xmlCPUs []string, flag= s ConnectBaselineCPUFlags) ( defer C.free(unsafe.Pointer(cxmlCPUs[i])) } =20 - ret :=3D C.virConnectBaselineCPU(c.ptr, &cxmlCPUs[0], C.uint(len(xmlCPUs)= ), C.uint(flags)) + var err C.virError + ret :=3D C.virConnectBaselineCPUWrapper(c.ptr, &cxmlCPUs[0], C.uint(len(x= mlCPUs)), C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2010,10 +2113,11 @@ func (c *Connect) BaselineHypervisorCPU(emulator st= ring, arch string, machine st defer C.free(unsafe.Pointer(cxmlCPUs[i])) } =20 + var err C.virError ret :=3D C.virConnectBaselineHypervisorCPUWrapper(c.ptr, cemulator, carch= , cmachine, cvirttype, - &cxmlCPUs[0], C.uint(len(xmlCPUs)), C.uint(flags)) + &cxmlCPUs[0], C.uint(len(xmlCPUs)), C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2026,9 +2130,10 @@ func (c *Connect) CompareCPU(xmlDesc string, flags C= onnectCompareCPUFlags) (CPUC cxmlDesc :=3D C.CString(xmlDesc) defer C.free(unsafe.Pointer(cxmlDesc)) =20 - ret :=3D C.virConnectCompareCPU(c.ptr, cxmlDesc, C.uint(flags)) + var err C.virError + ret :=3D C.virConnectCompareCPUWrapper(c.ptr, cxmlDesc, C.uint(flags), &e= rr) if ret =3D=3D C.VIR_CPU_COMPARE_ERROR { - return CPU_COMPARE_ERROR, GetLastError() + return CPU_COMPARE_ERROR, makeError(&err) } =20 return CPUCompareResult(ret), nil @@ -2061,9 +2166,10 @@ func (c *Connect) CompareHypervisorCPU(emulator stri= ng, arch string, machine str cxmlDesc :=3D C.CString(xmlDesc) defer C.free(unsafe.Pointer(cxmlDesc)) =20 - ret :=3D C.virConnectCompareHypervisorCPUWrapper(c.ptr, cemulator, carch,= cmachine, cvirttype, cxmlDesc, C.uint(flags)) + var err C.virError + ret :=3D C.virConnectCompareHypervisorCPUWrapper(c.ptr, cemulator, carch,= cmachine, cvirttype, cxmlDesc, C.uint(flags), &err) if ret =3D=3D C.VIR_CPU_COMPARE_ERROR { - return CPU_COMPARE_ERROR, GetLastError() + return CPU_COMPARE_ERROR, makeError(&err) } =20 return CPUCompareResult(ret), nil @@ -2076,9 +2182,10 @@ func (c *Connect) DomainXMLFromNative(nativeFormat s= tring, nativeConfig string, cnativeConfig :=3D C.CString(nativeConfig) defer C.free(unsafe.Pointer(cnativeConfig)) =20 - ret :=3D C.virConnectDomainXMLFromNative(c.ptr, cnativeFormat, cnativeCon= fig, C.uint(flags)) + var err C.virError + ret :=3D C.virConnectDomainXMLFromNativeWrapper(c.ptr, cnativeFormat, cna= tiveConfig, C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2093,9 +2200,10 @@ func (c *Connect) DomainXMLToNative(nativeFormat str= ing, domainXml string, flags cdomainXml :=3D C.CString(domainXml) defer C.free(unsafe.Pointer(cdomainXml)) =20 - ret :=3D C.virConnectDomainXMLToNative(c.ptr, cnativeFormat, cdomainXml, = C.uint(flags)) + var err C.virError + ret :=3D C.virConnectDomainXMLToNativeWrapper(c.ptr, cnativeFormat, cdoma= inXml, C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2109,9 +2217,10 @@ func (c *Connect) GetCPUModelNames(arch string, flag= s uint32) ([]string, error) defer C.free(unsafe.Pointer(carch)) =20 var cmodels **C.char - ret :=3D C.virConnectGetCPUModelNames(c.ptr, carch, &cmodels, C.uint(flag= s)) + var err C.virError + ret :=3D C.virConnectGetCPUModelNamesWrapper(c.ptr, carch, &cmodels, C.ui= nt(flags), &err) if ret =3D=3D -1 { - return []string{}, GetLastError() + return []string{}, makeError(&err) } =20 models :=3D make([]string, int(ret)) @@ -2152,9 +2261,10 @@ func (c *Connect) GetDomainCapabilities(emulatorbin = string, arch string, machine defer C.free(unsafe.Pointer(cvirttype)) } =20 - ret :=3D C.virConnectGetDomainCapabilitiesWrapper(c.ptr, cemulatorbin, ca= rch, cmachine, cvirttype, C.uint(flags)) + var err C.virError + ret :=3D C.virConnectGetDomainCapabilitiesWrapper(c.ptr, cemulatorbin, ca= rch, cmachine, cvirttype, C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2165,9 +2275,10 @@ func (c *Connect) GetDomainCapabilities(emulatorbin = string, arch string, machine // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectG= etVersion func (c *Connect) GetVersion() (uint32, error) { var hvVer C.ulong - ret :=3D C.virConnectGetVersion(c.ptr, &hvVer) + var err C.virError + ret :=3D C.virConnectGetVersionWrapper(c.ptr, &hvVer, &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return uint32(hvVer), nil @@ -2182,9 +2293,10 @@ func (c *Connect) FindStoragePoolSources(pooltype st= ring, srcSpec string, flags csrcSpec :=3D C.CString(srcSpec) defer C.free(unsafe.Pointer(csrcSpec)) } - ret :=3D C.virConnectFindStoragePoolSources(c.ptr, cpooltype, csrcSpec, C= .uint(flags)) + var err C.virError + ret :=3D C.virConnectFindStoragePoolSourcesWrapper(c.ptr, cpooltype, csrc= Spec, C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2196,8 +2308,9 @@ func (c *Connect) FindStoragePoolSources(pooltype str= ing, srcSpec string, flags func (c *Connect) DomainRestore(srcFile string) error { cPath :=3D C.CString(srcFile) defer C.free(unsafe.Pointer(cPath)) - if result :=3D C.virDomainRestore(c.ptr, cPath); result =3D=3D -1 { - return GetLastError() + var err C.virError + if result :=3D C.virDomainRestoreWrapper(c.ptr, cPath, &err); result =3D= =3D -1 { + return makeError(&err) } return nil } @@ -2211,17 +2324,19 @@ func (c *Connect) DomainRestoreFlags(srcFile, xmlCo= nf string, flags DomainSaveRe cXmlConf =3D C.CString(xmlConf) defer C.free(unsafe.Pointer(cXmlConf)) } - if result :=3D C.virDomainRestoreFlags(c.ptr, cPath, cXmlConf, C.uint(fla= gs)); result =3D=3D -1 { - return GetLastError() + var err C.virError + if result :=3D C.virDomainRestoreFlagsWrapper(c.ptr, cPath, cXmlConf, C.u= int(flags), &err); result =3D=3D -1 { + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= New func (c *Connect) NewStream(flags StreamFlags) (*Stream, error) { - virStream :=3D C.virStreamNew(c.ptr, C.uint(flags)) + var err C.virError + virStream :=3D C.virStreamNewWrapper(c.ptr, C.uint(flags), &err) if virStream =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &Stream{ @@ -2665,18 +2780,19 @@ func (c *Connect) GetAllDomainStats(doms []*Domain,= statsTypes DomainStatsTypes, } var ret C.int var cstats *C.virDomainStatsRecordPtr + var err C.virError if len(doms) > 0 { cdoms :=3D make([]C.virDomainPtr, len(doms)+1) for i :=3D 0; i < len(doms); i++ { cdoms[i] =3D doms[i].ptr } =20 - ret =3D C.virDomainListGetStatsWrapper(&cdoms[0], C.uint(statsTypes), &c= stats, C.uint(flags)) + ret =3D C.virDomainListGetStatsWrapper(&cdoms[0], C.uint(statsTypes), &c= stats, C.uint(flags), &err) } else { - ret =3D C.virConnectGetAllDomainStatsWrapper(c.ptr, C.uint(statsTypes), = &cstats, C.uint(flags)) + ret =3D C.virConnectGetAllDomainStatsWrapper(c.ptr, C.uint(statsTypes), = &cstats, C.uint(flags), &err) } if ret =3D=3D -1 { - return []DomainStats{}, GetLastError() + return []DomainStats{}, makeError(&err) } =20 defer C.virDomainStatsRecordListFreeWrapper(cstats) @@ -2692,9 +2808,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, state :=3D &DomainStatsState{} stateInfo :=3D getDomainStatsStateFieldInfo(state) =20 - count, err :=3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npa= rams), stateInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr :=3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.np= arams), stateInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count !=3D 0 { domstats.State =3D state @@ -2703,9 +2819,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, cpu :=3D &DomainStatsCPU{} cpuInfo :=3D getDomainStatsCPUFieldInfo(cpu) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npar= ams), cpuInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npa= rams), cpuInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count !=3D 0 { domstats.Cpu =3D cpu @@ -2714,9 +2830,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, balloon :=3D &DomainStatsBalloon{} balloonInfo :=3D getDomainStatsBalloonFieldInfo(balloon) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npar= ams), balloonInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npa= rams), balloonInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count !=3D 0 { domstats.Balloon =3D balloon @@ -2725,9 +2841,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, perf :=3D &DomainStatsPerf{} perfInfo :=3D getDomainStatsPerfFieldInfo(perf) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npar= ams), perfInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npa= rams), perfInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count !=3D 0 { domstats.Perf =3D perf @@ -2736,9 +2852,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, lengths :=3D domainStatsLengths{} lengthsInfo :=3D getDomainStatsLengthsFieldInfo(&lengths) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npar= ams), lengthsInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.npa= rams), lengthsInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } =20 if !lengths.VcpuMaximumSet && lengths.VcpuCurrentSet { @@ -2752,9 +2868,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, vcpu :=3D DomainStatsVcpu{} vcpuInfo :=3D getDomainStatsVcpuFieldInfo(j, &vcpu) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.np= arams), vcpuInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.n= params), vcpuInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count =3D=3D 0 { vcpu.StateSet =3D true @@ -2770,9 +2886,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, block :=3D DomainStatsBlock{} blockInfo :=3D getDomainStatsBlockFieldInfo(j, &block) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.np= arams), blockInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.n= params), blockInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count !=3D 0 { domstats.Block[j] =3D block @@ -2786,9 +2902,9 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, s= tatsTypes DomainStatsTypes, net :=3D DomainStatsNet{} netInfo :=3D getDomainStatsNetFieldInfo(j, &net) =20 - count, err =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.np= arams), netInfo) - if err !=3D nil { - return []DomainStats{}, err + count, gerr =3D typedParamsUnpackLen(cdomstats.params, int(cdomstats.n= params), netInfo) + if gerr !=3D nil { + return []DomainStats{}, gerr } if count !=3D 0 { domstats.Net[j] =3D net @@ -2846,16 +2962,17 @@ func (c *Connect) GetSEVInfo(flags uint32) (*NodeSE= VParameters, error) { var cparams *C.virTypedParameter var nparams C.int =20 - ret :=3D C.virNodeGetSEVInfoWrapper(c.ptr, (*C.virTypedParameterPtr)(unsa= fe.Pointer(&cparams)), &nparams, C.uint(flags)) + var err C.virError + ret :=3D C.virNodeGetSEVInfoWrapper(c.ptr, (*C.virTypedParameterPtr)(unsa= fe.Pointer(&cparams)), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsFree(cparams, nparams) =20 - _, err :=3D typedParamsUnpackLen(cparams, int(nparams), info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpackLen(cparams, int(nparams), info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -2868,9 +2985,10 @@ func (c *Connect) NWFilterBindingCreateXML(xmlConfig= string, flags uint32) (*NWF } cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) - ptr :=3D C.virNWFilterBindingCreateXMLWrapper(c.ptr, cXml, C.uint(flags)) + var err C.virError + ptr :=3D C.virNWFilterBindingCreateXMLWrapper(c.ptr, cXml, C.uint(flags),= &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &NWFilterBinding{ptr: ptr}, nil } diff --git a/connect_wrapper.go b/connect_wrapper.go index d714fb9..17800a2 100644 --- a/connect_wrapper.go +++ b/connect_wrapper.go @@ -29,6 +29,7 @@ package libvirt /* #cgo pkg-config: libvirt #include +#include #include "connect_wrapper.h" #include "callbacks_wrapper.h" =20 @@ -38,14 +39,6 @@ void closeCallbackHelper(virConnectPtr conn, int reason,= void *opaque) closeCallback(conn, reason, (long)opaque); } =20 -int virConnectRegisterCloseCallbackHelper(virConnectPtr c, virConnectClose= Func cb, long goCallbackId) -{ - void *id =3D (void*)goCallbackId; - return virConnectRegisterCloseCallback(c, cb, id, freeGoCallbackHelper= ); -} - -#include - extern int connectAuthCallback(virConnectCredentialPtr, unsigned int, int); int connectAuthCallbackHelper(virConnectCredentialPtr cred, unsigned int n= cred, void *cbdata) { @@ -54,188 +47,1720 @@ int connectAuthCallbackHelper(virConnectCredentialPt= r cred, unsigned int ncred, return connectAuthCallback(cred, ncred, *callbackID); } =20 -virConnectPtr virConnectOpenAuthWrapper(const char *name, int *credtype, u= int ncredtype, int callbackID, unsigned int flags) -{ - virConnectAuth auth =3D { - .credtype =3D credtype, - .ncredtype =3D ncredtype, - .cb =3D connectAuthCallbackHelper, - .cbdata =3D &callbackID, - }; =20 - return virConnectOpenAuth(name, &auth, flags); +char * +virConnectBaselineCPUWrapper(virConnectPtr conn, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virConnectBaselineCPU(conn, xmlCPUs, ncpus, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; } =20 =20 -int virNodeGetFreePagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pages, - int startcell, - unsigned int cellcount, - unsigned long long *counts, - unsigned int flags) +char * +virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002006 +#if LIBVIR_VERSION_NUMBER < 4004000 assert(0); // Caller should have checked version #else - return virNodeGetFreePages(conn, npages, pages, startcell, cellcount, = counts, flags); + char * ret =3D virConnectBaselineHypervisorCPU(conn, emulator, arch, m= achine, virttype, xmlCPUs, ncpus, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 -char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, - const char *emulatorbin, - const char *arch, - const char *machine, - const char *virttype, - unsigned int flags) + +int +virConnectCloseWrapper(virConnectPtr conn, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002007 + int ret =3D virConnectClose(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectCompareCPUWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectCompareCPU(conn, xmlDesc, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char *xmlCPU, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 4004000 assert(0); // Caller should have checked version #else - return virConnectGetDomainCapabilities(conn, emulatorbin, arch, machin= e, virttype, flags); + int ret =3D virConnectCompareHypervisorCPU(conn, emulator, arch, machi= ne, virttype, xmlCPU, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virConnectGetAllDomainStatsWrapper(virConnectPtr conn, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags) + +char * +virConnectDomainXMLFromNativeWrapper(virConnectPtr conn, + const char *nativeFormat, + const char *nativeConfig, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virConnectDomainXMLFromNative(conn, nativeFormat, nativ= eConfig, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virConnectDomainXMLToNativeWrapper(virConnectPtr conn, + const char *nativeFormat, + const char *domainXml, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virConnectDomainXMLToNative(conn, nativeFormat, domainX= ml, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virConnectFindStoragePoolSourcesWrapper(virConnectPtr conn, + const char *type, + const char *srcSpec, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virConnectFindStoragePoolSources(conn, type, srcSpec, f= lags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectGetAllDomainStatsWrapper(virConnectPtr conn, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002008 assert(0); // Caller should have checked version #else - return virConnectGetAllDomainStats(conn, stats, retStats, flags); + int ret =3D virConnectGetAllDomainStats(conn, stats, retStats, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virDomainListGetStatsWrapper(virDomainPtr *doms, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags) + +int +virConnectGetCPUModelNamesWrapper(virConnectPtr conn, + const char *arch, + char ** *models, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002008 + int ret =3D virConnectGetCPUModelNames(conn, arch, models, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virConnectGetCapabilitiesWrapper(virConnectPtr conn, + virErrorPtr err) +{ + char * ret =3D virConnectGetCapabilities(conn); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, + const char *emulatorbin, + const char *arch, + const char *machine, + const char *virttype, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002007 assert(0); // Caller should have checked version #else - return virDomainListGetStats(doms, stats, retStats, flags); + char * ret =3D virConnectGetDomainCapabilities(conn, emulatorbin, arch= , machine, virttype, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 -void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats) + +char * +virConnectGetHostnameWrapper(virConnectPtr conn, + virErrorPtr err) { + char * ret =3D virConnectGetHostname(conn); + if (!ret) { + virCopyLastError(err); + } + return ret; } =20 -int virNodeAllocPagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pageSizes, - unsigned long long *pageCounts, - int startCell, - unsigned int cellCount, - unsigned int flags) + +int +virConnectGetLibVersionWrapper(virConnectPtr conn, + unsigned long *libVer, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002009 + int ret =3D virConnectGetLibVersion(conn, libVer); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectGetMaxVcpusWrapper(virConnectPtr conn, + const char *type, + virErrorPtr err) +{ + int ret =3D virConnectGetMaxVcpus(conn, type); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virConnectGetSysinfoWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virConnectGetSysinfo(conn, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virConnectGetTypeWrapper(virConnectPtr conn, + virErrorPtr err) +{ + const char * ret =3D virConnectGetType(conn); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +char * +virConnectGetURIWrapper(virConnectPtr conn, + virErrorPtr err) +{ + char * ret =3D virConnectGetURI(conn); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectGetVersionWrapper(virConnectPtr conn, + unsigned long *hvVer, + virErrorPtr err) +{ + int ret =3D virConnectGetVersion(conn, hvVer); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectIsAliveWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectIsAlive(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectIsEncryptedWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectIsEncrypted(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectIsSecureWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectIsSecure(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllDomainsWrapper(virConnectPtr conn, + virDomainPtr **domains, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllDomains(conn, domains, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllInterfacesWrapper(virConnectPtr conn, + virInterfacePtr **ifaces, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllInterfaces(conn, ifaces, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, + virNWFilterBindingPtr **bindings, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNodeAllocPages(conn, npages, pageSizes, pageCounts, startCel= l, cellCount, flags); + int ret =3D virConnectListAllNWFilterBindings(conn, bindings, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -virDomainPtr virDomainDefineXMLFlagsWrapper(virConnectPtr conn, - const char *xml, - unsigned int flags) +int +virConnectListAllNWFiltersWrapper(virConnectPtr conn, + virNWFilterPtr **filters, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllNWFilters(conn, filters, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllNetworksWrapper(virConnectPtr conn, + virNetworkPtr **nets, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllNetworks(conn, nets, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllNodeDevicesWrapper(virConnectPtr conn, + virNodeDevicePtr **devices, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllNodeDevices(conn, devices, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllSecretsWrapper(virConnectPtr conn, + virSecretPtr **secrets, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllSecrets(conn, secrets, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListAllStoragePoolsWrapper(virConnectPtr conn, + virStoragePoolPtr **pools, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virConnectListAllStoragePools(conn, pools, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListDefinedDomainsWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListDefinedDomains(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListDefinedInterfacesWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListDefinedInterfaces(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListDefinedNetworksWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListDefinedNetworks(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListDefinedStoragePoolsWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListDefinedStoragePools(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListDomainsWrapper(virConnectPtr conn, + int *ids, + int maxids, + virErrorPtr err) +{ + int ret =3D virConnectListDomains(conn, ids, maxids); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListInterfacesWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListInterfaces(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListNWFiltersWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListNWFilters(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListNetworksWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListNetworks(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListSecretsWrapper(virConnectPtr conn, + char **uuids, + int maxuuids, + virErrorPtr err) +{ + int ret =3D virConnectListSecrets(conn, uuids, maxuuids); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectListStoragePoolsWrapper(virConnectPtr conn, + char ** const names, + int maxnames, + virErrorPtr err) +{ + int ret =3D virConnectListStoragePools(conn, names, maxnames); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfDefinedDomainsWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfDefinedDomains(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfDefinedInterfacesWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfDefinedInterfaces(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfDefinedNetworksWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfDefinedNetworks(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfDefinedStoragePoolsWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfDefinedStoragePools(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfDomainsWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfDomains(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfInterfacesWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfInterfaces(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfNWFiltersWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfNWFilters(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfNetworksWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfNetworks(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfSecretsWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfSecrets(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectNumOfStoragePoolsWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectNumOfStoragePools(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virConnectOpenWrapper(const char *name, + virErrorPtr err) +{ + virConnectPtr ret =3D virConnectOpen(name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virConnectOpenAuthWrapper(const char *name, + int *credtype, + uint ncredtype, + int callbackID, + unsigned int flags, + virErrorPtr err) +{ + virConnectAuth auth =3D { + .credtype =3D credtype, + .ncredtype =3D ncredtype, + .cb =3D connectAuthCallbackHelper, + .cbdata =3D &callbackID, + }; + + virConnectPtr ret =3D virConnectOpenAuth(name, &auth, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virConnectOpenReadOnlyWrapper(const char *name, + virErrorPtr err) +{ + virConnectPtr ret =3D virConnectOpenReadOnly(name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectRefWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectRef(conn); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectRegisterCloseCallbackWrapper(virConnectPtr conn, + long goCallbackId, + virErrorPtr err) +{ + void *id =3D (void*)goCallbackId; + int ret =3D virConnectRegisterCloseCallback(conn, closeCallbackHelper,= id, freeGoCallbackHelper); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectSetKeepAliveWrapper(virConnectPtr conn, + int interval, + unsigned int count, + virErrorPtr err) +{ + int ret =3D virConnectSetKeepAlive(conn, interval, count); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectUnregisterCloseCallbackWrapper(virConnectPtr conn, + virErrorPtr err) +{ + int ret =3D virConnectUnregisterCloseCallback(conn, closeCallbackHelpe= r); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainCreateLinuxWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainCreateLinux(conn, xmlDesc, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainCreateXML(conn, xmlDesc, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainCreateXMLWithFilesWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int nfiles, + int *files, + unsigned int flags, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainCreateXMLWithFiles(conn, xmlDesc, nfiles= , files, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainDefineXMLWrapper(virConnectPtr conn, + const char *xml, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainDefineXML(conn, xml); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainDefineXMLFlagsWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002012 assert(0); // Caller should have checked version #else - return virDomainDefineXMLFlags(conn, xml, flags); + virDomainPtr ret =3D virDomainDefineXMLFlags(conn, xml, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 -virStoragePoolPtr virStoragePoolLookupByTargetPathWrapper(virConnectPtr co= nn, - const char *path) + +int +virDomainListGetStatsWrapper(virDomainPtr *doms, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4001000 +#if LIBVIR_VERSION_NUMBER < 1002008 assert(0); // Caller should have checked version #else - return virStoragePoolLookupByTargetPath(conn, path); + int ret =3D virDomainListGetStats(doms, stats, retStats, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -char *virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char **xmlCPUs, - unsigned int ncpus, - unsigned int flags) + +virDomainPtr +virDomainLookupByIDWrapper(virConnectPtr conn, + int id, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4004000 + virDomainPtr ret =3D virDomainLookupByID(conn, id); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainLookupByName(conn, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainLookupByUUID(conn, uuid); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainLookupByUUIDString(conn, uuidstr); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainRestoreWrapper(virConnectPtr conn, + const char *from, + virErrorPtr err) +{ + int ret =3D virDomainRestore(conn, from); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainRestoreFlagsWrapper(virConnectPtr conn, + const char *from, + const char *dxml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainRestoreFlags(conn, from, dxml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSaveImageDefineXMLWrapper(virConnectPtr conn, + const char *file, + const char *dxml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSaveImageDefineXML(conn, file, dxml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainSaveImageGetXMLDescWrapper(virConnectPtr conn, + const char *file, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainSaveImageGetXMLDesc(conn, file, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +void +virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats) +{ +#if LIBVIR_VERSION_NUMBER < 1002008 assert(0); // Caller should have checked version #else - return virConnectBaselineHypervisorCPU(conn, emulator, arch, machine, = virttype, xmlCPUs, ncpus, flags); + virDomainStatsRecordListFree(stats); #endif } =20 -int virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char *xmlCPU, - unsigned int flags) + +int +virGetVersionWrapper(unsigned long *libVer, + const char *type, + unsigned long *typeVer, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4004000 + int ret =3D virGetVersion(libVer, type, typeVer); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceChangeBeginWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virInterfaceChangeBegin(conn, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceChangeCommitWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virInterfaceChangeCommit(conn, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virInterfaceChangeRollbackWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virInterfaceChangeRollback(conn, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virInterfacePtr +virInterfaceDefineXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + virInterfacePtr ret =3D virInterfaceDefineXML(conn, xml, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virInterfacePtr +virInterfaceLookupByMACStringWrapper(virConnectPtr conn, + const char *macstr, + virErrorPtr err) +{ + virInterfacePtr ret =3D virInterfaceLookupByMACString(conn, macstr); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virInterfacePtr +virInterfaceLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err) +{ + virInterfacePtr ret =3D virInterfaceLookupByName(conn, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNWFilterBindingPtr +virNWFilterBindingCreateXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virConnectCompareHypervisorCPU(conn, emulator, arch, machine, v= irttype, xmlCPU, flags); + virNWFilterBindingPtr ret =3D virNWFilterBindingCreateXML(conn, xml, f= lags); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virNodeGetSEVInfoWrapper(virConnectPtr conn, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags) + +virNWFilterBindingPtr +virNWFilterBindingLookupByPortDevWrapper(virConnectPtr conn, + const char *portdev, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNodeGetSEVInfo(conn, params, nparams, flags); + virNWFilterBindingPtr ret =3D virNWFilterBindingLookupByPortDev(conn, = portdev); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, - virNWFilterBindingPtr **bindi= ngs, - unsigned int flags) + +virNWFilterPtr +virNWFilterDefineXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4005000 + virNWFilterPtr ret =3D virNWFilterDefineXML(conn, xmlDesc); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNWFilterPtr +virNWFilterLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err) +{ + virNWFilterPtr ret =3D virNWFilterLookupByName(conn, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNWFilterPtr +virNWFilterLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err) +{ + virNWFilterPtr ret =3D virNWFilterLookupByUUID(conn, uuid); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNWFilterPtr +virNWFilterLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err) +{ + virNWFilterPtr ret =3D virNWFilterLookupByUUIDString(conn, uuidstr); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNetworkPtr +virNetworkCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + virErrorPtr err) +{ + virNetworkPtr ret =3D virNetworkCreateXML(conn, xmlDesc); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNetworkPtr +virNetworkDefineXMLWrapper(virConnectPtr conn, + const char *xml, + virErrorPtr err) +{ + virNetworkPtr ret =3D virNetworkDefineXML(conn, xml); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNetworkPtr +virNetworkLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err) +{ + virNetworkPtr ret =3D virNetworkLookupByName(conn, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNetworkPtr +virNetworkLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err) +{ + virNetworkPtr ret =3D virNetworkLookupByUUID(conn, uuid); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNetworkPtr +virNetworkLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err) +{ + virNetworkPtr ret =3D virNetworkLookupByUUIDString(conn, uuidstr); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeAllocPagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pageSizes, + unsigned long long *pageCounts, + int startCell, + unsigned int cellCount, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002009 assert(0); // Caller should have checked version #else - return virConnectListAllNWFilterBindings(conn, bindings, flags); + int ret =3D virNodeAllocPages(conn, npages, pageSizes, pageCounts, sta= rtCell, cellCount, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -virNWFilterBindingPtr virNWFilterBindingCreateXMLWrapper(virConnectPtr con= n, - const char *xml, - unsigned int flag= s) + +virNodeDevicePtr +virNodeDeviceCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4005000 + virNodeDevicePtr ret =3D virNodeDeviceCreateXML(conn, xmlDesc, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNodeDevicePtr +virNodeDeviceLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err) +{ + virNodeDevicePtr ret =3D virNodeDeviceLookupByName(conn, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virNodeDevicePtr +virNodeDeviceLookupSCSIHostByWWNWrapper(virConnectPtr conn, + const char *wwnn, + const char *wwpn, + unsigned int flags, + virErrorPtr err) +{ + virNodeDevicePtr ret =3D virNodeDeviceLookupSCSIHostByWWN(conn, wwnn, = wwpn, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetCPUMapWrapper(virConnectPtr conn, + unsigned char **cpumap, + unsigned int *online, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeGetCPUMap(conn, cpumap, online, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetCPUStatsWrapper(virConnectPtr conn, + int cpuNum, + virNodeCPUStatsPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeGetCPUStats(conn, cpuNum, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetCellsFreeMemoryWrapper(virConnectPtr conn, + unsigned long long *freeMems, + int startCell, + int maxCells, + virErrorPtr err) +{ + int ret =3D virNodeGetCellsFreeMemory(conn, freeMems, startCell, maxCe= lls); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +unsigned long long +virNodeGetFreeMemoryWrapper(virConnectPtr conn, + virErrorPtr err) +{ + unsigned long long ret =3D virNodeGetFreeMemory(conn); + if (ret =3D=3D 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetFreePagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pages, + int startCell, + unsigned int cellCount, + unsigned long long *counts, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002006 assert(0); // Caller should have checked version #else - return virNWFilterBindingCreateXML(conn, xml, flags); + int ret =3D virNodeGetFreePages(conn, npages, pages, startCell, cellCo= unt, counts, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -virNWFilterBindingPtr virNWFilterBindingLookupByPortDevWrapper(virConnectP= tr conn, - const char = *portdev) + +int +virNodeGetInfoWrapper(virConnectPtr conn, + virNodeInfoPtr info, + virErrorPtr err) +{ + int ret =3D virNodeGetInfo(conn, info); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetMemoryParametersWrapper(virConnectPtr conn, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeGetMemoryParameters(conn, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetMemoryStatsWrapper(virConnectPtr conn, + int cellNum, + virNodeMemoryStatsPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeGetMemoryStats(conn, cellNum, params, nparams, flag= s); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeGetSEVInfoWrapper(virConnectPtr conn, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 4005000 assert(0); // Caller should have checked version #else - return virNWFilterBindingLookupByPortDev(conn, portdev); + int ret =3D virNodeGetSEVInfo(conn, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virNodeGetSecurityModelWrapper(virConnectPtr conn, + virSecurityModelPtr secmodel, + virErrorPtr err) +{ + int ret =3D virNodeGetSecurityModel(conn, secmodel); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeListDevicesWrapper(virConnectPtr conn, + const char *cap, + char ** const names, + int maxnames, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeListDevices(conn, cap, names, maxnames, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeNumOfDevicesWrapper(virConnectPtr conn, + const char *cap, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeNumOfDevices(conn, cap, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeSetMemoryParametersWrapper(virConnectPtr conn, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeSetMemoryParameters(conn, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virNodeSuspendForDurationWrapper(virConnectPtr conn, + unsigned int target, + unsigned long long duration, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virNodeSuspendForDuration(conn, target, duration, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virSecretPtr +virSecretDefineXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + virSecretPtr ret =3D virSecretDefineXML(conn, xml, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virSecretPtr +virSecretLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err) +{ + virSecretPtr ret =3D virSecretLookupByUUID(conn, uuid); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virSecretPtr +virSecretLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err) +{ + virSecretPtr ret =3D virSecretLookupByUUIDString(conn, uuidstr); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virSecretPtr +virSecretLookupByUsageWrapper(virConnectPtr conn, + int usageType, + const char *usageID, + virErrorPtr err) +{ + virSecretPtr ret =3D virSecretLookupByUsage(conn, usageType, usageID); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStoragePoolPtr +virStoragePoolCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) +{ + virStoragePoolPtr ret =3D virStoragePoolCreateXML(conn, xmlDesc, flags= ); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStoragePoolPtr +virStoragePoolDefineXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + virStoragePoolPtr ret =3D virStoragePoolDefineXML(conn, xml, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStoragePoolPtr +virStoragePoolLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err) +{ + virStoragePoolPtr ret =3D virStoragePoolLookupByName(conn, name); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStoragePoolPtr +virStoragePoolLookupByTargetPathWrapper(virConnectPtr conn, + const char *path, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 4001000 + assert(0); // Caller should have checked version +#else + virStoragePoolPtr ret =3D virStoragePoolLookupByTargetPath(conn, path); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 +virStoragePoolPtr +virStoragePoolLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err) +{ + virStoragePoolPtr ret =3D virStoragePoolLookupByUUID(conn, uuid); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStoragePoolPtr +virStoragePoolLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err) +{ + virStoragePoolPtr ret =3D virStoragePoolLookupByUUIDString(conn, uuids= tr); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStorageVolPtr +virStorageVolLookupByKeyWrapper(virConnectPtr conn, + const char *key, + virErrorPtr err) +{ + virStorageVolPtr ret =3D virStorageVolLookupByKey(conn, key); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStorageVolPtr +virStorageVolLookupByPathWrapper(virConnectPtr conn, + const char *path, + virErrorPtr err) +{ + virStorageVolPtr ret =3D virStorageVolLookupByPath(conn, path); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virStreamPtr +virStreamNewWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err) +{ + virStreamPtr ret =3D virStreamNew(conn, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +//////////////////////////////////////////////// */ import "C" diff --git a/connect_wrapper.h b/connect_wrapper.h index 726d29c..e91811f 100644 --- a/connect_wrapper.h +++ b/connect_wrapper.h @@ -41,21 +41,82 @@ virConnectRegisterCloseCallbackHelper(virConnectPtr c, virConnectCloseFunc cb, long goCallbackId); =20 -virConnectPtr -virConnectOpenAuthWrapper(const char *name, - int *credtype, - uint ncredtype, - int callbackID, - unsigned int flags); +char * +virConnectBaselineCPUWrapper(virConnectPtr conn, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags, + virErrorPtr err); + +char * +virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char **xmlCPUs, + unsigned int ncpus, + unsigned int flags, + virErrorPtr err); =20 int -virNodeGetFreePagesWrapper(virConnectPtr conn, - unsigned int npages, - unsigned int *pages, - int startcell, - unsigned int cellcount, - unsigned long long *counts, - unsigned int flags); +virConnectCloseWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectCompareCPUWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); + +int +virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, + const char *emulator, + const char *arch, + const char *machine, + const char *virttype, + const char *xmlCPU, + unsigned int flags, + virErrorPtr err); + +char * +virConnectDomainXMLFromNativeWrapper(virConnectPtr conn, + const char *nativeFormat, + const char *nativeConfig, + unsigned int flags, + virErrorPtr err); + +char * +virConnectDomainXMLToNativeWrapper(virConnectPtr conn, + const char *nativeFormat, + const char *domainXml, + unsigned int flags, + virErrorPtr err); + +char * +virConnectFindStoragePoolSourcesWrapper(virConnectPtr conn, + const char *type, + const char *srcSpec, + unsigned int flags, + virErrorPtr err); + +int +virConnectGetAllDomainStatsWrapper(virConnectPtr conn, + unsigned int stats, + virDomainStatsRecordPtr **retStats, + unsigned int flags, + virErrorPtr err); + +int +virConnectGetCPUModelNamesWrapper(virConnectPtr conn, + const char *arch, + char ***models, + unsigned int flags, + virErrorPtr err); + +char * +virConnectGetCapabilitiesWrapper(virConnectPtr conn, + virErrorPtr err); =20 char * virConnectGetDomainCapabilitiesWrapper(virConnectPtr conn, @@ -63,24 +124,415 @@ virConnectGetDomainCapabilitiesWrapper(virConnectPtr = conn, const char *arch, const char *machine, const char *virttype, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +char * +virConnectGetHostnameWrapper(virConnectPtr conn, + virErrorPtr err); =20 int -virConnectGetAllDomainStatsWrapper(virConnectPtr conn, - unsigned int stats, - virDomainStatsRecordPtr **retStats, - unsigned int flags); +virConnectGetLibVersionWrapper(virConnectPtr conn, + unsigned long *libVer, + virErrorPtr err); =20 int +virConnectGetMaxVcpusWrapper(virConnectPtr conn, + const char *type, + virErrorPtr err); + +char * +virConnectGetSysinfoWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err); =20 +const char * +virConnectGetTypeWrapper(virConnectPtr conn, + virErrorPtr err); + +char * +virConnectGetURIWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectGetVersionWrapper(virConnectPtr conn, + unsigned long *hvVer, + virErrorPtr err); + +int +virConnectIsAliveWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectIsEncryptedWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectIsSecureWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectListAllDomainsWrapper(virConnectPtr conn, + virDomainPtr **domains, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllInterfacesWrapper(virConnectPtr conn, + virInterfacePtr **ifaces, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, + virNWFilterBindingPtr **bindings, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllNWFiltersWrapper(virConnectPtr conn, + virNWFilterPtr **filters, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllNetworksWrapper(virConnectPtr conn, + virNetworkPtr **nets, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllNodeDevicesWrapper(virConnectPtr conn, + virNodeDevicePtr **devices, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllSecretsWrapper(virConnectPtr conn, + virSecretPtr **secrets, + unsigned int flags, + virErrorPtr err); + +int +virConnectListAllStoragePoolsWrapper(virConnectPtr conn, + virStoragePoolPtr **pools, + unsigned int flags, + virErrorPtr err); + +int +virConnectListDefinedDomainsWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListDefinedInterfacesWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListDefinedNetworksWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListDefinedStoragePoolsWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListDomainsWrapper(virConnectPtr conn, + int *ids, + int maxids, + virErrorPtr err); + +int +virConnectListInterfacesWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListNWFiltersWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListNetworksWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectListSecretsWrapper(virConnectPtr conn, + char **uuids, + int maxuuids, + virErrorPtr err); + +int +virConnectListStoragePoolsWrapper(virConnectPtr conn, + char **const names, + int maxnames, + virErrorPtr err); + +int +virConnectNumOfDefinedDomainsWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfDefinedInterfacesWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfDefinedNetworksWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfDefinedStoragePoolsWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfDomainsWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfInterfacesWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfNWFiltersWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfNetworksWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfSecretsWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectNumOfStoragePoolsWrapper(virConnectPtr conn, + virErrorPtr err); + +virConnectPtr +virConnectOpenWrapper(const char *name, + virErrorPtr err); + +virConnectPtr +virConnectOpenAuthWrapper(const char *name, + int *credtype, + uint ncredtype, + int callbackID, + unsigned int flags, + virErrorPtr err); + +virConnectPtr +virConnectOpenReadOnlyWrapper(const char *name, + virErrorPtr err); + +int +virConnectRefWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virConnectRegisterCloseCallbackWrapper(virConnectPtr conn, + long goCallbackId, + virErrorPtr err); + +int +virConnectSetKeepAliveWrapper(virConnectPtr conn, + int interval, + unsigned int count, + virErrorPtr err); + +int +virConnectUnregisterCloseCallbackWrapper(virConnectPtr conn, + virErrorPtr err); + +virDomainPtr +virDomainCreateLinuxWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); + +virDomainPtr +virDomainCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); + +virDomainPtr +virDomainCreateXMLWithFilesWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int nfiles, + int *files, + unsigned int flags, + virErrorPtr err); + +virDomainPtr +virDomainDefineXMLWrapper(virConnectPtr conn, + const char *xml, + virErrorPtr err); + +virDomainPtr +virDomainDefineXMLFlagsWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err); + +int virDomainListGetStatsWrapper(virDomainPtr *doms, unsigned int stats, virDomainStatsRecordPtr **retStats, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +virDomainPtr +virDomainLookupByIDWrapper(virConnectPtr conn, + int id, + virErrorPtr err); + +virDomainPtr +virDomainLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err); + +virDomainPtr +virDomainLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err); + +virDomainPtr +virDomainLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err); + +int +virDomainRestoreWrapper(virConnectPtr conn, + const char *from, + virErrorPtr err); + +int +virDomainRestoreFlagsWrapper(virConnectPtr conn, + const char *from, + const char *dxml, + unsigned int flags, + virErrorPtr err); + +int +virDomainSaveImageDefineXMLWrapper(virConnectPtr conn, + const char *file, + const char *dxml, + unsigned int flags, + virErrorPtr err); + +char * +virDomainSaveImageGetXMLDescWrapper(virConnectPtr conn, + const char *file, + unsigned int flags, + virErrorPtr err); =20 void virDomainStatsRecordListFreeWrapper(virDomainStatsRecordPtr *stats); =20 +int +virGetVersionWrapper(unsigned long *libVer, + const char *type, + unsigned long *typeVer, + virErrorPtr err); + +int +virInterfaceChangeBeginWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err); + +int +virInterfaceChangeCommitWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err); + +int +virInterfaceChangeRollbackWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err); + +virInterfacePtr +virInterfaceDefineXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err); + +virInterfacePtr +virInterfaceLookupByMACStringWrapper(virConnectPtr conn, + const char *macstr, + virErrorPtr err); + +virInterfacePtr +virInterfaceLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err); + +virNWFilterBindingPtr +virNWFilterBindingCreateXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err); + +virNWFilterBindingPtr +virNWFilterBindingLookupByPortDevWrapper(virConnectPtr conn, + const char *portdev, + virErrorPtr err); + +virNWFilterPtr +virNWFilterDefineXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + virErrorPtr err); + +virNWFilterPtr +virNWFilterLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err); + +virNWFilterPtr +virNWFilterLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err); + +virNWFilterPtr +virNWFilterLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err); + +virNetworkPtr +virNetworkCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + virErrorPtr err); + +virNetworkPtr +virNetworkDefineXMLWrapper(virConnectPtr conn, + const char *xml, + virErrorPtr err); + +virNetworkPtr +virNetworkLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err); + +virNetworkPtr +virNetworkLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err); + +virNetworkPtr +virNetworkLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err); + int virNodeAllocPagesWrapper(virConnectPtr conn, unsigned int npages, @@ -88,54 +540,191 @@ virNodeAllocPagesWrapper(virConnectPtr conn, unsigned long long *pageCounts, int startCell, unsigned int cellCount, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 -virDomainPtr -virDomainDefineXMLFlagsWrapper(virConnectPtr conn, - const char *xml, - unsigned int flags); +virNodeDevicePtr +virNodeDeviceCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); =20 -virStoragePoolPtr -virStoragePoolLookupByTargetPathWrapper(virConnectPtr conn, - const char *path); +virNodeDevicePtr +virNodeDeviceLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err); =20 -char * -virConnectBaselineHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char **xmlCPUs, - unsigned int ncpus, - unsigned int flags); +virNodeDevicePtr +virNodeDeviceLookupSCSIHostByWWNWrapper(virConnectPtr conn, + const char *wwnn, + const char *wwpn, + unsigned int flags, + virErrorPtr err); =20 int -virConnectCompareHypervisorCPUWrapper(virConnectPtr conn, - const char *emulator, - const char *arch, - const char *machine, - const char *virttype, - const char *xmlCPU, - unsigned int flags); +virNodeGetCPUMapWrapper(virConnectPtr conn, + unsigned char **cpumap, + unsigned int *online, + unsigned int flags, + virErrorPtr err); + +int +virNodeGetCPUStatsWrapper(virConnectPtr conn, + int cpuNum, + virNodeCPUStatsPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virNodeGetCellsFreeMemoryWrapper(virConnectPtr conn, + unsigned long long *freeMems, + int startCell, + int maxCells, + virErrorPtr err); + +unsigned long long +virNodeGetFreeMemoryWrapper(virConnectPtr conn, + virErrorPtr err); + +int +virNodeGetFreePagesWrapper(virConnectPtr conn, + unsigned int npages, + unsigned int *pages, + int startCell, + unsigned int cellCount, + unsigned long long *counts, + unsigned int flags, + virErrorPtr err); + +int +virNodeGetInfoWrapper(virConnectPtr conn, + virNodeInfoPtr info, + virErrorPtr err); + +int +virNodeGetMemoryParametersWrapper(virConnectPtr conn, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virNodeGetMemoryStatsWrapper(virConnectPtr conn, + int cellNum, + virNodeMemoryStatsPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); =20 int virNodeGetSEVInfoWrapper(virConnectPtr conn, virTypedParameterPtr *params, int *nparams, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 int -virConnectListAllNWFilterBindingsWrapper(virConnectPtr conn, - virNWFilterBindingPtr **bindings, - unsigned int flags); +virNodeGetSecurityModelWrapper(virConnectPtr conn, + virSecurityModelPtr secmodel, + virErrorPtr err); =20 -virNWFilterBindingPtr -virNWFilterBindingCreateXMLWrapper(virConnectPtr conn, - const char *xml, - unsigned int flags); +int +virNodeListDevicesWrapper(virConnectPtr conn, + const char *cap, + char **const names, + int maxnames, + unsigned int flags, + virErrorPtr err); + +int +virNodeNumOfDevicesWrapper(virConnectPtr conn, + const char *cap, + unsigned int flags, + virErrorPtr err); + +int +virNodeSetMemoryParametersWrapper(virConnectPtr conn, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virNodeSuspendForDurationWrapper(virConnectPtr conn, + unsigned int target, + unsigned long long duration, + unsigned int flags, + virErrorPtr err); + +virSecretPtr +virSecretDefineXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err); + +virSecretPtr +virSecretLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err); + +virSecretPtr +virSecretLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err); + +virSecretPtr +virSecretLookupByUsageWrapper(virConnectPtr conn, + int usageType, + const char *usageID, + virErrorPtr err); + +virStoragePoolPtr +virStoragePoolCreateXMLWrapper(virConnectPtr conn, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); + +virStoragePoolPtr +virStoragePoolDefineXMLWrapper(virConnectPtr conn, + const char *xml, + unsigned int flags, + virErrorPtr err); + +virStoragePoolPtr +virStoragePoolLookupByNameWrapper(virConnectPtr conn, + const char *name, + virErrorPtr err); + +virStoragePoolPtr +virStoragePoolLookupByTargetPathWrapper(virConnectPtr conn, + const char *path, + virErrorPtr err); + +virStoragePoolPtr +virStoragePoolLookupByUUIDWrapper(virConnectPtr conn, + const unsigned char *uuid, + virErrorPtr err); + +virStoragePoolPtr +virStoragePoolLookupByUUIDStringWrapper(virConnectPtr conn, + const char *uuidstr, + virErrorPtr err); + +virStorageVolPtr +virStorageVolLookupByKeyWrapper(virConnectPtr conn, + const char *key, + virErrorPtr err); + +virStorageVolPtr +virStorageVolLookupByPathWrapper(virConnectPtr conn, + const char *path, + virErrorPtr err); + +virStreamPtr +virStreamNewWrapper(virConnectPtr conn, + unsigned int flags, + virErrorPtr err); =20 -virNWFilterBindingPtr -virNWFilterBindingLookupByPortDevWrapper(virConnectPtr conn, - const char *portdev); =20 #endif /* LIBVIRT_GO_CONNECT_WRAPPER_H__ */ diff --git a/error_test.go b/error_test.go deleted file mode 100644 index c2ea462..0000000 --- a/error_test.go +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of the libvirt-go project - * - * Permission is hereby granted, free of charge, to any person obtaining a= copy - * of this software and associated documentation files (the "Software"), t= o deal - * in the Software without restriction, including without limitation the r= ights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included= in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL= THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN - * THE SOFTWARE. - * - * Copyright (c) 2013 Alex Zorin - * Copyright (C) 2016 Red Hat, Inc. - * - */ - -package libvirt - -import ( - "reflect" - "testing" -) - -func TestGetLastError(t *testing.T) { - _, err :=3D NewConnect("invalid_transport:///default") - if err =3D=3D nil { - t.Fatalf("Expected an error when creating invalid connection") - } - got :=3D GetLastError() - expected :=3D Error{0, 0, "Missing error", 0} - if !reflect.DeepEqual(got, expected) { - t.Errorf("Expected error %+v, got %+v", expected, got) - } -} --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747539026464.1520614301163; Mon, 16 Jul 2018 06:25:39 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 17EAF368E7; Mon, 16 Jul 2018 13:25:37 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D72E3CA5EF; Mon, 16 Jul 2018 13:25:36 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 81D643F7CC; Mon, 16 Jul 2018 13:25:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP3Kg028333 for ; Mon, 16 Jul 2018 09:25:03 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1E41D2026D76; Mon, 16 Jul 2018 13:25:03 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5DEFD2026D65; Mon, 16 Jul 2018 13:25:01 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:17 +0100 Message-Id: <20180716132423.10354-32-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 31/37] domain: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Mon, 16 Jul 2018 13:25:37 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each domain C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- domain.go | 1017 +++++++++++--------- domain_wrapper.go | 2335 +++++++++++++++++++++++++++++++++++++++++---- domain_wrapper.h | 942 ++++++++++++++++-- 3 files changed, 3587 insertions(+), 707 deletions(-) diff --git a/domain.go b/domain.go index fad2a41..302cdb8 100644 --- a/domain.go +++ b/domain.go @@ -30,6 +30,7 @@ package libvirt #cgo pkg-config: libvirt #include #include "domain_wrapper.h" +#include "connect_wrapper.h" */ import "C" =20 @@ -858,36 +859,40 @@ type DomainVcpuInfo struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Free func (d *Domain) Free() error { - ret :=3D C.virDomainFree(d.ptr) + var err C.virError + ret :=3D C.virDomainFreeWrapper(d.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Ref func (c *Domain) Ref() error { - ret :=3D C.virDomainRef(c.ptr) + var err C.virError + ret :=3D C.virDomainRefWrapper(c.ptr, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Create func (d *Domain) Create() error { - result :=3D C.virDomainCreate(d.ptr) + var err C.virError + result :=3D C.virDomainCreateWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= CreateWithFlags func (d *Domain) CreateWithFlags(flags DomainCreateFlags) error { - result :=3D C.virDomainCreateWithFlags(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainCreateWithFlagsWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -898,45 +903,50 @@ func (d *Domain) CreateWithFiles(files []os.File, fla= gs DomainCreateFlags) error for i :=3D 0; i < len(files); i++ { cfiles[i] =3D C.int(files[i].Fd()) } - result :=3D C.virDomainCreateWithFiles(d.ptr, C.uint(len(files)), &cfiles= [0], C.uint(flags)) + var err C.virError + result :=3D C.virDomainCreateWithFilesWrapper(d.ptr, C.uint(len(files)), = &cfiles[0], C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Destroy func (d *Domain) Destroy() error { - result :=3D C.virDomainDestroy(d.ptr) + var err C.virError + result :=3D C.virDomainDestroyWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Shutdown func (d *Domain) Shutdown() error { - result :=3D C.virDomainShutdown(d.ptr) + var err C.virError + result :=3D C.virDomainShutdownWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Reboot func (d *Domain) Reboot(flags DomainRebootFlagValues) error { - result :=3D C.virDomainReboot(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainRebootWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= IsActive func (d *Domain) IsActive() (bool, error) { - result :=3D C.virDomainIsActive(d.ptr) + var err C.virError + result :=3D C.virDomainIsActiveWrapper(d.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -946,9 +956,10 @@ func (d *Domain) IsActive() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= IsPersistent func (d *Domain) IsPersistent() (bool, error) { - result :=3D C.virDomainIsPersistent(d.ptr) + var err C.virError + result :=3D C.virDomainIsPersistentWrapper(d.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -958,9 +969,10 @@ func (d *Domain) IsPersistent() (bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= IsUpdated func (d *Domain) IsUpdated() (bool, error) { - result :=3D C.virDomainIsUpdated(d.ptr) + var err C.virError + result :=3D C.virDomainIsUpdatedWrapper(d.ptr, &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -977,9 +989,10 @@ func (d *Domain) SetAutostart(autostart bool) error { default: cAutostart =3D 0 } - result :=3D C.virDomainSetAutostart(d.ptr, cAutostart) + var err C.virError + result :=3D C.virDomainSetAutostartWrapper(d.ptr, cAutostart, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -987,9 +1000,10 @@ func (d *Domain) SetAutostart(autostart bool) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetAutostart func (d *Domain) GetAutostart() (bool, error) { var out C.int - result :=3D C.virDomainGetAutostart(d.ptr, (*C.int)(unsafe.Pointer(&out))) + var err C.virError + result :=3D C.virDomainGetAutostartWrapper(d.ptr, (*C.int)(unsafe.Pointer= (&out)), &err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } switch out { case 1: @@ -1004,9 +1018,10 @@ func (d *Domain) GetBlockInfo(disk string, flag uint= ) (*DomainBlockInfo, error) var cinfo C.virDomainBlockInfo cDisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cDisk)) - result :=3D C.virDomainGetBlockInfo(d.ptr, cDisk, &cinfo, C.uint(flag)) + var err C.virError + result :=3D C.virDomainGetBlockInfoWrapper(d.ptr, cDisk, &cinfo, C.uint(f= lag), &err) if result =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &DomainBlockInfo{ @@ -1018,9 +1033,10 @@ func (d *Domain) GetBlockInfo(disk string, flag uint= ) (*DomainBlockInfo, error) =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetName func (d *Domain) GetName() (string, error) { - name :=3D C.virDomainGetName(d.ptr) + var err C.virError + name :=3D C.virDomainGetNameWrapper(d.ptr, &err) if name =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } return C.GoString(name), nil } @@ -1029,21 +1045,23 @@ func (d *Domain) GetName() (string, error) { func (d *Domain) GetState() (DomainState, int, error) { var cState C.int var cReason C.int - result :=3D C.virDomainGetState(d.ptr, + var err C.virError + result :=3D C.virDomainGetStateWrapper(d.ptr, (*C.int)(unsafe.Pointer(&cState)), (*C.int)(unsafe.Pointer(&cReason)), - 0) + 0, &err) if int(result) =3D=3D -1 { - return 0, 0, GetLastError() + return 0, 0, makeError(&err) } return DomainState(cState), int(cReason), nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetID func (d *Domain) GetID() (uint, error) { - id :=3D uint(C.virDomainGetID(d.ptr)) + var err C.virError + id :=3D uint(C.virDomainGetIDWrapper(d.ptr, &err)) if id =3D=3D ^uint(0) { - return id, GetLastError() + return id, makeError(&err) } return id, nil } @@ -1052,9 +1070,10 @@ func (d *Domain) GetID() (uint, error) { func (d *Domain) GetUUID() ([]byte, error) { var cUuid [C.VIR_UUID_BUFLEN](byte) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virDomainGetUUID(d.ptr, (*C.uchar)(cuidPtr)) + var err C.virError + result :=3D C.virDomainGetUUIDWrapper(d.ptr, (*C.uchar)(cuidPtr), &err) if result !=3D 0 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } return C.GoBytes(cuidPtr, C.VIR_UUID_BUFLEN), nil } @@ -1063,9 +1082,10 @@ func (d *Domain) GetUUID() ([]byte, error) { func (d *Domain) GetUUIDString() (string, error) { var cUuid [C.VIR_UUID_STRING_BUFLEN](C.char) cuidPtr :=3D unsafe.Pointer(&cUuid) - result :=3D C.virDomainGetUUIDString(d.ptr, (*C.char)(cuidPtr)) + var err C.virError + result :=3D C.virDomainGetUUIDStringWrapper(d.ptr, (*C.char)(cuidPtr), &e= rr) if result !=3D 0 { - return "", GetLastError() + return "", makeError(&err) } return C.GoString((*C.char)(cuidPtr)), nil } @@ -1073,9 +1093,10 @@ func (d *Domain) GetUUIDString() (string, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetInfo func (d *Domain) GetInfo() (*DomainInfo, error) { var cinfo C.virDomainInfo - result :=3D C.virDomainGetInfo(d.ptr, &cinfo) + var err C.virError + result :=3D C.virDomainGetInfoWrapper(d.ptr, &cinfo, &err) if result =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainInfo{ State: DomainState(cinfo.state), @@ -1088,9 +1109,10 @@ func (d *Domain) GetInfo() (*DomainInfo, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetXMLDesc func (d *Domain) GetXMLDesc(flags DomainXMLFlags) (string, error) { - result :=3D C.virDomainGetXMLDesc(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainGetXMLDescWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } xml :=3D C.GoString(result) C.free(unsafe.Pointer(result)) @@ -1131,21 +1153,22 @@ func getCPUStatsFieldInfo(params *DomainCPUStats) m= ap[string]typedParamsFieldInf =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetCPUStats func (d *Domain) GetCPUStats(startCpu int, nCpus uint, flags uint32) ([]Do= mainCPUStats, error) { + var err C.virError if nCpus =3D=3D 0 { if startCpu =3D=3D -1 { nCpus =3D 1 } else { - ret :=3D C.virDomainGetCPUStats(d.ptr, nil, 0, 0, 0, 0) + ret :=3D C.virDomainGetCPUStatsWrapper(d.ptr, nil, 0, 0, 0, 0, &err) if ret =3D=3D -1 { - return []DomainCPUStats{}, GetLastError() + return []DomainCPUStats{}, makeError(&err) } nCpus =3D uint(ret) } } =20 - ret :=3D C.virDomainGetCPUStats(d.ptr, nil, 0, C.int(startCpu), C.uint(nC= pus), 0) + ret :=3D C.virDomainGetCPUStatsWrapper(d.ptr, nil, 0, C.int(startCpu), C.= uint(nCpus), 0, &err) if ret =3D=3D -1 { - return []DomainCPUStats{}, GetLastError() + return []DomainCPUStats{}, makeError(&err) } nparams :=3D uint(ret) =20 @@ -1157,9 +1180,9 @@ func (d *Domain) GetCPUStats(startCpu int, nCpus uint= , flags uint32) ([]DomainCP nallocparams =3D nparams * nCpus } cparams =3D make([]C.virTypedParameter, nallocparams) - ret =3D C.virDomainGetCPUStats(d.ptr, (*C.virTypedParameter)(unsafe.Point= er(&cparams[0])), C.uint(nparams), C.int(startCpu), C.uint(nCpus), C.uint(f= lags)) + ret =3D C.virDomainGetCPUStatsWrapper(d.ptr, (*C.virTypedParameter)(unsaf= e.Pointer(&cparams[0])), C.uint(nparams), C.int(startCpu), C.uint(nCpus), C= .uint(flags), &err) if ret =3D=3D -1 { - return []DomainCPUStats{}, GetLastError() + return []DomainCPUStats{}, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), C.int(nallocparams)) @@ -1169,9 +1192,9 @@ func (d *Domain) GetCPUStats(startCpu int, nCpus uint= , flags uint32) ([]DomainCP offset :=3D i * int(nparams) info :=3D getCPUStatsFieldInfo(&stats[i]) cparamscpu :=3D cparams[offset : offset+int(ret)] - _, err :=3D typedParamsUnpack(cparamscpu, info) - if err !=3D nil { - return []DomainCPUStats{}, err + _, gerr :=3D typedParamsUnpack(cparamscpu, info) + if gerr !=3D nil { + return []DomainCPUStats{}, gerr } } return stats, nil @@ -1236,22 +1259,23 @@ func (d *Domain) GetInterfaceParameters(device stri= ng, flags DomainModificationI =20 cdevice :=3D C.CString(device) defer C.free(unsafe.Pointer(cdevice)) - ret :=3D C.virDomainGetInterfaceParameters(d.ptr, cdevice, nil, &nparams,= C.uint(0)) + var err C.virError + ret :=3D C.virDomainGetInterfaceParametersWrapper(d.ptr, cdevice, nil, &n= params, C.uint(0), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetInterfaceParameters(d.ptr, cdevice, (*C.virTypedPar= ameter)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virDomainGetInterfaceParametersWrapper(d.ptr, cdevice, (*C.virT= ypedParameter)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -1265,25 +1289,26 @@ func (d *Domain) SetInterfaceParameters(device stri= ng, params *DomainInterfacePa =20 cdevice :=3D C.CString(device) defer C.free(unsafe.Pointer(cdevice)) - ret :=3D C.virDomainGetInterfaceParameters(d.ptr, cdevice, nil, &nparams,= 0) + var err C.virError + ret :=3D C.virDomainGetInterfaceParametersWrapper(d.ptr, cdevice, nil, &n= params, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetInterfaceParameters(d.ptr, cdevice, (*C.virTypedPar= ameter)(unsafe.Pointer(&cparams[0])), &nparams, 0) + ret =3D C.virDomainGetInterfaceParametersWrapper(d.ptr, cdevice, (*C.virT= ypedParameter)(unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetInterfaceParameters(d.ptr, cdevice, (*C.virTypedPar= ameter)(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virDomainSetInterfaceParametersWrapper(d.ptr, cdevice, (*C.virT= ypedParameter)(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } @@ -1296,9 +1321,10 @@ func (d *Domain) GetMetadata(tipus DomainMetadataTyp= e, uri string, flags DomainM defer C.free(unsafe.Pointer(cUri)) } =20 - result :=3D C.virDomainGetMetadata(d.ptr, C.int(tipus), cUri, C.uint(flag= s)) + var err C.virError + result :=3D C.virDomainGetMetadataWrapper(d.ptr, C.int(tipus), cUri, C.ui= nt(flags), &err) if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) =20 } defer C.free(unsafe.Pointer(result)) @@ -1324,126 +1350,140 @@ func (d *Domain) SetMetadata(metaDataType DomainM= etadataType, metaDataCont, uriK cUri =3D C.CString(uri) defer C.free(unsafe.Pointer(cUri)) } - result :=3D C.virDomainSetMetadata(d.ptr, C.int(metaDataType), cMetaDataC= ont, cUriKey, cUri, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSetMetadataWrapper(d.ptr, C.int(metaDataType), cMe= taDataCont, cUriKey, cUri, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Undefine func (d *Domain) Undefine() error { - result :=3D C.virDomainUndefine(d.ptr) + var err C.virError + result :=3D C.virDomainUndefineWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= UndefineFlags func (d *Domain) UndefineFlags(flags DomainUndefineFlagsValues) error { - result :=3D C.virDomainUndefineFlags(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainUndefineFlagsWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetMaxMemory func (d *Domain) SetMaxMemory(memory uint) error { - result :=3D C.virDomainSetMaxMemory(d.ptr, C.ulong(memory)) + var err C.virError + result :=3D C.virDomainSetMaxMemoryWrapper(d.ptr, C.ulong(memory), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetMemory func (d *Domain) SetMemory(memory uint64) error { - result :=3D C.virDomainSetMemory(d.ptr, C.ulong(memory)) + var err C.virError + result :=3D C.virDomainSetMemoryWrapper(d.ptr, C.ulong(memory), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetMemoryFlags func (d *Domain) SetMemoryFlags(memory uint64, flags DomainMemoryModFlags)= error { - result :=3D C.virDomainSetMemoryFlags(d.ptr, C.ulong(memory), C.uint(flag= s)) + var err C.virError + result :=3D C.virDomainSetMemoryFlagsWrapper(d.ptr, C.ulong(memory), C.ui= nt(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetMemoryStatsPeriod func (d *Domain) SetMemoryStatsPeriod(period int, flags DomainMemoryModFla= gs) error { - result :=3D C.virDomainSetMemoryStatsPeriod(d.ptr, C.int(period), C.uint(= flags)) + var err C.virError + result :=3D C.virDomainSetMemoryStatsPeriodWrapper(d.ptr, C.int(period), = C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetVcpus func (d *Domain) SetVcpus(vcpu uint) error { - result :=3D C.virDomainSetVcpus(d.ptr, C.uint(vcpu)) + var err C.virError + result :=3D C.virDomainSetVcpusWrapper(d.ptr, C.uint(vcpu), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetVcpusFlags func (d *Domain) SetVcpusFlags(vcpu uint, flags DomainVcpuFlags) error { - result :=3D C.virDomainSetVcpusFlags(d.ptr, C.uint(vcpu), C.uint(flags)) + var err C.virError + result :=3D C.virDomainSetVcpusFlagsWrapper(d.ptr, C.uint(vcpu), C.uint(f= lags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Suspend func (d *Domain) Suspend() error { - result :=3D C.virDomainSuspend(d.ptr) + var err C.virError + result :=3D C.virDomainSuspendWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Resume func (d *Domain) Resume() error { - result :=3D C.virDomainResume(d.ptr) + var err C.virError + result :=3D C.virDomainResumeWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= AbortJob func (d *Domain) AbortJob() error { - result :=3D C.virDomainAbortJob(d.ptr) + var err C.virError + result :=3D C.virDomainAbortJobWrapper(d.ptr, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= DestroyFlags func (d *Domain) DestroyFlags(flags DomainDestroyFlags) error { - result :=3D C.virDomainDestroyFlags(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainDestroyFlagsWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= ShutdownFlags func (d *Domain) ShutdownFlags(flags DomainShutdownFlags) error { - result :=3D C.virDomainShutdownFlags(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainShutdownFlagsWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1452,9 +1492,10 @@ func (d *Domain) ShutdownFlags(flags DomainShutdownF= lags) error { func (d *Domain) AttachDevice(xml string) error { cXml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cXml)) - result :=3D C.virDomainAttachDevice(d.ptr, cXml) + var err C.virError + result :=3D C.virDomainAttachDeviceWrapper(d.ptr, cXml, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1463,9 +1504,10 @@ func (d *Domain) AttachDevice(xml string) error { func (d *Domain) AttachDeviceFlags(xml string, flags DomainDeviceModifyFla= gs) error { cXml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cXml)) - result :=3D C.virDomainAttachDeviceFlags(d.ptr, cXml, C.uint(flags)) + var err C.virError + result :=3D C.virDomainAttachDeviceFlagsWrapper(d.ptr, cXml, C.uint(flags= ), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1474,9 +1516,10 @@ func (d *Domain) AttachDeviceFlags(xml string, flags= DomainDeviceModifyFlags) er func (d *Domain) DetachDevice(xml string) error { cXml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cXml)) - result :=3D C.virDomainDetachDevice(d.ptr, cXml) + var err C.virError + result :=3D C.virDomainDetachDeviceWrapper(d.ptr, cXml, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1485,9 +1528,10 @@ func (d *Domain) DetachDevice(xml string) error { func (d *Domain) DetachDeviceFlags(xml string, flags DomainDeviceModifyFla= gs) error { cXml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cXml)) - result :=3D C.virDomainDetachDeviceFlags(d.ptr, cXml, C.uint(flags)) + var err C.virError + result :=3D C.virDomainDetachDeviceFlagsWrapper(d.ptr, cXml, C.uint(flags= ), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1500,9 +1544,10 @@ func (d *Domain) DetachDeviceAlias(alias string, fla= gs DomainDeviceModifyFlags) =20 cAlias :=3D C.CString(alias) defer C.free(unsafe.Pointer(cAlias)) - result :=3D C.virDomainDetachDeviceAliasWrapper(d.ptr, cAlias, C.uint(fla= gs)) + var err C.virError + result :=3D C.virDomainDetachDeviceAliasWrapper(d.ptr, cAlias, C.uint(fla= gs), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -1511,18 +1556,20 @@ func (d *Domain) DetachDeviceAlias(alias string, fl= ags DomainDeviceModifyFlags) func (d *Domain) UpdateDeviceFlags(xml string, flags DomainDeviceModifyFla= gs) error { cXml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cXml)) - result :=3D C.virDomainUpdateDeviceFlags(d.ptr, cXml, C.uint(flags)) + var err C.virError + result :=3D C.virDomainUpdateDeviceFlagsWrapper(d.ptr, cXml, C.uint(flags= ), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Screenshot func (d *Domain) Screenshot(stream *Stream, screen, flags uint32) (string,= error) { - cType :=3D C.virDomainScreenshot(d.ptr, stream.ptr, C.uint(screen), C.uin= t(flags)) + var err C.virError + cType :=3D C.virDomainScreenshotWrapper(d.ptr, stream.ptr, C.uint(screen)= , C.uint(flags), &err) if cType =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } defer C.free(unsafe.Pointer(cType)) =20 @@ -1532,9 +1579,10 @@ func (d *Domain) Screenshot(stream *Stream, screen, = flags uint32) (string, error =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SendKey func (d *Domain) SendKey(codeset, holdtime uint, keycodes []uint, flags ui= nt32) error { - result :=3D C.virDomainSendKey(d.ptr, C.uint(codeset), C.uint(holdtime), = (*C.uint)(unsafe.Pointer(&keycodes[0])), C.int(len(keycodes)), C.uint(flags= )) + var err C.virError + result :=3D C.virDomainSendKeyWrapper(d.ptr, C.uint(codeset), C.uint(hold= time), (*C.uint)(unsafe.Pointer(&keycodes[0])), C.int(len(keycodes)), C.uin= t(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -1611,22 +1659,23 @@ func (d *Domain) BlockStatsFlags(disk string, flags= uint32) (*DomainBlockStats, =20 cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) - ret :=3D C.virDomainBlockStatsFlags(d.ptr, cdisk, nil, &nparams, C.uint(0= )) + var err C.virError + ret :=3D C.virDomainBlockStatsFlagsWrapper(d.ptr, cdisk, nil, &nparams, C= .uint(0), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainBlockStatsFlags(d.ptr, cdisk, (*C.virTypedParameter)(u= nsafe.Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virDomainBlockStatsFlagsWrapper(d.ptr, cdisk, (*C.virTypedParam= eter)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -1642,10 +1691,11 @@ func (d *Domain) BlockStats(path string) (*DomainBl= ockStats, error) { cStats :=3D (C.virDomainBlockStatsPtr)(C.malloc(size)) defer C.free(unsafe.Pointer(cStats)) =20 - result :=3D C.virDomainBlockStats(d.ptr, cPath, (C.virDomainBlockStatsPtr= )(cStats), size) + var err C.virError + result :=3D C.virDomainBlockStatsWrapper(d.ptr, cPath, (C.virDomainBlockS= tatsPtr)(cStats), size, &err) =20 if result !=3D 0 { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainBlockStats{ WrReqSet: true, @@ -1688,10 +1738,11 @@ func (d *Domain) InterfaceStats(path string) (*Doma= inInterfaceStats, error) { cStats :=3D (C.virDomainInterfaceStatsPtr)(C.malloc(size)) defer C.free(unsafe.Pointer(cStats)) =20 - result :=3D C.virDomainInterfaceStats(d.ptr, cPath, (C.virDomainInterface= StatsPtr)(cStats), size) + var err C.virError + result :=3D C.virDomainInterfaceStatsWrapper(d.ptr, cPath, (C.virDomainIn= terfaceStatsPtr)(cStats), size, &err) =20 if result !=3D 0 { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainInterfaceStats{ RxBytesSet: true, @@ -1717,12 +1768,13 @@ func (d *Domain) InterfaceStats(path string) (*Doma= inInterfaceStats, error) { func (d *Domain) MemoryStats(nrStats uint32, flags uint32) ([]DomainMemory= Stat, error) { ptr :=3D make([]C.virDomainMemoryStatStruct, nrStats) =20 - result :=3D C.virDomainMemoryStats( + var err C.virError + result :=3D C.virDomainMemoryStatsWrapper( d.ptr, (C.virDomainMemoryStatPtr)(unsafe.Pointer(&ptr[0])), - C.uint(nrStats), C.uint(flags)) + C.uint(nrStats), C.uint(flags), &err) =20 if result =3D=3D -1 { - return []DomainMemoryStat{}, GetLastError() + return []DomainMemoryStat{}, makeError(&err) } =20 out :=3D make([]DomainMemoryStat, 0) @@ -1741,14 +1793,15 @@ func (d *Domain) MemoryStats(nrStats uint32, flags = uint32) ([]DomainMemoryStat, // acquire a reference on the returned Connect, which must // be released by calling Close() func (d *Domain) DomainGetConnect() (*Connect, error) { - ptr :=3D C.virDomainGetConnect(d.ptr) + var err C.virError + ptr :=3D C.virDomainGetConnectWrapper(d.ptr, &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 - ret :=3D C.virConnectRef(ptr) + ret :=3D C.virConnectRefWrapper(ptr, &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &Connect{ptr: ptr}, nil @@ -1757,15 +1810,16 @@ func (d *Domain) DomainGetConnect() (*Connect, erro= r) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetVcpus func (d *Domain) GetVcpus() ([]DomainVcpuInfo, error) { var cnodeinfo C.virNodeInfo - ret :=3D C.virNodeGetInfo(C.virDomainGetConnect(d.ptr), &cnodeinfo) + var err C.virError + ret :=3D C.virNodeGetInfoWrapper(C.virDomainGetConnect(d.ptr), &cnodeinfo= , &err) if ret =3D=3D -1 { - return []DomainVcpuInfo{}, GetLastError() + return []DomainVcpuInfo{}, makeError(&err) } =20 var cdominfo C.virDomainInfo - ret =3D C.virDomainGetInfo(d.ptr, &cdominfo) + ret =3D C.virDomainGetInfoWrapper(d.ptr, &cdominfo, &err) if ret =3D=3D -1 { - return []DomainVcpuInfo{}, GetLastError() + return []DomainVcpuInfo{}, makeError(&err) } =20 nvcpus :=3D int(cdominfo.nrVirtCpu) @@ -1774,9 +1828,9 @@ func (d *Domain) GetVcpus() ([]DomainVcpuInfo, error)= { ccpumaps :=3D make([]C.uchar, maplen*nvcpus) cinfo :=3D make([]C.virVcpuInfo, nvcpus) =20 - ret =3D C.virDomainGetVcpus(d.ptr, &cinfo[0], C.int(nvcpus), &ccpumaps[0]= , C.int(maplen)) + ret =3D C.virDomainGetVcpusWrapper(d.ptr, &cinfo[0], C.int(nvcpus), &ccpu= maps[0], C.int(maplen), &err) if ret =3D=3D -1 { - return []DomainVcpuInfo{}, GetLastError() + return []DomainVcpuInfo{}, makeError(&err) } =20 info :=3D make([]DomainVcpuInfo, int(ret)) @@ -1803,9 +1857,10 @@ func (d *Domain) GetVcpus() ([]DomainVcpuInfo, error= ) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetVcpusFlags func (d *Domain) GetVcpusFlags(flags DomainVcpuFlags) (int32, error) { - result :=3D C.virDomainGetVcpusFlags(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainGetVcpusFlagsWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return int32(result), nil } @@ -1822,10 +1877,11 @@ func (d *Domain) PinVcpu(vcpu uint, cpuMap []bool) = error { } } =20 - result :=3D C.virDomainPinVcpu(d.ptr, C.uint(vcpu), &ccpumap[0], C.int(ma= plen)) + var err C.virError + result :=3D C.virDomainPinVcpuWrapper(d.ptr, C.uint(vcpu), &ccpumap[0], C= .int(maplen), &err) =20 if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -1843,10 +1899,11 @@ func (d *Domain) PinVcpuFlags(vcpu uint, cpuMap []b= ool, flags DomainModification } } =20 - result :=3D C.virDomainPinVcpuFlags(d.ptr, C.uint(vcpu), &ccpumap[0], C.i= nt(maplen), C.uint(flags)) + var err C.virError + result :=3D C.virDomainPinVcpuFlagsWrapper(d.ptr, C.uint(vcpu), &ccpumap[= 0], C.int(maplen), C.uint(flags), &err) =20 if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -1871,9 +1928,10 @@ func (d *Domain) ListAllInterfaceAddresses(src Domai= nInterfaceAddressesSource) ( } =20 var cList *C.virDomainInterfacePtr - numIfaces :=3D int(C.virDomainInterfaceAddressesWrapper(d.ptr, (**C.virDo= mainInterfacePtr)(&cList), C.uint(src), 0)) + var err C.virError + numIfaces :=3D int(C.virDomainInterfaceAddressesWrapper(d.ptr, (**C.virDo= mainInterfacePtr)(&cList), C.uint(src), 0, &err)) if numIfaces =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 ifaces :=3D make([]DomainInterface, numIfaces) @@ -1906,9 +1964,10 @@ func (d *Domain) ListAllInterfaceAddresses(src Domai= nInterfaceAddressesSource) ( =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotCurrent func (d *Domain) SnapshotCurrent(flags uint32) (*DomainSnapshot, error) { - result :=3D C.virDomainSnapshotCurrent(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSnapshotCurrentWrapper(d.ptr, C.uint(flags), &err) if result =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainSnapshot{ptr: result}, nil =20 @@ -1916,9 +1975,10 @@ func (d *Domain) SnapshotCurrent(flags uint32) (*Dom= ainSnapshot, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainSnapshotNum func (d *Domain) SnapshotNum(flags DomainSnapshotListFlags) (int, error) { - result :=3D int(C.virDomainSnapshotNum(d.ptr, C.uint(flags))) + var err C.virError + result :=3D int(C.virDomainSnapshotNumWrapper(d.ptr, C.uint(flags), &err)) if result =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } return result, nil } @@ -1927,9 +1987,10 @@ func (d *Domain) SnapshotNum(flags DomainSnapshotLis= tFlags) (int, error) { func (d *Domain) SnapshotLookupByName(name string, flags uint32) (*DomainS= napshot, error) { cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) - ptr :=3D C.virDomainSnapshotLookupByName(d.ptr, cName, C.uint(flags)) + var err C.virError + ptr :=3D C.virDomainSnapshotLookupByNameWrapper(d.ptr, cName, C.uint(flag= s), &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainSnapshot{ptr: ptr}, nil } @@ -1939,12 +2000,13 @@ func (d *Domain) SnapshotListNames(flags DomainSnap= shotListFlags) ([]string, err const maxNames =3D 1024 var names [maxNames](*C.char) namesPtr :=3D unsafe.Pointer(&names) - numNames :=3D C.virDomainSnapshotListNames( + var err C.virError + numNames :=3D C.virDomainSnapshotListNamesWrapper( d.ptr, (**C.char)(namesPtr), - maxNames, C.uint(flags)) + maxNames, C.uint(flags), &err) if numNames =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } goNames :=3D make([]string, numNames) for k :=3D 0; k < int(numNames); k++ { @@ -1957,9 +2019,10 @@ func (d *Domain) SnapshotListNames(flags DomainSnaps= hotListFlags) ([]string, err // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainListAllSnapshots func (d *Domain) ListAllSnapshots(flags DomainSnapshotListFlags) ([]Domain= Snapshot, error) { var cList *C.virDomainSnapshotPtr - numVols :=3D C.virDomainListAllSnapshots(d.ptr, (**C.virDomainSnapshotPtr= )(&cList), C.uint(flags)) + var err C.virError + numVols :=3D C.virDomainListAllSnapshotsWrapper(d.ptr, (**C.virDomainSnap= shotPtr)(&cList), C.uint(flags), &err) if numVols =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } hdr :=3D reflect.SliceHeader{ Data: uintptr(unsafe.Pointer(cList)), @@ -1989,9 +2052,10 @@ func (d *Domain) BlockCommit(disk string, base strin= g, top string, bandwidth uin ctop =3D C.CString(top) defer C.free(unsafe.Pointer(ctop)) } - ret :=3D C.virDomainBlockCommit(d.ptr, cdisk, cbase, ctop, C.ulong(bandwi= dth), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainBlockCommitWrapper(d.ptr, cdisk, cbase, ctop, C.ulong= (bandwidth), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -2034,17 +2098,18 @@ func (d *Domain) BlockCopy(disk string, destxml str= ing, params *DomainBlockCopyP =20 info :=3D getBlockCopyParameterFieldInfo(params) =20 - cparams, err :=3D typedParamsPackNew(info) - if err !=3D nil { - return err + cparams, gerr :=3D typedParamsPackNew(info) + if gerr !=3D nil { + return gerr } nparams :=3D len(*cparams) =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&(*cpar= ams)[0])), C.int(nparams)) =20 - ret :=3D C.virDomainBlockCopyWrapper(d.ptr, cdisk, cdestxml, (*C.virTyped= Parameter)(unsafe.Pointer(&(*cparams)[0])), C.int(nparams), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainBlockCopyWrapper(d.ptr, cdisk, cdestxml, (*C.virTyped= Parameter)(unsafe.Pointer(&(*cparams)[0])), C.int(nparams), C.uint(flags), = &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2054,9 +2119,10 @@ func (d *Domain) BlockCopy(disk string, destxml stri= ng, params *DomainBlockCopyP func (d *Domain) BlockJobAbort(disk string, flags DomainBlockJobAbortFlags= ) error { cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) - ret :=3D C.virDomainBlockJobAbort(d.ptr, cdisk, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainBlockJobAbortWrapper(d.ptr, cdisk, C.uint(flags), &er= r) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -2065,9 +2131,10 @@ func (d *Domain) BlockJobAbort(disk string, flags Do= mainBlockJobAbortFlags) erro func (d *Domain) BlockJobSetSpeed(disk string, bandwidth uint64, flags Dom= ainBlockJobSetSpeedFlags) error { cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) - ret :=3D C.virDomainBlockJobSetSpeed(d.ptr, cdisk, C.ulong(bandwidth), C.= uint(flags)) + var err C.virError + ret :=3D C.virDomainBlockJobSetSpeedWrapper(d.ptr, cdisk, C.ulong(bandwid= th), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -2076,9 +2143,10 @@ func (d *Domain) BlockJobSetSpeed(disk string, bandw= idth uint64, flags DomainBlo func (d *Domain) BlockPull(disk string, bandwidth uint64, flags DomainBloc= kPullFlags) error { cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) - ret :=3D C.virDomainBlockPull(d.ptr, cdisk, C.ulong(bandwidth), C.uint(fl= ags)) + var err C.virError + ret :=3D C.virDomainBlockPullWrapper(d.ptr, cdisk, C.ulong(bandwidth), C.= uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -2092,9 +2160,10 @@ func (d *Domain) BlockRebase(disk string, base strin= g, bandwidth uint64, flags D cbase :=3D C.CString(base) defer C.free(unsafe.Pointer(cbase)) } - ret :=3D C.virDomainBlockRebase(d.ptr, cdisk, cbase, C.ulong(bandwidth), = C.uint(flags)) + var err C.virError + ret :=3D C.virDomainBlockRebaseWrapper(d.ptr, cdisk, cbase, C.ulong(bandw= idth), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -2103,9 +2172,10 @@ func (d *Domain) BlockRebase(disk string, base strin= g, bandwidth uint64, flags D func (d *Domain) BlockResize(disk string, size uint64, flags DomainBlockRe= sizeFlags) error { cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) - ret :=3D C.virDomainBlockResize(d.ptr, cdisk, C.ulonglong(size), C.uint(f= lags)) + var err C.virError + ret :=3D C.virDomainBlockResizeWrapper(d.ptr, cdisk, C.ulonglong(size), C= .uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -2115,10 +2185,11 @@ func (d *Domain) BlockPeek(disk string, offset uint= 64, size uint64, flags uint32 cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) data :=3D make([]byte, size) - ret :=3D C.virDomainBlockPeek(d.ptr, cdisk, C.ulonglong(offset), C.size_t= (size), - unsafe.Pointer(&data[0]), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainBlockPeekWrapper(d.ptr, cdisk, C.ulonglong(offset), C= .size_t(size), + unsafe.Pointer(&data[0]), C.uint(flags), &err) if ret =3D=3D -1 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } =20 return data, nil @@ -2127,10 +2198,11 @@ func (d *Domain) BlockPeek(disk string, offset uint= 64, size uint64, flags uint32 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= MemoryPeek func (d *Domain) MemoryPeek(start uint64, size uint64, flags DomainMemoryF= lags) ([]byte, error) { data :=3D make([]byte, size) - ret :=3D C.virDomainMemoryPeek(d.ptr, C.ulonglong(start), C.size_t(size), - unsafe.Pointer(&data[0]), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainMemoryPeekWrapper(d.ptr, C.ulonglong(start), C.size_t= (size), + unsafe.Pointer(&data[0]), C.uint(flags), &err) if ret =3D=3D -1 { - return []byte{}, GetLastError() + return []byte{}, makeError(&err) } =20 return data, nil @@ -2149,9 +2221,10 @@ func (d *Domain) Migrate(dconn *Connect, flags Domai= nMigrateFlags, dname string, defer C.free(unsafe.Pointer(curi)) } =20 - ret :=3D C.virDomainMigrate(d.ptr, dconn.ptr, C.ulong(flags), cdname, cur= i, C.ulong(bandwidth)) + var err C.virError + ret :=3D C.virDomainMigrateWrapper(d.ptr, dconn.ptr, C.ulong(flags), cdna= me, curi, C.ulong(bandwidth), &err) if ret =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &Domain{ @@ -2177,9 +2250,10 @@ func (d *Domain) Migrate2(dconn *Connect, dxml strin= g, flags DomainMigrateFlags, defer C.free(unsafe.Pointer(curi)) } =20 - ret :=3D C.virDomainMigrate2(d.ptr, dconn.ptr, cdxml, C.ulong(flags), cdn= ame, curi, C.ulong(bandwidth)) + var err C.virError + ret :=3D C.virDomainMigrate2Wrapper(d.ptr, dconn.ptr, cdxml, C.ulong(flag= s), cdname, curi, C.ulong(bandwidth), &err) if ret =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &Domain{ @@ -2295,17 +2369,18 @@ func getMigrateParameterFieldInfo(params *DomainMig= rateParameters) map[string]ty func (d *Domain) Migrate3(dconn *Connect, params *DomainMigrateParameters,= flags DomainMigrateFlags) (*Domain, error) { =20 info :=3D getMigrateParameterFieldInfo(params) - cparams, err :=3D typedParamsPackNew(info) - if err !=3D nil { - return nil, err + cparams, gerr :=3D typedParamsPackNew(info) + if gerr !=3D nil { + return nil, gerr } nparams :=3D len(*cparams) =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&(*cpar= ams)[0])), C.int(nparams)) =20 - ret :=3D C.virDomainMigrate3(d.ptr, dconn.ptr, (*C.virTypedParameter)(uns= afe.Pointer(&(*cparams)[0])), C.uint(nparams), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainMigrate3Wrapper(d.ptr, dconn.ptr, (*C.virTypedParamet= er)(unsafe.Pointer(&(*cparams)[0])), C.uint(nparams), C.uint(flags), &err) if ret =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &Domain{ @@ -2324,9 +2399,10 @@ func (d *Domain) MigrateToURI(duri string, flags Dom= ainMigrateFlags, dname strin defer C.free(unsafe.Pointer(cdname)) } =20 - ret :=3D C.virDomainMigrateToURI(d.ptr, cduri, C.ulong(flags), cdname, C.= ulong(bandwidth)) + var err C.virError + ret :=3D C.virDomainMigrateToURIWrapper(d.ptr, cduri, C.ulong(flags), cdn= ame, C.ulong(bandwidth), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2355,9 +2431,10 @@ func (d *Domain) MigrateToURI2(dconnuri string, migu= ri string, dxml string, flag defer C.free(unsafe.Pointer(cdname)) } =20 - ret :=3D C.virDomainMigrateToURI2(d.ptr, cdconnuri, cmiguri, cdxml, C.ulo= ng(flags), cdname, C.ulong(bandwidth)) + var err C.virError + ret :=3D C.virDomainMigrateToURI2Wrapper(d.ptr, cdconnuri, cmiguri, cdxml= , C.ulong(flags), cdname, C.ulong(bandwidth), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2372,17 +2449,18 @@ func (d *Domain) MigrateToURI3(dconnuri string, par= ams *DomainMigrateParameters, } =20 info :=3D getMigrateParameterFieldInfo(params) - cparams, err :=3D typedParamsPackNew(info) - if err !=3D nil { - return err + cparams, gerr :=3D typedParamsPackNew(info) + if gerr !=3D nil { + return gerr } nparams :=3D len(*cparams) =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&(*cpar= ams)[0])), C.int(nparams)) =20 - ret :=3D C.virDomainMigrateToURI3(d.ptr, cdconnuri, (*C.virTypedParameter= )(unsafe.Pointer(&(*cparams)[0])), C.uint(nparams), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainMigrateToURI3Wrapper(d.ptr, cdconnuri, (*C.virTypedPa= rameter)(unsafe.Pointer(&(*cparams)[0])), C.uint(nparams), C.uint(flags), &= err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2392,9 +2470,10 @@ func (d *Domain) MigrateToURI3(dconnuri string, para= ms *DomainMigrateParameters, func (d *Domain) MigrateGetCompressionCache(flags uint32) (uint64, error) { var cacheSize C.ulonglong =20 - ret :=3D C.virDomainMigrateGetCompressionCache(d.ptr, &cacheSize, C.uint(= flags)) + var err C.virError + ret :=3D C.virDomainMigrateGetCompressionCacheWrapper(d.ptr, &cacheSize, = C.uint(flags), &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return uint64(cacheSize), nil @@ -2402,9 +2481,10 @@ func (d *Domain) MigrateGetCompressionCache(flags ui= nt32) (uint64, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= MigrateSetCompressionCache func (d *Domain) MigrateSetCompressionCache(size uint64, flags uint32) err= or { - ret :=3D C.virDomainMigrateSetCompressionCache(d.ptr, C.ulonglong(size), = C.uint(flags)) + var err C.virError + ret :=3D C.virDomainMigrateSetCompressionCacheWrapper(d.ptr, C.ulonglong(= size), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2414,9 +2494,10 @@ func (d *Domain) MigrateSetCompressionCache(size uin= t64, flags uint32) error { func (d *Domain) MigrateGetMaxSpeed(flags uint32) (uint64, error) { var maxSpeed C.ulong =20 - ret :=3D C.virDomainMigrateGetMaxSpeed(d.ptr, &maxSpeed, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainMigrateGetMaxSpeedWrapper(d.ptr, &maxSpeed, C.uint(fl= ags), &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return uint64(maxSpeed), nil @@ -2424,9 +2505,10 @@ func (d *Domain) MigrateGetMaxSpeed(flags uint32) (u= int64, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= MigrateSetMaxSpeed func (d *Domain) MigrateSetMaxSpeed(speed uint64, flags uint32) error { - ret :=3D C.virDomainMigrateSetMaxSpeed(d.ptr, C.ulong(speed), C.uint(flag= s)) + var err C.virError + ret :=3D C.virDomainMigrateSetMaxSpeedWrapper(d.ptr, C.ulong(speed), C.ui= nt(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2434,9 +2516,10 @@ func (d *Domain) MigrateSetMaxSpeed(speed uint64, fl= ags uint32) error { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= MigrateSetMaxDowntime func (d *Domain) MigrateSetMaxDowntime(downtime uint64, flags uint32) erro= r { - ret :=3D C.virDomainMigrateSetMaxDowntime(d.ptr, C.ulonglong(downtime), C= .uint(flags)) + var err C.virError + ret :=3D C.virDomainMigrateSetMaxDowntimeWrapper(d.ptr, C.ulonglong(downt= ime), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2450,9 +2533,10 @@ func (d *Domain) MigrateGetMaxDowntime(flags uint32)= (uint64, error) { return 0, GetNotImplementedError("virDomainMigrateGetMaxDowntime") } =20 - ret :=3D C.virDomainMigrateGetMaxDowntimeWrapper(d.ptr, &downtimeLen, C.u= int(flags)) + var err C.virError + ret :=3D C.virDomainMigrateGetMaxDowntimeWrapper(d.ptr, &downtimeLen, C.u= int(flags), &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return uint64(downtimeLen), nil @@ -2464,9 +2548,10 @@ func (d *Domain) MigrateStartPostCopy(flags uint32) = error { return GetNotImplementedError("virDomainMigrateStartPostCopy") } =20 - ret :=3D C.virDomainMigrateStartPostCopyWrapper(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainMigrateStartPostCopyWrapper(d.ptr, C.uint(flags), &er= r) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -2522,22 +2607,23 @@ func (d *Domain) GetBlkioParameters(flags DomainMod= ificationImpact) (*DomainBlki info :=3D getBlkioParametersFieldInfo(params) =20 var nparams C.int - ret :=3D C.virDomainGetBlkioParameters(d.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetBlkioParametersWrapper(d.ptr, nil, &nparams, 0, &e= rr) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetBlkioParameters(d.ptr, (*C.virTypedParameter)(unsaf= e.Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virDomainGetBlkioParametersWrapper(d.ptr, (*C.virTypedParameter= )(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -2549,25 +2635,26 @@ func (d *Domain) SetBlkioParameters(params *DomainB= lkioParameters, flags DomainM =20 var nparams C.int =20 - ret :=3D C.virDomainGetBlkioParameters(d.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetBlkioParametersWrapper(d.ptr, nil, &nparams, 0, &e= rr) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetBlkioParameters(d.ptr, (*C.virTypedParameter)(unsaf= e.Pointer(&cparams[0])), &nparams, 0) + ret =3D C.virDomainGetBlkioParametersWrapper(d.ptr, (*C.virTypedParameter= )(unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetBlkioParameters(d.ptr, (*C.virTypedParameter)(unsaf= e.Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virDomainSetBlkioParametersWrapper(d.ptr, (*C.virTypedParameter= )(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } @@ -2709,22 +2796,23 @@ func (d *Domain) GetBlockIoTune(disk string, flags = DomainModificationImpact) (*D info :=3D getBlockIoTuneParametersFieldInfo(params) =20 var nparams C.int - ret :=3D C.virDomainGetBlockIoTune(d.ptr, cdisk, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetBlockIoTuneWrapper(d.ptr, cdisk, nil, &nparams, 0,= &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetBlockIoTune(d.ptr, cdisk, (*C.virTypedParameter)(un= safe.Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virDomainGetBlockIoTuneWrapper(d.ptr, cdisk, (*C.virTypedParame= ter)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -2739,25 +2827,26 @@ func (d *Domain) SetBlockIoTune(disk string, params= *DomainBlockIoTuneParameters =20 var nparams C.int =20 - ret :=3D C.virDomainGetBlockIoTune(d.ptr, cdisk, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetBlockIoTuneWrapper(d.ptr, cdisk, nil, &nparams, 0,= &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetBlockIoTune(d.ptr, cdisk, (*C.virTypedParameter)(un= safe.Pointer(&cparams[0])), &nparams, 0) + ret =3D C.virDomainGetBlockIoTuneWrapper(d.ptr, cdisk, (*C.virTypedParame= ter)(unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetBlockIoTune(d.ptr, cdisk, (*C.virTypedParameter)(un= safe.Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virDomainSetBlockIoTuneWrapper(d.ptr, cdisk, (*C.virTypedParame= ter)(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } @@ -2776,10 +2865,11 @@ func (d *Domain) GetBlockJobInfo(disk string, flags= DomainBlockJobInfoFlags) (*D =20 var cinfo C.virDomainBlockJobInfo =20 - ret :=3D C.virDomainGetBlockJobInfo(d.ptr, cdisk, &cinfo, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetBlockJobInfoWrapper(d.ptr, cdisk, &cinfo, C.uint(f= lags), &err) =20 if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &DomainBlockJobInfo{ @@ -2801,9 +2891,10 @@ func (d *Domain) GetControlInfo(flags uint32) (*Doma= inControlInfo, error) { =20 var cinfo C.virDomainControlInfo =20 - ret :=3D C.virDomainGetControlInfo(d.ptr, &cinfo, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetControlInfoWrapper(d.ptr, &cinfo, C.uint(flags), &= err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &DomainControlInfo{ @@ -2820,17 +2911,18 @@ type DomainDiskError struct { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetDiskErrors func (d *Domain) GetDiskErrors(flags uint32) ([]DomainDiskError, error) { - ret :=3D C.virDomainGetDiskErrors(d.ptr, nil, 0, 0) + var err C.virError + ret :=3D C.virDomainGetDiskErrorsWrapper(d.ptr, nil, 0, 0, &err) if ret =3D=3D -1 { - return []DomainDiskError{}, GetLastError() + return []DomainDiskError{}, makeError(&err) } =20 maxerrors :=3D ret cerrors :=3D make([]C.virDomainDiskError, maxerrors) =20 - ret =3D C.virDomainGetDiskErrors(d.ptr, (*C.virDomainDiskError)(unsafe.Po= inter(&cerrors[0])), C.uint(maxerrors), C.uint(flags)) + ret =3D C.virDomainGetDiskErrorsWrapper(d.ptr, (*C.virDomainDiskError)(un= safe.Pointer(&cerrors[0])), C.uint(maxerrors), C.uint(flags), &err) if ret =3D=3D -1 { - return []DomainDiskError{}, GetLastError() + return []DomainDiskError{}, makeError(&err) } =20 errors :=3D make([]DomainDiskError, maxerrors) @@ -2848,9 +2940,10 @@ func (d *Domain) GetDiskErrors(flags uint32) ([]Doma= inDiskError, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetHostname func (d *Domain) GetHostname(flags uint32) (string, error) { - ret :=3D C.virDomainGetHostname(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetHostnameWrapper(d.ptr, C.uint(flags), &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -2926,9 +3019,10 @@ type DomainJobInfo struct { func (d *Domain) GetJobInfo() (*DomainJobInfo, error) { var cinfo C.virDomainJobInfo =20 - ret :=3D C.virDomainGetJobInfo(d.ptr, &cinfo) + var err C.virError + ret :=3D C.virDomainGetJobInfoWrapper(d.ptr, &cinfo, &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &DomainJobInfo{ @@ -3088,18 +3182,19 @@ func (d *Domain) GetJobStats(flags DomainGetJobStat= sFlags) (*DomainJobInfo, erro var cparams *C.virTypedParameter var nparams C.int var jobtype C.int - ret :=3D C.virDomainGetJobStats(d.ptr, &jobtype, (*C.virTypedParameterPtr= )(unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetJobStatsWrapper(d.ptr, &jobtype, (*C.virTypedParam= eterPtr)(unsafe.Pointer(&cparams)), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } defer C.virTypedParamsFree(cparams, nparams) =20 params :=3D DomainJobInfo{} info :=3D getDomainJobInfoFieldInfo(¶ms) =20 - _, err :=3D typedParamsUnpackLen(cparams, int(nparams), info) - if err !=3D nil { - return nil, GetLastError() + _, gerr :=3D typedParamsUnpackLen(cparams, int(nparams), info) + if gerr !=3D nil { + return nil, gerr } =20 return ¶ms, nil @@ -3107,9 +3202,10 @@ func (d *Domain) GetJobStats(flags DomainGetJobStats= Flags) (*DomainJobInfo, erro =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetMaxMemory func (d *Domain) GetMaxMemory() (uint64, error) { - ret :=3D C.virDomainGetMaxMemory(d.ptr) + var err C.virError + ret :=3D C.virDomainGetMaxMemoryWrapper(d.ptr, &err) if ret =3D=3D 0 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return uint64(ret), nil @@ -3117,9 +3213,10 @@ func (d *Domain) GetMaxMemory() (uint64, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetMaxVcpus func (d *Domain) GetMaxVcpus() (uint, error) { - ret :=3D C.virDomainGetMaxVcpus(d.ptr) + var err C.virError + ret :=3D C.virDomainGetMaxVcpusWrapper(d.ptr, &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return uint(ret), nil @@ -3127,9 +3224,10 @@ func (d *Domain) GetMaxVcpus() (uint, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetOSType func (d *Domain) GetOSType() (string, error) { - ret :=3D C.virDomainGetOSType(d.ptr) + var err C.virError + ret :=3D C.virDomainGetOSTypeWrapper(d.ptr, &err) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 defer C.free(unsafe.Pointer(ret)) @@ -3175,22 +3273,23 @@ func (d *Domain) GetMemoryParameters(flags DomainMo= dificationImpact) (*DomainMem info :=3D getDomainMemoryParametersFieldInfo(params) =20 var nparams C.int - ret :=3D C.virDomainGetMemoryParameters(d.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetMemoryParametersWrapper(d.ptr, nil, &nparams, 0, &= err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetMemoryParameters(d.ptr, (*C.virTypedParameter)(unsa= fe.Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virDomainGetMemoryParametersWrapper(d.ptr, (*C.virTypedParamete= r)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -3202,25 +3301,26 @@ func (d *Domain) SetMemoryParameters(params *Domain= MemoryParameters, flags Domai =20 var nparams C.int =20 - ret :=3D C.virDomainGetMemoryParameters(d.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetMemoryParametersWrapper(d.ptr, nil, &nparams, 0, &= err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetMemoryParameters(d.ptr, (*C.virTypedParameter)(unsa= fe.Pointer(&cparams[0])), &nparams, 0) + ret =3D C.virDomainGetMemoryParametersWrapper(d.ptr, (*C.virTypedParamete= r)(unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetMemoryParameters(d.ptr, (*C.virTypedParameter)(unsa= fe.Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virDomainSetMemoryParametersWrapper(d.ptr, (*C.virTypedParamete= r)(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } @@ -3251,22 +3351,23 @@ func (d *Domain) GetNumaParameters(flags DomainModi= ficationImpact) (*DomainNumaP info :=3D getDomainNumaParametersFieldInfo(params) =20 var nparams C.int - ret :=3D C.virDomainGetNumaParameters(d.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetNumaParametersWrapper(d.ptr, nil, &nparams, 0, &er= r) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetNumaParameters(d.ptr, (*C.virTypedParameter)(unsafe= .Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret =3D C.virDomainGetNumaParametersWrapper(d.ptr, (*C.virTypedParameter)= (unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -3278,25 +3379,26 @@ func (d *Domain) SetNumaParameters(params *DomainNu= maParameters, flags DomainMod =20 var nparams C.int =20 - ret :=3D C.virDomainGetNumaParameters(d.ptr, nil, &nparams, 0) + var err C.virError + ret :=3D C.virDomainGetNumaParametersWrapper(d.ptr, nil, &nparams, 0, &er= r) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret =3D C.virDomainGetNumaParameters(d.ptr, (*C.virTypedParameter)(unsafe= .Pointer(&cparams[0])), &nparams, 0) + ret =3D C.virDomainGetNumaParametersWrapper(d.ptr, (*C.virTypedParameter)= (unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetNumaParameters(d.ptr, (*C.virTypedParameter)(unsafe= .Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virDomainSetNumaParametersWrapper(d.ptr, (*C.virTypedParameter)= (unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } @@ -3454,16 +3556,17 @@ func (d *Domain) GetPerfEvents(flags DomainModifica= tionImpact) (*DomainPerfEvent =20 var cparams *C.virTypedParameter var nparams C.int - ret :=3D C.virDomainGetPerfEventsWrapper(d.ptr, (*C.virTypedParameterPtr)= (unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetPerfEventsWrapper(d.ptr, (*C.virTypedParameterPtr)= (unsafe.Pointer(&cparams)), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsFree(cparams, nparams) =20 - _, err :=3D typedParamsUnpackLen(cparams, int(nparams), info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpackLen(cparams, int(nparams), info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -3479,19 +3582,20 @@ func (d *Domain) SetPerfEvents(params *DomainPerfEv= ents, flags DomainModificatio =20 var cparams *C.virTypedParameter var nparams C.int - ret :=3D C.virDomainGetPerfEventsWrapper(d.ptr, (*C.virTypedParameterPtr)= (unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetPerfEventsWrapper(d.ptr, (*C.virTypedParameterPtr)= (unsafe.Pointer(&cparams)), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 defer C.virTypedParamsFree(cparams, nparams) =20 - err :=3D typedParamsPackLen(cparams, int(nparams), info) - if err !=3D nil { - return err + gerr :=3D typedParamsPackLen(cparams, int(nparams), info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetPerfEventsWrapper(d.ptr, cparams, nparams, C.uint(f= lags)) + ret =3D C.virDomainSetPerfEventsWrapper(d.ptr, cparams, nparams, C.uint(f= lags), &err) =20 return nil } @@ -3595,9 +3699,10 @@ func (d *Domain) GetSchedulerParameters() (*DomainSc= hedulerParameters, error) { info :=3D getDomainSchedulerParametersFieldInfo(params) =20 var nparams C.int - schedtype :=3D C.virDomainGetSchedulerType(d.ptr, &nparams) + var err C.virError + schedtype :=3D C.virDomainGetSchedulerTypeWrapper(d.ptr, &nparams, &err) if schedtype =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.free(unsafe.Pointer(schedtype)) @@ -3608,15 +3713,15 @@ func (d *Domain) GetSchedulerParameters() (*DomainS= chedulerParameters, error) { } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret :=3D C.virDomainGetSchedulerParameters(d.ptr, (*C.virTypedParameter)(= unsafe.Pointer(&cparams[0])), &nparams) + ret :=3D C.virDomainGetSchedulerParametersWrapper(d.ptr, (*C.virTypedPara= meter)(unsafe.Pointer(&cparams[0])), &nparams, &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -3628,9 +3733,10 @@ func (d *Domain) GetSchedulerParametersFlags(flags D= omainModificationImpact) (*D info :=3D getDomainSchedulerParametersFieldInfo(params) =20 var nparams C.int - schedtype :=3D C.virDomainGetSchedulerType(d.ptr, &nparams) + var err C.virError + schedtype :=3D C.virDomainGetSchedulerTypeWrapper(d.ptr, &nparams, &err) if schedtype =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.free(unsafe.Pointer(schedtype)) @@ -3641,15 +3747,15 @@ func (d *Domain) GetSchedulerParametersFlags(flags = DomainModificationImpact) (*D } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret :=3D C.virDomainGetSchedulerParametersFlags(d.ptr, (*C.virTypedParame= ter)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags)) + ret :=3D C.virDomainGetSchedulerParametersFlagsWrapper(d.ptr, (*C.virType= dParameter)(unsafe.Pointer(&cparams[0])), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - _, err :=3D typedParamsUnpack(cparams, info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpack(cparams, info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil @@ -3660,9 +3766,10 @@ func (d *Domain) SetSchedulerParameters(params *Doma= inSchedulerParameters) error info :=3D getDomainSchedulerParametersFieldInfo(params) =20 var nparams C.int - schedtype :=3D C.virDomainGetSchedulerType(d.ptr, &nparams) + var err C.virError + schedtype :=3D C.virDomainGetSchedulerTypeWrapper(d.ptr, &nparams, &err) if schedtype =3D=3D nil { - return GetLastError() + return makeError(&err) } =20 defer C.free(unsafe.Pointer(schedtype)) @@ -3671,18 +3778,18 @@ func (d *Domain) SetSchedulerParameters(params *Dom= ainSchedulerParameters) error } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret :=3D C.virDomainGetSchedulerParameters(d.ptr, (*C.virTypedParameter)(= unsafe.Pointer(&cparams[0])), &nparams) + ret :=3D C.virDomainGetSchedulerParametersWrapper(d.ptr, (*C.virTypedPara= meter)(unsafe.Pointer(&cparams[0])), &nparams, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetSchedulerParameters(d.ptr, (*C.virTypedParameter)(u= nsafe.Pointer(&cparams[0])), nparams) + ret =3D C.virDomainSetSchedulerParametersWrapper(d.ptr, (*C.virTypedParam= eter)(unsafe.Pointer(&cparams[0])), nparams, &err) =20 return nil } @@ -3692,9 +3799,10 @@ func (d *Domain) SetSchedulerParametersFlags(params = *DomainSchedulerParameters, info :=3D getDomainSchedulerParametersFieldInfo(params) =20 var nparams C.int - schedtype :=3D C.virDomainGetSchedulerType(d.ptr, &nparams) + var err C.virError + schedtype :=3D C.virDomainGetSchedulerTypeWrapper(d.ptr, &nparams, &err) if schedtype =3D=3D nil { - return GetLastError() + return makeError(&err) } =20 defer C.free(unsafe.Pointer(schedtype)) @@ -3703,18 +3811,18 @@ func (d *Domain) SetSchedulerParametersFlags(params= *DomainSchedulerParameters, } =20 cparams :=3D make([]C.virTypedParameter, nparams) - ret :=3D C.virDomainGetSchedulerParametersFlags(d.ptr, (*C.virTypedParame= ter)(unsafe.Pointer(&cparams[0])), &nparams, 0) + ret :=3D C.virDomainGetSchedulerParametersFlagsWrapper(d.ptr, (*C.virType= dParameter)(unsafe.Pointer(&cparams[0])), &nparams, 0, &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } defer C.virTypedParamsClear((*C.virTypedParameter)(unsafe.Pointer(&cparam= s[0])), nparams) =20 - err :=3D typedParamsPack(cparams, info) - if err !=3D nil { - return err + gerr :=3D typedParamsPack(cparams, info) + if gerr !=3D nil { + return gerr } =20 - ret =3D C.virDomainSetSchedulerParametersFlags(d.ptr, (*C.virTypedParamet= er)(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags)) + ret =3D C.virDomainSetSchedulerParametersFlagsWrapper(d.ptr, (*C.virTyped= Parameter)(unsafe.Pointer(&cparams[0])), nparams, C.uint(flags), &err) =20 return nil } @@ -3728,9 +3836,10 @@ type SecurityLabel struct { func (d *Domain) GetSecurityLabel() (*SecurityLabel, error) { var clabel C.virSecurityLabel =20 - ret :=3D C.virDomainGetSecurityLabel(d.ptr, &clabel) + var err C.virError + ret :=3D C.virDomainGetSecurityLabelWrapper(d.ptr, &clabel, &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return &SecurityLabel{ @@ -3743,9 +3852,10 @@ func (d *Domain) GetSecurityLabel() (*SecurityLabel,= error) { func (d *Domain) GetSecurityLabelList() ([]SecurityLabel, error) { var clabels *C.virSecurityLabel =20 - ret :=3D C.virDomainGetSecurityLabelList(d.ptr, (*C.virSecurityLabelPtr)(= unsafe.Pointer(&clabels))) + var err C.virError + ret :=3D C.virDomainGetSecurityLabelListWrapper(d.ptr, (*C.virSecurityLab= elPtr)(unsafe.Pointer(&clabels)), &err) if ret =3D=3D -1 { - return []SecurityLabel{}, GetLastError() + return []SecurityLabel{}, makeError(&err) } =20 labels :=3D make([]SecurityLabel, ret) @@ -3768,9 +3878,10 @@ func (d *Domain) GetTime(flags uint32) (int64, uint,= error) { } var secs C.longlong var nsecs C.uint - ret :=3D C.virDomainGetTimeWrapper(d.ptr, &secs, &nsecs, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetTimeWrapper(d.ptr, &secs, &nsecs, C.uint(flags), &= err) if ret =3D=3D -1 { - return 0, 0, GetLastError() + return 0, 0, makeError(&err) } =20 return int64(secs), uint(nsecs), nil @@ -3782,9 +3893,10 @@ func (d *Domain) SetTime(secs int64, nsecs uint, fla= gs DomainSetTimeFlags) error return GetNotImplementedError("virDomainSetTime") } =20 - ret :=3D C.virDomainSetTimeWrapper(d.ptr, C.longlong(secs), C.uint(nsecs)= , C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSetTimeWrapper(d.ptr, C.longlong(secs), C.uint(nsecs)= , C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3801,9 +3913,10 @@ func (d *Domain) SetUserPassword(user string, passwo= rd string, flags DomainSetUs defer C.free(unsafe.Pointer(cuser)) defer C.free(unsafe.Pointer(cpassword)) =20 - ret :=3D C.virDomainSetUserPasswordWrapper(d.ptr, cuser, cpassword, C.uin= t(flags)) + var err C.virError + ret :=3D C.virDomainSetUserPasswordWrapper(d.ptr, cuser, cpassword, C.uin= t(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3811,9 +3924,10 @@ func (d *Domain) SetUserPassword(user string, passwo= rd string, flags DomainSetUs =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= ManagedSave func (d *Domain) ManagedSave(flags DomainSaveRestoreFlags) error { - ret :=3D C.virDomainManagedSave(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainManagedSaveWrapper(d.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3821,9 +3935,10 @@ func (d *Domain) ManagedSave(flags DomainSaveRestore= Flags) error { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= HasManagedSaveImage func (d *Domain) HasManagedSaveImage(flags uint32) (bool, error) { - result :=3D C.virDomainHasManagedSaveImage(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainHasManagedSaveImageWrapper(d.ptr, C.uint(flags), &= err) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -3833,9 +3948,10 @@ func (d *Domain) HasManagedSaveImage(flags uint32) (= bool, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= ManagedSaveRemove func (d *Domain) ManagedSaveRemove(flags uint32) error { - ret :=3D C.virDomainManagedSaveRemove(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainManagedSaveRemoveWrapper(d.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3848,9 +3964,10 @@ func (d *Domain) Rename(name string, flags uint32) e= rror { } cname :=3D C.CString(name) defer C.free(unsafe.Pointer(cname)) - ret :=3D C.virDomainRenameWrapper(d.ptr, cname, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainRenameWrapper(d.ptr, cname, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3858,9 +3975,10 @@ func (d *Domain) Rename(name string, flags uint32) e= rror { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Reset func (d *Domain) Reset(flags uint32) error { - ret :=3D C.virDomainReset(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainResetWrapper(d.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3868,9 +3986,10 @@ func (d *Domain) Reset(flags uint32) error { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SendProcessSignal func (d *Domain) SendProcessSignal(pid int64, signum DomainProcessSignal, = flags uint32) error { - ret :=3D C.virDomainSendProcessSignal(d.ptr, C.longlong(pid), C.uint(sign= um), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSendProcessSignalWrapper(d.ptr, C.longlong(pid), C.ui= nt(signum), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3878,9 +3997,10 @@ func (d *Domain) SendProcessSignal(pid int64, signum= DomainProcessSignal, flags =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= InjectNMI func (d *Domain) InjectNMI(flags uint32) error { - ret :=3D C.virDomainInjectNMI(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainInjectNMIWrapper(d.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3891,9 +4011,10 @@ func (d *Domain) CoreDump(to string, flags DomainCor= eDumpFlags) error { cto :=3D C.CString(to) defer C.free(unsafe.Pointer(cto)) =20 - ret :=3D C.virDomainCoreDump(d.ptr, cto, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainCoreDumpWrapper(d.ptr, cto, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3907,9 +4028,10 @@ func (d *Domain) CoreDumpWithFormat(to string, forma= t DomainCoreDumpFormat, flag cto :=3D C.CString(to) defer C.free(unsafe.Pointer(cto)) =20 - ret :=3D C.virDomainCoreDumpWithFormatWrapper(d.ptr, cto, C.uint(format),= C.uint(flags)) + var err C.virError + ret :=3D C.virDomainCoreDumpWithFormatWrapper(d.ptr, cto, C.uint(format),= C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3917,9 +4039,10 @@ func (d *Domain) CoreDumpWithFormat(to string, forma= t DomainCoreDumpFormat, flag =20 // See also https://libvirt.org/html/libvirt-libvirt-domain-snapshot.html#= virDomainHasCurrentSnapshot func (d *Domain) HasCurrentSnapshot(flags uint32) (bool, error) { - result :=3D C.virDomainHasCurrentSnapshot(d.ptr, C.uint(flags)) + var err C.virError + result :=3D C.virDomainHasCurrentSnapshotWrapper(d.ptr, C.uint(flags), &e= rr) if result =3D=3D -1 { - return false, GetLastError() + return false, makeError(&err) } if result =3D=3D 1 { return true, nil @@ -3940,9 +4063,10 @@ func (d *Domain) FSFreeze(mounts []string, flags uin= t32) error { } =20 nmounts :=3D len(mounts) - ret :=3D C.virDomainFSFreezeWrapper(d.ptr, (**C.char)(unsafe.Pointer(&cmo= unts[0])), C.uint(nmounts), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainFSFreezeWrapper(d.ptr, (**C.char)(unsafe.Pointer(&cmo= unts[0])), C.uint(nmounts), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3961,9 +4085,10 @@ func (d *Domain) FSThaw(mounts []string, flags uint3= 2) error { } =20 nmounts :=3D len(mounts) - ret :=3D C.virDomainFSThawWrapper(d.ptr, (**C.char)(unsafe.Pointer(&cmoun= ts[0])), C.uint(nmounts), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainFSThawWrapper(d.ptr, (**C.char)(unsafe.Pointer(&cmoun= ts[0])), C.uint(nmounts), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3977,9 +4102,10 @@ func (d *Domain) FSTrim(mount string, minimum uint64= , flags uint32) error { defer C.free(unsafe.Pointer(cmount)) } =20 - ret :=3D C.virDomainFSTrim(d.ptr, cmount, C.ulonglong(minimum), C.uint(fl= ags)) + var err C.virError + ret :=3D C.virDomainFSTrimWrapper(d.ptr, cmount, C.ulonglong(minimum), C.= uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -3999,9 +4125,10 @@ func (d *Domain) GetFSInfo(flags uint32) ([]DomainFS= Info, error) { } var cfsinfolist **C.virDomainFSInfo =20 - ret :=3D C.virDomainGetFSInfoWrapper(d.ptr, (**C.virDomainFSInfoPtr)(unsa= fe.Pointer(&cfsinfolist)), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetFSInfoWrapper(d.ptr, (**C.virDomainFSInfoPtr)(unsa= fe.Pointer(&cfsinfolist)), C.uint(flags), &err) if ret =3D=3D -1 { - return []DomainFSInfo{}, GetLastError() + return []DomainFSInfo{}, makeError(&err) } =20 fsinfo :=3D make([]DomainFSInfo, int(ret)) @@ -4030,9 +4157,10 @@ func (d *Domain) GetFSInfo(flags uint32) ([]DomainFS= Info, error) { =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= PMSuspendForDuration func (d *Domain) PMSuspendForDuration(target NodeSuspendTarget, duration u= int64, flags uint32) error { - ret :=3D C.virDomainPMSuspendForDuration(d.ptr, C.uint(target), C.ulonglo= ng(duration), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainPMSuspendForDurationWrapper(d.ptr, C.uint(target), C.= ulonglong(duration), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4040,9 +4168,10 @@ func (d *Domain) PMSuspendForDuration(target NodeSus= pendTarget, duration uint64, =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= PMWakeup func (d *Domain) PMWakeup(flags uint32) error { - ret :=3D C.virDomainPMWakeup(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainPMWakeupWrapper(d.ptr, C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4053,9 +4182,10 @@ func (d *Domain) AddIOThread(id uint, flags DomainMo= dificationImpact) error { if C.LIBVIR_VERSION_NUMBER < 1002015 { return GetNotImplementedError("virDomainAddIOThread") } - ret :=3D C.virDomainAddIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainAddIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags), = &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4066,9 +4196,10 @@ func (d *Domain) DelIOThread(id uint, flags DomainMo= dificationImpact) error { if C.LIBVIR_VERSION_NUMBER < 1002015 { return GetNotImplementedError("virDomainDelIOThread") } - ret :=3D C.virDomainDelIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainDelIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags), = &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4077,17 +4208,18 @@ func (d *Domain) DelIOThread(id uint, flags DomainM= odificationImpact) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetEmulatorPinInfo func (d *Domain) GetEmulatorPinInfo(flags DomainModificationImpact) ([]boo= l, error) { var cnodeinfo C.virNodeInfo - ret :=3D C.virNodeGetInfo(C.virDomainGetConnect(d.ptr), &cnodeinfo) + var err C.virError + ret :=3D C.virNodeGetInfoWrapper(C.virDomainGetConnect(d.ptr), &cnodeinfo= , &err) if ret =3D=3D -1 { - return []bool{}, GetLastError() + return []bool{}, makeError(&err) } =20 ncpus :=3D cnodeinfo.nodes * cnodeinfo.sockets * cnodeinfo.cores * cnodei= nfo.threads maplen :=3D int((ncpus + 7) / 8) ccpumaps :=3D make([]C.uchar, maplen) - ret =3D C.virDomainGetEmulatorPinInfo(d.ptr, &ccpumaps[0], C.int(maplen),= C.uint(flags)) + ret =3D C.virDomainGetEmulatorPinInfoWrapper(d.ptr, &ccpumaps[0], C.int(m= aplen), C.uint(flags), &err) if ret =3D=3D -1 { - return []bool{}, GetLastError() + return []bool{}, makeError(&err) } =20 cpumaps :=3D make([]bool, ncpus) @@ -4112,9 +4244,10 @@ func (d *Domain) GetIOThreadInfo(flags DomainModific= ationImpact) ([]DomainIOThre } var cinfolist **C.virDomainIOThreadInfo =20 - ret :=3D C.virDomainGetIOThreadInfoWrapper(d.ptr, (**C.virDomainIOThreadI= nfoPtr)(unsafe.Pointer(&cinfolist)), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetIOThreadInfoWrapper(d.ptr, (**C.virDomainIOThreadI= nfoPtr)(unsafe.Pointer(&cinfolist)), C.uint(flags), &err) if ret =3D=3D -1 { - return []DomainIOThreadInfo{}, GetLastError() + return []DomainIOThreadInfo{}, makeError(&err) } =20 info :=3D make([]DomainIOThreadInfo, int(ret)) @@ -4147,15 +4280,16 @@ func (d *Domain) GetIOThreadInfo(flags DomainModifi= cationImpact) ([]DomainIOThre // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetVcpuPinInfo func (d *Domain) GetVcpuPinInfo(flags DomainModificationImpact) ([][]bool,= error) { var cnodeinfo C.virNodeInfo - ret :=3D C.virNodeGetInfo(C.virDomainGetConnect(d.ptr), &cnodeinfo) + var err C.virError + ret :=3D C.virNodeGetInfoWrapper(C.virDomainGetConnect(d.ptr), &cnodeinfo= , &err) if ret =3D=3D -1 { - return [][]bool{}, GetLastError() + return [][]bool{}, makeError(&err) } =20 var cdominfo C.virDomainInfo - ret =3D C.virDomainGetInfo(d.ptr, &cdominfo) + ret =3D C.virDomainGetInfoWrapper(d.ptr, &cdominfo, &err) if ret =3D=3D -1 { - return [][]bool{}, GetLastError() + return [][]bool{}, makeError(&err) } =20 nvcpus :=3D int(cdominfo.nrVirtCpu) @@ -4163,9 +4297,9 @@ func (d *Domain) GetVcpuPinInfo(flags DomainModificat= ionImpact) ([][]bool, error maplen :=3D ((npcpus + 7) / 8) ccpumaps :=3D make([]C.uchar, maplen*nvcpus) =20 - ret =3D C.virDomainGetVcpuPinInfo(d.ptr, C.int(nvcpus), &ccpumaps[0], C.i= nt(maplen), C.uint(flags)) + ret =3D C.virDomainGetVcpuPinInfoWrapper(d.ptr, C.int(nvcpus), &ccpumaps[= 0], C.int(maplen), C.uint(flags), &err) if ret =3D=3D -1 { - return [][]bool{}, GetLastError() + return [][]bool{}, makeError(&err) } =20 cpumaps :=3D make([][]bool, nvcpus) @@ -4198,9 +4332,10 @@ func (d *Domain) PinEmulator(cpumap []bool, flags Do= mainModificationImpact) erro } } =20 - ret :=3D C.virDomainPinEmulator(d.ptr, &ccpumaps[0], C.int(maplen), C.uin= t(flags)) + var err C.virError + ret :=3D C.virDomainPinEmulatorWrapper(d.ptr, &ccpumaps[0], C.int(maplen)= , C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4223,9 +4358,10 @@ func (d *Domain) PinIOThread(iothreadid uint, cpumap= []bool, flags DomainModific } } =20 - ret :=3D C.virDomainPinIOThreadWrapper(d.ptr, C.uint(iothreadid), &ccpuma= ps[0], C.int(maplen), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainPinIOThreadWrapper(d.ptr, C.uint(iothreadid), &ccpuma= ps[0], C.int(maplen), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4236,9 +4372,10 @@ func (d *Domain) OpenChannel(name string, stream *St= ream, flags DomainChannelFla cname :=3D C.CString(name) defer C.free(unsafe.Pointer(cname)) =20 - ret :=3D C.virDomainOpenChannel(d.ptr, cname, stream.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainOpenChannelWrapper(d.ptr, cname, stream.ptr, C.uint(f= lags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4252,9 +4389,10 @@ func (d *Domain) OpenConsole(devname string, stream = *Stream, flags DomainConsole defer C.free(unsafe.Pointer(cdevname)) } =20 - ret :=3D C.virDomainOpenConsole(d.ptr, cdevname, stream.ptr, C.uint(flags= )) + var err C.virError + ret :=3D C.virDomainOpenConsoleWrapper(d.ptr, cdevname, stream.ptr, C.uin= t(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4262,9 +4400,10 @@ func (d *Domain) OpenConsole(devname string, stream = *Stream, flags DomainConsole =20 // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= OpenGraphics func (d *Domain) OpenGraphics(idx uint, file os.File, flags DomainOpenGrap= hicsFlags) error { - ret :=3D C.virDomainOpenGraphics(d.ptr, C.uint(idx), C.int(file.Fd()), C.= uint(flags)) + var err C.virError + ret :=3D C.virDomainOpenGraphicsWrapper(d.ptr, C.uint(idx), C.int(file.Fd= ()), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4275,9 +4414,10 @@ func (d *Domain) OpenGraphicsFD(idx uint, flags Doma= inOpenGraphicsFlags) (*os.Fi if C.LIBVIR_VERSION_NUMBER < 1002008 { return nil, GetNotImplementedError("virDomainOpenGraphicsFD") } - ret :=3D C.virDomainOpenGraphicsFDWrapper(d.ptr, C.uint(idx), C.uint(flag= s)) + var err C.virError + ret :=3D C.virDomainOpenGraphicsFDWrapper(d.ptr, C.uint(idx), C.uint(flag= s), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 return os.NewFile(uintptr(ret), "graphics"), nil @@ -4287,9 +4427,10 @@ func (d *Domain) OpenGraphicsFD(idx uint, flags Doma= inOpenGraphicsFlags) (*os.Fi func (d *Domain) CreateSnapshotXML(xml string, flags DomainSnapshotCreateF= lags) (*DomainSnapshot, error) { cXml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cXml)) - result :=3D C.virDomainSnapshotCreateXML(d.ptr, cXml, C.uint(flags)) + var err C.virError + result :=3D C.virDomainSnapshotCreateXMLWrapper(d.ptr, cXml, C.uint(flags= ), &err) if result =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &DomainSnapshot{ptr: result}, nil } @@ -4298,9 +4439,10 @@ func (d *Domain) CreateSnapshotXML(xml string, flags= DomainSnapshotCreateFlags) func (d *Domain) Save(destFile string) error { cPath :=3D C.CString(destFile) defer C.free(unsafe.Pointer(cPath)) - result :=3D C.virDomainSave(d.ptr, cPath) + var err C.virError + result :=3D C.virDomainSaveWrapper(d.ptr, cPath, &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -4311,9 +4453,10 @@ func (d *Domain) SaveFlags(destFile string, destXml = string, flags DomainSaveRest cDestXml :=3D C.CString(destXml) defer C.free(unsafe.Pointer(cDestXml)) defer C.free(unsafe.Pointer(cDestFile)) - result :=3D C.virDomainSaveFlags(d.ptr, cDestFile, cDestXml, C.uint(flags= )) + var err C.virError + result :=3D C.virDomainSaveFlagsWrapper(d.ptr, cDestFile, cDestXml, C.uin= t(flags), &err) if result =3D=3D -1 { - return GetLastError() + return makeError(&err) } return nil } @@ -4410,16 +4553,17 @@ func (d *Domain) GetGuestVcpus(flags uint32) (*Doma= inGuestVcpus, error) { =20 var cparams C.virTypedParameterPtr var nparams C.uint - ret :=3D C.virDomainGetGuestVcpusWrapper(d.ptr, &cparams, &nparams, C.uin= t(flags)) + var err C.virError + ret :=3D C.virDomainGetGuestVcpusWrapper(d.ptr, &cparams, &nparams, C.uin= t(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsFree(cparams, C.int(nparams)) =20 - _, err :=3D typedParamsUnpackLen(cparams, int(nparams), info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpackLen(cparams, int(nparams), info) + if gerr !=3D nil { + return nil, gerr } =20 return &DomainGuestVcpus{}, nil @@ -4450,9 +4594,10 @@ func (d *Domain) SetGuestVcpus(cpus []bool, state bo= ol, flags uint32) error { } ccpumap :=3D C.CString(cpumap) defer C.free(unsafe.Pointer(ccpumap)) - ret :=3D C.virDomainSetGuestVcpusWrapper(d.ptr, ccpumap, cstate, C.uint(f= lags)) + var err C.virError + ret :=3D C.virDomainSetGuestVcpusWrapper(d.ptr, ccpumap, cstate, C.uint(f= lags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4483,9 +4628,10 @@ func (d *Domain) SetVcpu(cpus []bool, state bool, fl= ags uint32) error { } ccpumap :=3D C.CString(cpumap) defer C.free(unsafe.Pointer(ccpumap)) - ret :=3D C.virDomainSetVcpuWrapper(d.ptr, ccpumap, cstate, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSetVcpuWrapper(d.ptr, ccpumap, cstate, C.uint(flags),= &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4499,9 +4645,10 @@ func (d *Domain) SetBlockThreshold(dev string, thres= hold uint64, flags uint32) e =20 cdev :=3D C.CString(dev) defer C.free(unsafe.Pointer(cdev)) - ret :=3D C.virDomainSetBlockThresholdWrapper(d.ptr, cdev, C.ulonglong(thr= eshold), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSetBlockThresholdWrapper(d.ptr, cdev, C.ulonglong(thr= eshold), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4515,9 +4662,10 @@ func (d *Domain) ManagedSaveDefineXML(xml string, fl= ags uint32) error { =20 cxml :=3D C.CString(xml) defer C.free(unsafe.Pointer(cxml)) - ret :=3D C.virDomainManagedSaveDefineXMLWrapper(d.ptr, cxml, C.uint(flags= )) + var err C.virError + ret :=3D C.virDomainManagedSaveDefineXMLWrapper(d.ptr, cxml, C.uint(flags= ), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4529,9 +4677,10 @@ func (d *Domain) ManagedSaveGetXMLDesc(flags uint32)= (string, error) { return "", GetNotImplementedError("virDomainManagedSaveGetXMLDesc") } =20 - ret :=3D C.virDomainManagedSaveGetXMLDescWrapper(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainManagedSaveGetXMLDescWrapper(d.ptr, C.uint(flags), &e= rr) if ret =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 xml :=3D C.GoString(ret) @@ -4564,9 +4713,10 @@ func (d *Domain) SetLifecycleAction(lifecycleType ui= nt32, action uint32, flags u return GetNotImplementedError("virDomainSetLifecycleAction") } =20 - ret :=3D C.virDomainSetLifecycleActionWrapper(d.ptr, C.uint(lifecycleType= ), C.uint(action), C.uint(flags)) + var err C.virError + ret :=3D C.virDomainSetLifecycleActionWrapper(d.ptr, C.uint(lifecycleType= ), C.uint(action), C.uint(flags), &err) if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil @@ -4598,16 +4748,17 @@ func (d *Domain) GetLaunchSecurityInfo(flags uint32= ) (*DomainLaunchSecurityParam var cparams *C.virTypedParameter var nparams C.int =20 - ret :=3D C.virDomainGetLaunchSecurityInfoWrapper(d.ptr, (*C.virTypedParam= eterPtr)(unsafe.Pointer(&cparams)), &nparams, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainGetLaunchSecurityInfoWrapper(d.ptr, (*C.virTypedParam= eterPtr)(unsafe.Pointer(&cparams)), &nparams, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 defer C.virTypedParamsFree(cparams, nparams) =20 - _, err :=3D typedParamsUnpackLen(cparams, int(nparams), info) - if err !=3D nil { - return nil, err + _, gerr :=3D typedParamsUnpackLen(cparams, int(nparams), info) + if gerr !=3D nil { + return nil, gerr } =20 return params, nil diff --git a/domain_wrapper.go b/domain_wrapper.go index 1596ae5..b42dd42 100644 --- a/domain_wrapper.go +++ b/domain_wrapper.go @@ -31,353 +31,2300 @@ package libvirt #include #include "domain_wrapper.h" =20 -int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, - const char *to, - unsigned int dumpformat, - unsigned int flags) +int +virDomainAbortJobWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainAbortJob(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainAddIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002015 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainAddIOThread(domain, iothread_id, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainAttachDeviceWrapper(virDomainPtr domain, + const char *xml, + virErrorPtr err) +{ + int ret =3D virDomainAttachDevice(domain, xml); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainAttachDeviceFlagsWrapper(virDomainPtr domain, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainAttachDeviceFlags(domain, xml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockCommitWrapper(virDomainPtr dom, + const char *disk, + const char *base, + const char *top, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockCommit(dom, disk, base, top, bandwidth, flag= s); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockCopyWrapper(virDomainPtr dom, + const char *disk, + const char *destxml, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002008 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainBlockCopy(dom, disk, destxml, params, nparams, fl= ags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainBlockJobAbortWrapper(virDomainPtr dom, + const char *disk, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockJobAbort(dom, disk, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockJobSetSpeedWrapper(virDomainPtr dom, + const char *disk, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockJobSetSpeed(dom, disk, bandwidth, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockPeekWrapper(virDomainPtr dom, + const char *disk, + unsigned long long offset, + size_t size, + void *buffer, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockPeek(dom, disk, offset, size, buffer, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockPullWrapper(virDomainPtr dom, + const char *disk, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockPull(dom, disk, bandwidth, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockRebaseWrapper(virDomainPtr dom, + const char *disk, + const char *base, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockRebase(dom, disk, base, bandwidth, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockResizeWrapper(virDomainPtr dom, + const char *disk, + unsigned long long size, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockResize(dom, disk, size, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockStatsWrapper(virDomainPtr dom, + const char *disk, + virDomainBlockStatsPtr stats, + size_t size, + virErrorPtr err) +{ + int ret =3D virDomainBlockStats(dom, disk, stats, size); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainBlockStatsFlagsWrapper(virDomainPtr dom, + const char *disk, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainBlockStatsFlags(dom, disk, params, nparams, flags= ); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainCoreDumpWrapper(virDomainPtr domain, + const char *to, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainCoreDump(domain, to, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, + const char *to, + unsigned int dumpformat, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002003 assert(0); // Caller should have checked version #else - return virDomainCoreDumpWithFormat(domain, to, dumpformat, flags); + int ret =3D virDomainCoreDumpWithFormat(domain, to, dumpformat, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainCreateWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainCreate(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainCreateWithFilesWrapper(virDomainPtr domain, + unsigned int nfiles, + int *files, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainCreateWithFiles(domain, nfiles, files, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainCreateWithFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainCreateWithFlags(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainDelIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002015 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainDelIOThread(domain, iothread_id, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainDestroyWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainDestroy(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainDestroyFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainDestroyFlags(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainDetachDeviceWrapper(virDomainPtr domain, + const char *xml, + virErrorPtr err) +{ + int ret =3D virDomainDetachDevice(domain, xml); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainDetachDeviceAliasWrapper(virDomainPtr domain, + const char *alias, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 4004000 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainDetachDeviceAlias(domain, alias, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainDetachDeviceFlagsWrapper(virDomainPtr domain, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainDetachDeviceFlags(domain, xml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainFSFreezeWrapper(virDomainPtr dom, + const char **mountpoints, + unsigned int nmountpoints, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002005 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainFSFreeze(dom, mountpoints, nmountpoints, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +void +virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info) +{ +#if LIBVIR_VERSION_NUMBER < 1002011 + assert(0); // Caller should have checked version +#else + virDomainFSInfoFree(info); +#endif +} + + +int +virDomainFSThawWrapper(virDomainPtr dom, + const char **mountpoints, + unsigned int nmountpoints, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002005 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainFSThaw(dom, mountpoints, nmountpoints, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainFSTrimWrapper(virDomainPtr dom, + const char *mountPoint, + unsigned long long minimum, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainFSTrim(dom, mountPoint, minimum, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainFreeWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainFree(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetAutostartWrapper(virDomainPtr domain, + int *autostart, + virErrorPtr err) +{ + int ret =3D virDomainGetAutostart(domain, autostart); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetBlkioParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetBlkioParameters(domain, params, nparams, flags= ); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetBlockInfoWrapper(virDomainPtr domain, + const char *disk, + virDomainBlockInfoPtr info, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetBlockInfo(domain, disk, info, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetBlockIoTuneWrapper(virDomainPtr dom, + const char *disk, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetBlockIoTune(dom, disk, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetBlockJobInfoWrapper(virDomainPtr dom, + const char *disk, + virDomainBlockJobInfoPtr info, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetBlockJobInfo(dom, disk, info, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetCPUStatsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + unsigned int nparams, + int start_cpu, + unsigned int ncpus, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetCPUStats(domain, params, nparams, start_cpu, n= cpus, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virConnectPtr +virDomainGetConnectWrapper(virDomainPtr dom, + virErrorPtr err) +{ + virConnectPtr ret =3D virDomainGetConnect(dom); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetControlInfoWrapper(virDomainPtr domain, + virDomainControlInfoPtr info, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetControlInfo(domain, info, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetDiskErrorsWrapper(virDomainPtr dom, + virDomainDiskErrorPtr errors, + unsigned int maxerrors, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetDiskErrors(dom, errors, maxerrors, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetEmulatorPinInfoWrapper(virDomainPtr domain, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetEmulatorPinInfo(domain, cpumap, maplen, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetFSInfoWrapper(virDomainPtr dom, + virDomainFSInfoPtr **info, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002011 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainGetFSInfo(dom, info, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainGetGuestVcpusWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + unsigned int *nparams, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 2000000 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainGetGuestVcpus(domain, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +char * +virDomainGetHostnameWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainGetHostname(domain, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +unsigned int +virDomainGetIDWrapper(virDomainPtr domain, + virErrorPtr err) +{ + unsigned int ret =3D virDomainGetID(domain); + if (ret =3D=3D (unsigned int)-1) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetIOThreadInfoWrapper(virDomainPtr dom, + virDomainIOThreadInfoPtr **info, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002014 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainGetIOThreadInfo(dom, info, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainGetInfoWrapper(virDomainPtr domain, + virDomainInfoPtr info, + virErrorPtr err) +{ + int ret =3D virDomainGetInfo(domain, info); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetInterfaceParametersWrapper(virDomainPtr domain, + const char *device, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetInterfaceParameters(domain, device, params, np= arams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetJobInfoWrapper(virDomainPtr domain, + virDomainJobInfoPtr info, + virErrorPtr err) +{ + int ret =3D virDomainGetJobInfo(domain, info); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetJobStatsWrapper(virDomainPtr domain, + int *type, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetJobStats(domain, type, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 4005000 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainGetLaunchSecurityInfo(domain, params, nparams, fl= ags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +unsigned long +virDomainGetMaxMemoryWrapper(virDomainPtr domain, + virErrorPtr err) +{ + unsigned long ret =3D virDomainGetMaxMemory(domain); + if (ret =3D=3D 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetMaxVcpusWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainGetMaxVcpus(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetMemoryParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetMemoryParameters(domain, params, nparams, flag= s); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainGetMetadataWrapper(virDomainPtr domain, + int type, + const char *uri, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainGetMetadata(domain, type, uri, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +const char * +virDomainGetNameWrapper(virDomainPtr domain, + virErrorPtr err) +{ + const char * ret =3D virDomainGetName(domain); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetNumaParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetNumaParameters(domain, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainGetOSTypeWrapper(virDomainPtr domain, + virErrorPtr err) +{ + char * ret =3D virDomainGetOSType(domain); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetPerfEventsWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1003003 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainGetPerfEvents(domain, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainGetSchedulerParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + virErrorPtr err) +{ + int ret =3D virDomainGetSchedulerParameters(domain, params, nparams); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetSchedulerParametersFlagsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetSchedulerParametersFlags(domain, params, npara= ms, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainGetSchedulerTypeWrapper(virDomainPtr domain, + int *nparams, + virErrorPtr err) +{ + char * ret =3D virDomainGetSchedulerType(domain, nparams); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetSecurityLabelWrapper(virDomainPtr domain, + virSecurityLabelPtr seclabel, + virErrorPtr err) +{ + int ret =3D virDomainGetSecurityLabel(domain, seclabel); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetSecurityLabelListWrapper(virDomainPtr domain, + virSecurityLabelPtr *seclabels, + virErrorPtr err) +{ + int ret =3D virDomainGetSecurityLabelList(domain, seclabels); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetStateWrapper(virDomainPtr domain, + int *state, + int *reason, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetState(domain, state, reason, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetTimeWrapper(virDomainPtr dom, + long long *seconds, + unsigned int *nseconds, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002005 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainGetTime(dom, seconds, nseconds, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +#endif +} + + +int +virDomainGetUUIDWrapper(virDomainPtr domain, + unsigned char *uuid, + virErrorPtr err) +{ + int ret =3D virDomainGetUUID(domain, uuid); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetUUIDStringWrapper(virDomainPtr domain, + char *buf, + virErrorPtr err) +{ + int ret =3D virDomainGetUUIDString(domain, buf); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetVcpuPinInfoWrapper(virDomainPtr domain, + int ncpumaps, + unsigned char *cpumaps, + int maplen, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetVcpuPinInfo(domain, ncpumaps, cpumaps, maplen,= flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetVcpusWrapper(virDomainPtr domain, + virVcpuInfoPtr info, + int maxinfo, + unsigned char *cpumaps, + int maplen, + virErrorPtr err) +{ + int ret =3D virDomainGetVcpus(domain, info, maxinfo, cpumaps, maplen); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainGetVcpusFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainGetVcpusFlags(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainGetXMLDescWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainGetXMLDesc(domain, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainHasCurrentSnapshotWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainHasCurrentSnapshot(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainHasManagedSaveImageWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainHasManagedSaveImage(dom, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainInjectNMIWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainInjectNMI(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainInterfaceAddressesWrapper(virDomainPtr dom, + virDomainInterfacePtr **ifaces, + unsigned int source, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002014 + assert(0); // Caller should have checked version +#else + int ret =3D virDomainInterfaceAddresses(dom, ifaces, source, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainGetTimeWrapper(virDomainPtr dom, - long long *seconds, - unsigned int *nseconds, - unsigned int flags) +void +virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface) +{ +#if LIBVIR_VERSION_NUMBER < 1002014 + assert(0); // Caller should have checked version +#else + virDomainInterfaceFree(iface); +#endif +} + + +int +virDomainInterfaceStatsWrapper(virDomainPtr dom, + const char *device, + virDomainInterfaceStatsPtr stats, + size_t size, + virErrorPtr err) +{ + int ret =3D virDomainInterfaceStats(dom, device, stats, size); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +void +virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info) +{ +#if LIBVIR_VERSION_NUMBER < 1002014 + assert(0); // Caller should have checked version +#else + virDomainIOThreadInfoFree(info); +#endif +} + + +int +virDomainIsActiveWrapper(virDomainPtr dom, + virErrorPtr err) +{ + int ret =3D virDomainIsActive(dom); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainIsPersistentWrapper(virDomainPtr dom, + virErrorPtr err) +{ + int ret =3D virDomainIsPersistent(dom); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainIsUpdatedWrapper(virDomainPtr dom, + virErrorPtr err) +{ + int ret =3D virDomainIsUpdated(dom); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainListAllSnapshotsWrapper(virDomainPtr domain, + virDomainSnapshotPtr **snaps, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainListAllSnapshots(domain, snaps, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainManagedSaveWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainManagedSave(dom, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, + const char *dxml, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002005 +#if LIBVIR_VERSION_NUMBER < 3007000 assert(0); // Caller should have checked version #else - return virDomainGetTime(dom, seconds, nseconds, flags); + int ret =3D virDomainManagedSaveDefineXML(domain, dxml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virDomainSetTimeWrapper(virDomainPtr dom, - long long seconds, - unsigned int nseconds, - unsigned int flags) + +char * +virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002005 +#if LIBVIR_VERSION_NUMBER < 3007000 assert(0); // Caller should have checked version #else - return virDomainSetTime(dom, seconds, nseconds, flags); + char * ret =3D virDomainManagedSaveGetXMLDesc(domain, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virDomainFSFreezeWrapper(virDomainPtr dom, - const char **mountpoints, - unsigned int nmountpoints, - unsigned int flags) + +int +virDomainManagedSaveRemoveWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002005 - assert(0); // Caller should have checked version -#else - return virDomainFSFreeze(dom, mountpoints, nmountpoints, flags); -#endif + int ret =3D virDomainManagedSaveRemove(dom, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainFSThawWrapper(virDomainPtr dom, - const char **mountpoints, - unsigned int nmountpoints, - unsigned int flags) + +int +virDomainMemoryPeekWrapper(virDomainPtr dom, + unsigned long long start, + size_t size, + void *buffer, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002005 + int ret =3D virDomainMemoryPeek(dom, start, size, buffer, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMemoryStatsWrapper(virDomainPtr dom, + virDomainMemoryStatPtr stats, + unsigned int nr_stats, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainMemoryStats(dom, stats, nr_stats, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainMigrateWrapper(virDomainPtr domain, + virConnectPtr dconn, + unsigned long flags, + const char *dname, + const char *uri, + unsigned long bandwidth, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainMigrate(domain, dconn, flags, dname, uri= , bandwidth); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainMigrate2Wrapper(virDomainPtr domain, + virConnectPtr dconn, + const char *dxml, + unsigned long flags, + const char *dname, + const char *uri, + unsigned long bandwidth, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainMigrate2(domain, dconn, dxml, flags, dna= me, uri, bandwidth); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainMigrate3Wrapper(virDomainPtr domain, + virConnectPtr dconn, + virTypedParameterPtr params, + unsigned int nparams, + unsigned int flags, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainMigrate3(domain, dconn, params, nparams,= flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateGetCompressionCacheWrapper(virDomainPtr domain, + unsigned long long *cacheSize, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainMigrateGetCompressionCache(domain, cacheSize, fla= gs); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, + unsigned long long *downtime, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 3007000 assert(0); // Caller should have checked version #else - return virDomainFSThaw(dom, mountpoints, nmountpoints, flags); + int ret =3D virDomainMigrateGetMaxDowntime(domain, downtime, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virDomainBlockCopyWrapper(virDomainPtr dom, const char *disk, - const char *destxml, - virTypedParameterPtr params, - int nparams, - unsigned int flags) + +int +virDomainMigrateGetMaxSpeedWrapper(virDomainPtr domain, + unsigned long *bandwidth, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002008 + int ret =3D virDomainMigrateGetMaxSpeed(domain, bandwidth, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateSetCompressionCacheWrapper(virDomainPtr domain, + unsigned long long cacheSize, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainMigrateSetCompressionCache(domain, cacheSize, fla= gs); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateSetMaxDowntimeWrapper(virDomainPtr domain, + unsigned long long downtime, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainMigrateSetMaxDowntime(domain, downtime, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateSetMaxSpeedWrapper(virDomainPtr domain, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainMigrateSetMaxSpeed(domain, bandwidth, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1003003 assert(0); // Caller should have checked version #else - return virDomainBlockCopy(dom, disk, destxml, params, nparams, flags); + int ret =3D virDomainMigrateStartPostCopy(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virDomainOpenGraphicsFDWrapper(virDomainPtr dom, - unsigned int idx, - unsigned int flags) + +int +virDomainMigrateToURIWrapper(virDomainPtr domain, + const char *duri, + unsigned long flags, + const char *dname, + unsigned long bandwidth, + virErrorPtr err) +{ + int ret =3D virDomainMigrateToURI(domain, duri, flags, dname, bandwidt= h); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateToURI2Wrapper(virDomainPtr domain, + const char *dconnuri, + const char *miguri, + const char *dxml, + unsigned long flags, + const char *dname, + unsigned long bandwidth, + virErrorPtr err) +{ + int ret =3D virDomainMigrateToURI2(domain, dconnuri, miguri, dxml, fla= gs, dname, bandwidth); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainMigrateToURI3Wrapper(virDomainPtr domain, + const char *dconnuri, + virTypedParameterPtr params, + unsigned int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainMigrateToURI3(domain, dconnuri, params, nparams, = flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainOpenChannelWrapper(virDomainPtr dom, + const char *name, + virStreamPtr st, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainOpenChannel(dom, name, st, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainOpenConsoleWrapper(virDomainPtr dom, + const char *dev_name, + virStreamPtr st, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainOpenConsole(dom, dev_name, st, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainOpenGraphicsWrapper(virDomainPtr dom, + unsigned int idx, + int fd, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainOpenGraphics(dom, idx, fd, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainOpenGraphicsFDWrapper(virDomainPtr dom, + unsigned int idx, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002008 assert(0); // Caller should have checked version #else - return virDomainOpenGraphicsFD(dom, idx, flags); + int ret =3D virDomainOpenGraphicsFD(dom, idx, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -void virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info) + +int +virDomainPMSuspendForDurationWrapper(virDomainPtr dom, + unsigned int target, + unsigned long long duration, + unsigned int flags, + virErrorPtr err) { + int ret =3D virDomainPMSuspendForDuration(dom, target, duration, flags= ); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainGetFSInfoWrapper(virDomainPtr dom, - virDomainFSInfoPtr **info, - unsigned int flags) + +int +virDomainPMWakeupWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002011 - assert(0); // Caller should have checked version -#else - return virDomainGetFSInfo(dom, info, flags); -#endif + int ret =3D virDomainPMWakeup(dom, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainPinEmulatorWrapper(virDomainPtr domain, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainPinEmulator(domain, cpumap, maplen, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainInterfaceAddressesWrapper(virDomainPtr dom, - virDomainInterfacePtr **ifaces, - unsigned int source, - unsigned int flags) + +int +virDomainPinIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002014 assert(0); // Caller should have checked version #else - return virDomainInterfaceAddresses(dom, ifaces, source, flags); + int ret =3D virDomainPinIOThread(domain, iothread_id, cpumap, maplen, = flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface) + +int +virDomainPinVcpuWrapper(virDomainPtr domain, + unsigned int vcpu, + unsigned char *cpumap, + int maplen, + virErrorPtr err) { + int ret =3D virDomainPinVcpu(domain, vcpu, cpumap, maplen); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info) + +int +virDomainPinVcpuFlagsWrapper(virDomainPtr domain, + unsigned int vcpu, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err) { + int ret =3D virDomainPinVcpuFlags(domain, vcpu, cpumap, maplen, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainGetIOThreadInfoWrapper(virDomainPtr domain, - virDomainIOThreadInfoPtr **info, - unsigned int flags) + +int +virDomainRebootWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002014 - assert(0); // Caller should have checked version -#else - return virDomainGetIOThreadInfo(domain, info, flags); -#endif + int ret =3D virDomainReboot(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } -int virDomainPinIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned char *cpumap, - int maplen, - unsigned int flags) + + +int +virDomainRefWrapper(virDomainPtr domain, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002014 - assert(0); // Caller should have checked version -#else - return virDomainPinIOThread(domain, iothread_id, cpumap, maplen, flags= ); -#endif + int ret =3D virDomainRef(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainAddIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags) + +int +virDomainRenameWrapper(virDomainPtr dom, + const char *new_name, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002015 +#if LIBVIR_VERSION_NUMBER < 1002019 assert(0); // Caller should have checked version #else - return virDomainAddIOThread(domain, iothread_id, flags); + int ret =3D virDomainRename(dom, new_name, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainDelIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags) +int +virDomainResetWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002015 - assert(0); // Caller should have checked version -#else - return virDomainDelIOThread(domain, iothread_id, flags); -#endif + int ret =3D virDomainReset(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 =20 -int virDomainSetUserPasswordWrapper(virDomainPtr dom, - const char *user, - const char *password, - unsigned int flags) +int +virDomainResumeWrapper(virDomainPtr domain, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002016 - assert(0); // Caller should have checked version -#else - return virDomainSetUserPassword(dom, user, password, flags); -#endif + int ret =3D virDomainResume(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 =20 -int virDomainRenameWrapper(virDomainPtr dom, - const char *new_name, - unsigned int flags) +int +virDomainSaveWrapper(virDomainPtr domain, + const char *to, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1002019 + int ret =3D virDomainSave(domain, to); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSaveFlagsWrapper(virDomainPtr domain, + const char *to, + const char *dxml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSaveFlags(domain, to, dxml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +char * +virDomainScreenshotWrapper(virDomainPtr domain, + virStreamPtr stream, + unsigned int screen, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainScreenshot(domain, stream, screen, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSendKeyWrapper(virDomainPtr domain, + unsigned int codeset, + unsigned int holdtime, + unsigned int *keycodes, + int nkeycodes, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSendKey(domain, codeset, holdtime, keycodes, nkey= codes, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSendProcessSignalWrapper(virDomainPtr domain, + long long pid_value, + unsigned int signum, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSendProcessSignal(domain, pid_value, signum, flag= s); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetAutostartWrapper(virDomainPtr domain, + int autostart, + virErrorPtr err) +{ + int ret =3D virDomainSetAutostart(domain, autostart); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetBlkioParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetBlkioParameters(domain, params, nparams, flags= ); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetBlockIoTuneWrapper(virDomainPtr dom, + const char *disk, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetBlockIoTune(dom, disk, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetBlockThresholdWrapper(virDomainPtr domain, + const char *dev, + unsigned long long threshold, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 3002000 assert(0); // Caller should have checked version #else - return virDomainRename(dom, new_name, flags); + int ret =3D virDomainSetBlockThreshold(domain, dev, threshold, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainGetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags) +int +virDomainSetGuestVcpusWrapper(virDomainPtr domain, + const char *cpumap, + int state, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1003003 +#if LIBVIR_VERSION_NUMBER < 2000000 assert(0); // Caller should have checked version #else - return virDomainGetPerfEvents(dom, params, nparams, flags); + int ret =3D virDomainSetGuestVcpus(domain, cpumap, state, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainSetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr params, - int nparams, - unsigned int flags) +int +virDomainSetInterfaceParametersWrapper(virDomainPtr domain, + const char *device, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 1003003 + int ret =3D virDomainSetInterfaceParameters(domain, device, params, np= arams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetLifecycleActionWrapper(virDomainPtr domain, + unsigned int type, + unsigned int action, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 3009000 assert(0); // Caller should have checked version #else - return virDomainSetPerfEvents(dom, params, nparams, flags); + int ret =3D virDomainSetLifecycleAction(domain, type, action, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, - unsigned int flags) +int +virDomainSetMaxMemoryWrapper(virDomainPtr domain, + unsigned long memory, + virErrorPtr err) +{ + int ret =3D virDomainSetMaxMemory(domain, memory); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetMemoryWrapper(virDomainPtr domain, + unsigned long memory, + virErrorPtr err) +{ + int ret =3D virDomainSetMemory(domain, memory); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetMemoryFlagsWrapper(virDomainPtr domain, + unsigned long memory, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetMemoryFlags(domain, memory, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetMemoryParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetMemoryParameters(domain, params, nparams, flag= s); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetMemoryStatsPeriodWrapper(virDomainPtr domain, + int period, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetMemoryStatsPeriod(domain, period, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetMetadataWrapper(virDomainPtr domain, + int type, + const char *metadata, + const char *key, + const char *uri, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetMetadata(domain, type, metadata, key, uri, fla= gs); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetNumaParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetNumaParameters(domain, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetPerfEventsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1003003 assert(0); // Caller should have checked version #else - return virDomainMigrateStartPostCopy(domain, flags); + int ret =3D virDomainSetPerfEvents(domain, params, nparams, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainGetGuestVcpusWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - unsigned int *nparams, - unsigned int flags) +int +virDomainSetSchedulerParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 2000000 + int ret =3D virDomainSetSchedulerParameters(domain, params, nparams); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetSchedulerParametersFlagsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSetSchedulerParametersFlags(domain, params, npara= ms, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSetTimeWrapper(virDomainPtr dom, + long long seconds, + unsigned int nseconds, + unsigned int flags, + virErrorPtr err) +{ +#if LIBVIR_VERSION_NUMBER < 1002005 assert(0); // Caller should have checked version #else - return virDomainGetGuestVcpus(domain, params, nparams, flags); + int ret =3D virDomainSetTime(dom, seconds, nseconds, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainSetGuestVcpusWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags) +int +virDomainSetUserPasswordWrapper(virDomainPtr dom, + const char *user, + const char *password, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 2000000 +#if LIBVIR_VERSION_NUMBER < 1002016 assert(0); // Caller should have checked version #else - return virDomainSetGuestVcpus(domain, cpumap, state, flags); + int ret =3D virDomainSetUserPassword(dom, user, password, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virDomainSetVcpuWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags) + +int +virDomainSetVcpuWrapper(virDomainPtr domain, + const char *vcpumap, + int state, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 3001000 assert(0); // Caller should have checked version #else - return virDomainSetVcpu(domain, cpumap, state, flags); + int ret =3D virDomainSetVcpu(domain, vcpumap, state, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 -int virDomainSetBlockThresholdWrapper(virDomainPtr domain, - const char *dev, - unsigned long long threshold, - unsigned int flags) +int +virDomainSetVcpusWrapper(virDomainPtr domain, + unsigned int nvcpus, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 3002000 - assert(0); // Caller should have checked version -#else - return virDomainSetBlockThreshold(domain, dev, threshold, flags); -#endif + int ret =3D virDomainSetVcpus(domain, nvcpus); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, - unsigned long long *downtime, - unsigned int flags) + +int +virDomainSetVcpusFlagsWrapper(virDomainPtr domain, + unsigned int nvcpus, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 3007000 - assert(0); // Caller should have checked version -#else - return virDomainMigrateGetMaxDowntime(domain, downtime, flags); -#endif + int ret =3D virDomainSetVcpusFlags(domain, nvcpus, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 =20 -char *virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, - unsigned int flags) +int +virDomainShutdownWrapper(virDomainPtr domain, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 3007000 - assert(0); // Caller should have checked version -#else - return virDomainManagedSaveGetXMLDesc(domain, flags); -#endif + int ret =3D virDomainShutdown(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 =20 -int virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, - const char *dxml, - unsigned int flags) +int +virDomainShutdownFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 3007000 - assert(0); // Caller should have checked version -#else - return virDomainManagedSaveDefineXML(domain, dxml, flags); -#endif + int ret =3D virDomainShutdownFlags(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainSetLifecycleActionWrapper(virDomainPtr domain, - unsigned int type, - unsigned int action, - unsigned int flags) + +virDomainSnapshotPtr +virDomainSnapshotCreateXMLWrapper(virDomainPtr domain, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 3009000 - assert(0); // Caller should have checked version -#else - return virDomainSetLifecycleAction(domain, type, action, flags); -#endif + virDomainSnapshotPtr ret =3D virDomainSnapshotCreateXML(domain, xmlDes= c, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainDetachDeviceAliasWrapper(virDomainPtr domain, - const char *alias, - unsigned int flags) + +virDomainSnapshotPtr +virDomainSnapshotCurrentWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4004000 - assert(0); // Caller should have checked version -#else - return virDomainDetachDeviceAlias(domain, alias, flags); -#endif + virDomainSnapshotPtr ret =3D virDomainSnapshotCurrent(domain, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; } =20 -int virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags) + +int +virDomainSnapshotListNamesWrapper(virDomainPtr domain, + char **names, + int nameslen, + unsigned int flags, + virErrorPtr err) { -#if LIBVIR_VERSION_NUMBER < 4005000 - assert(0); // Caller should have checked version -#else - return virDomainGetLaunchSecurityInfo(domain, params, nparams, flags); -#endif + int ret =3D virDomainSnapshotListNames(domain, names, nameslen, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +virDomainSnapshotPtr +virDomainSnapshotLookupByNameWrapper(virDomainPtr domain, + const char *name, + unsigned int flags, + virErrorPtr err) +{ + virDomainSnapshotPtr ret =3D virDomainSnapshotLookupByName(domain, nam= e, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSnapshotNumWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainSnapshotNum(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainSuspendWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainSuspend(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainUndefineWrapper(virDomainPtr domain, + virErrorPtr err) +{ + int ret =3D virDomainUndefine(domain); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainUndefineFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainUndefineFlags(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainUpdateDeviceFlagsWrapper(virDomainPtr domain, + const char *xml, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainUpdateDeviceFlags(domain, xml, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 + */ import "C" diff --git a/domain_wrapper.h b/domain_wrapper.h index c344565..7bd8282 100644 --- a/domain_wrapper.h +++ b/domain_wrapper.h @@ -31,174 +31,956 @@ #include #include "domain_compat.h" =20 +int +virDomainAbortJobWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainAddIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags, + virErrorPtr err); + +int +virDomainAttachDeviceWrapper(virDomainPtr domain, + const char *xml, + virErrorPtr err); + +int +virDomainAttachDeviceFlagsWrapper(virDomainPtr domain, + const char *xml, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockCommitWrapper(virDomainPtr dom, + const char *disk, + const char *base, + const char *top, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockCopyWrapper(virDomainPtr dom, + const char *disk, + const char *destxml, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockJobAbortWrapper(virDomainPtr dom, + const char *disk, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockJobSetSpeedWrapper(virDomainPtr dom, + const char *disk, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockPeekWrapper(virDomainPtr dom, + const char *disk, + unsigned long long offset, + size_t size, + void *buffer, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockPullWrapper(virDomainPtr dom, + const char *disk, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockRebaseWrapper(virDomainPtr dom, + const char *disk, + const char *base, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockResizeWrapper(virDomainPtr dom, + const char *disk, + unsigned long long size, + unsigned int flags, + virErrorPtr err); + +int +virDomainBlockStatsWrapper(virDomainPtr dom, + const char *disk, + virDomainBlockStatsPtr stats, + size_t size, + virErrorPtr err); + +int +virDomainBlockStatsFlagsWrapper(virDomainPtr dom, + const char *disk, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainCoreDumpWrapper(virDomainPtr domain, + const char *to, + unsigned int flags, + virErrorPtr err); + int virDomainCoreDumpWithFormatWrapper(virDomainPtr domain, const char *to, unsigned int dumpformat, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 +int +virDomainCreateWrapper(virDomainPtr domain, + virErrorPtr err); =20 int -virDomainGetTimeWrapper(virDomainPtr dom, - long long *seconds, - unsigned int *nseconds, - unsigned int flags); +virDomainCreateWithFilesWrapper(virDomainPtr domain, + unsigned int nfiles, + int *files, + unsigned int flags, + virErrorPtr err); =20 int -virDomainSetTimeWrapper(virDomainPtr dom, - long long seconds, - unsigned int nseconds, - unsigned int flags); +virDomainCreateWithFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainDelIOThreadWrapper(virDomainPtr domain, + unsigned int iothread_id, + unsigned int flags, + virErrorPtr err); + +int +virDomainDestroyWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainDestroyFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainDetachDeviceWrapper(virDomainPtr domain, + const char *xml, + virErrorPtr err); + +int +virDomainDetachDeviceAliasWrapper(virDomainPtr domain, + const char *alias, + unsigned int flags, + virErrorPtr err); + +int +virDomainDetachDeviceFlagsWrapper(virDomainPtr domain, + const char *xml, + unsigned int flags, + virErrorPtr err); =20 int virDomainFSFreezeWrapper(virDomainPtr dom, const char **mountpoints, unsigned int nmountpoints, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +void +virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); =20 int virDomainFSThawWrapper(virDomainPtr dom, const char **mountpoints, unsigned int nmountpoints, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 +int +virDomainFSTrimWrapper(virDomainPtr dom, + const char *mountPoint, + unsigned long long minimum, + unsigned int flags, + virErrorPtr err); =20 int -virDomainBlockCopyWrapper(virDomainPtr dom, - const char *disk, - const char *destxml, - virTypedParameterPtr params, - int nparams, - unsigned int flags); +virDomainFreeWrapper(virDomainPtr domain, + virErrorPtr err); =20 int -virDomainOpenGraphicsFDWrapper(virDomainPtr dom, - unsigned int idx, - unsigned int flags); +virDomainGetAutostartWrapper(virDomainPtr domain, + int *autostart, + virErrorPtr err); =20 +int +virDomainGetBlkioParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); =20 -void -virDomainFSInfoFreeWrapper(virDomainFSInfoPtr info); +int +virDomainGetBlockInfoWrapper(virDomainPtr domain, + const char *disk, + virDomainBlockInfoPtr info, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetBlockIoTuneWrapper(virDomainPtr dom, + const char *disk, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetBlockJobInfoWrapper(virDomainPtr dom, + const char *disk, + virDomainBlockJobInfoPtr info, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetCPUStatsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + unsigned int nparams, + int start_cpu, + unsigned int ncpus, + unsigned int flags, + virErrorPtr err); + +virConnectPtr +virDomainGetConnectWrapper(virDomainPtr dom, + virErrorPtr err); + +int +virDomainGetControlInfoWrapper(virDomainPtr domain, + virDomainControlInfoPtr info, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetDiskErrorsWrapper(virDomainPtr dom, + virDomainDiskErrorPtr errors, + unsigned int maxerrors, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetEmulatorPinInfoWrapper(virDomainPtr domain, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err); =20 int virDomainGetFSInfoWrapper(virDomainPtr dom, virDomainFSInfoPtr **info, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +int +virDomainGetGuestVcpusWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + unsigned int *nparams, + unsigned int flags, + virErrorPtr err); + +char * +virDomainGetHostnameWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +unsigned int +virDomainGetIDWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainGetIOThreadInfoWrapper(virDomainPtr dom, + virDomainIOThreadInfoPtr **info, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetInfoWrapper(virDomainPtr domain, + virDomainInfoPtr info, + virErrorPtr err); + +int +virDomainGetInterfaceParametersWrapper(virDomainPtr domain, + const char *device, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetJobInfoWrapper(virDomainPtr domain, + virDomainJobInfoPtr info, + virErrorPtr err); + +int +virDomainGetJobStatsWrapper(virDomainPtr domain, + int *type, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +unsigned long +virDomainGetMaxMemoryWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainGetMaxVcpusWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainGetMemoryParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +char * +virDomainGetMetadataWrapper(virDomainPtr domain, + int type, + const char *uri, + unsigned int flags, + virErrorPtr err); + +const char * +virDomainGetNameWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainGetNumaParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +char * +virDomainGetOSTypeWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainGetPerfEventsWrapper(virDomainPtr domain, + virTypedParameterPtr *params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetSchedulerParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + virErrorPtr err); + +int +virDomainGetSchedulerParametersFlagsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int *nparams, + unsigned int flags, + virErrorPtr err); + +char * +virDomainGetSchedulerTypeWrapper(virDomainPtr domain, + int *nparams, + virErrorPtr err); =20 +int +virDomainGetSecurityLabelWrapper(virDomainPtr domain, + virSecurityLabelPtr seclabel, + virErrorPtr err); + +int +virDomainGetSecurityLabelListWrapper(virDomainPtr domain, + virSecurityLabelPtr *seclabels, + virErrorPtr err); + +int +virDomainGetStateWrapper(virDomainPtr domain, + int *state, + int *reason, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetTimeWrapper(virDomainPtr dom, + long long *seconds, + unsigned int *nseconds, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetUUIDWrapper(virDomainPtr domain, + unsigned char *uuid, + virErrorPtr err); + +int +virDomainGetUUIDStringWrapper(virDomainPtr domain, + char *buf, + virErrorPtr err); + +int +virDomainGetVcpuPinInfoWrapper(virDomainPtr domain, + int ncpumaps, + unsigned char *cpumaps, + int maplen, + unsigned int flags, + virErrorPtr err); + +int +virDomainGetVcpusWrapper(virDomainPtr domain, + virVcpuInfoPtr info, + int maxinfo, + unsigned char *cpumaps, + int maplen, + virErrorPtr err); + +int +virDomainGetVcpusFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +char * +virDomainGetXMLDescWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainHasCurrentSnapshotWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainHasManagedSaveImageWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err); + +int +virDomainInjectNMIWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); =20 int virDomainInterfaceAddressesWrapper(virDomainPtr dom, virDomainInterfacePtr **ifaces, unsigned int source, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 void virDomainInterfaceFreeWrapper(virDomainInterfacePtr iface); =20 +int +virDomainInterfaceStatsWrapper(virDomainPtr dom, + const char *device, + virDomainInterfaceStatsPtr stats, + size_t size, + virErrorPtr err); + void virDomainIOThreadInfoFreeWrapper(virDomainIOThreadInfoPtr info); =20 int -virDomainGetIOThreadInfoWrapper(virDomainPtr domain, - virDomainIOThreadInfoPtr **info, - unsigned int flags); +virDomainIsActiveWrapper(virDomainPtr dom, + virErrorPtr err); + +int +virDomainIsPersistentWrapper(virDomainPtr dom, + virErrorPtr err); + +int +virDomainIsUpdatedWrapper(virDomainPtr dom, + virErrorPtr err); + +int +virDomainListAllSnapshotsWrapper(virDomainPtr domain, + virDomainSnapshotPtr **snaps, + unsigned int flags, + virErrorPtr err); + +int +virDomainManagedSaveWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err); + +int +virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, + const char *dxml, + unsigned int flags, + virErrorPtr err); + +char * +virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainManagedSaveRemoveWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err); + +int +virDomainMemoryPeekWrapper(virDomainPtr dom, + unsigned long long start, + size_t size, + void *buffer, + unsigned int flags, + virErrorPtr err); + +int +virDomainMemoryStatsWrapper(virDomainPtr dom, + virDomainMemoryStatPtr stats, + unsigned int nr_stats, + unsigned int flags, + virErrorPtr err); + +virDomainPtr +virDomainMigrateWrapper(virDomainPtr domain, + virConnectPtr dconn, + unsigned long flags, + const char *dname, + const char *uri, + unsigned long bandwidth, + virErrorPtr err); + +virDomainPtr +virDomainMigrate2Wrapper(virDomainPtr domain, + virConnectPtr dconn, + const char *dxml, + unsigned long flags, + const char *dname, + const char *uri, + unsigned long bandwidth, + virErrorPtr err); + +virDomainPtr +virDomainMigrate3Wrapper(virDomainPtr domain, + virConnectPtr dconn, + virTypedParameterPtr params, + unsigned int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateGetCompressionCacheWrapper(virDomainPtr domain, + unsigned long long *cacheSize, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, + unsigned long long *downtime, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateGetMaxSpeedWrapper(virDomainPtr domain, + unsigned long *bandwidth, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateSetCompressionCacheWrapper(virDomainPtr domain, + unsigned long long cacheSize, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateSetMaxDowntimeWrapper(virDomainPtr domain, + unsigned long long downtime, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateSetMaxSpeedWrapper(virDomainPtr domain, + unsigned long bandwidth, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainMigrateToURIWrapper(virDomainPtr domain, + const char *duri, + unsigned long flags, + const char *dname, + unsigned long bandwidth, + virErrorPtr err); + +int +virDomainMigrateToURI2Wrapper(virDomainPtr domain, + const char *dconnuri, + const char *miguri, + const char *dxml, + unsigned long flags, + const char *dname, + unsigned long bandwidth, + virErrorPtr err); + +int +virDomainMigrateToURI3Wrapper(virDomainPtr domain, + const char *dconnuri, + virTypedParameterPtr params, + unsigned int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainOpenChannelWrapper(virDomainPtr dom, + const char *name, + virStreamPtr st, + unsigned int flags, + virErrorPtr err); + +int +virDomainOpenConsoleWrapper(virDomainPtr dom, + const char *dev_name, + virStreamPtr st, + unsigned int flags, + virErrorPtr err); + +int +virDomainOpenGraphicsWrapper(virDomainPtr dom, + unsigned int idx, + int fd, + unsigned int flags, + virErrorPtr err); + +int +virDomainOpenGraphicsFDWrapper(virDomainPtr dom, + unsigned int idx, + unsigned int flags, + virErrorPtr err); + +int +virDomainPMSuspendForDurationWrapper(virDomainPtr dom, + unsigned int target, + unsigned long long duration, + unsigned int flags, + virErrorPtr err); + +int +virDomainPMWakeupWrapper(virDomainPtr dom, + unsigned int flags, + virErrorPtr err); + +int +virDomainPinEmulatorWrapper(virDomainPtr domain, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err); + int virDomainPinIOThreadWrapper(virDomainPtr domain, unsigned int iothread_id, unsigned char *cpumap, int maplen, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 int -virDomainAddIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags); +virDomainPinVcpuWrapper(virDomainPtr domain, + unsigned int vcpu, + unsigned char *cpumap, + int maplen, + virErrorPtr err); =20 int -virDomainDelIOThreadWrapper(virDomainPtr domain, - unsigned int iothread_id, - unsigned int flags); +virDomainPinVcpuFlagsWrapper(virDomainPtr domain, + unsigned int vcpu, + unsigned char *cpumap, + int maplen, + unsigned int flags, + virErrorPtr err); =20 int -virDomainSetUserPasswordWrapper(virDomainPtr dom, - const char *user, - const char *password, - unsigned int flags); +virDomainRebootWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainRefWrapper(virDomainPtr domain, + virErrorPtr err); =20 int virDomainRenameWrapper(virDomainPtr dom, const char *new_name, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 int -virDomainGetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); +virDomainResetWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); =20 int -virDomainSetPerfEventsWrapper(virDomainPtr dom, - virTypedParameterPtr params, - int nparams, - unsigned int flags); +virDomainResumeWrapper(virDomainPtr domain, + virErrorPtr err); =20 int -virDomainMigrateStartPostCopyWrapper(virDomainPtr domain, - unsigned int flags); +virDomainSaveWrapper(virDomainPtr domain, + const char *to, + virErrorPtr err); =20 int -virDomainGetGuestVcpusWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - unsigned int *nparams, - unsigned int flags); +virDomainSaveFlagsWrapper(virDomainPtr domain, + const char *to, + const char *dxml, + unsigned int flags, + virErrorPtr err); + +char * +virDomainScreenshotWrapper(virDomainPtr domain, + virStreamPtr stream, + unsigned int screen, + unsigned int flags, + virErrorPtr err); =20 int -virDomainSetGuestVcpusWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags); +virDomainSendKeyWrapper(virDomainPtr domain, + unsigned int codeset, + unsigned int holdtime, + unsigned int *keycodes, + int nkeycodes, + unsigned int flags, + virErrorPtr err); =20 int -virDomainSetVcpuWrapper(virDomainPtr domain, - const char *cpumap, - int state, - unsigned int flags); +virDomainSendProcessSignalWrapper(virDomainPtr domain, + long long pid_value, + unsigned int signum, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetAutostartWrapper(virDomainPtr domain, + int autostart, + virErrorPtr err); + +int +virDomainSetBlkioParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetBlockIoTuneWrapper(virDomainPtr dom, + const char *disk, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); =20 int virDomainSetBlockThresholdWrapper(virDomainPtr domain, const char *dev, unsigned long long threshold, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 int -virDomainMigrateGetMaxDowntimeWrapper(virDomainPtr domain, - unsigned long long *downtime, - unsigned int flags); - -char * -virDomainManagedSaveGetXMLDescWrapper(virDomainPtr domain, - unsigned int flags); +virDomainSetGuestVcpusWrapper(virDomainPtr domain, + const char *cpumap, + int state, + unsigned int flags, + virErrorPtr err); =20 int -virDomainManagedSaveDefineXMLWrapper(virDomainPtr domain, - const char *dxml, - unsigned int flags); +virDomainSetInterfaceParametersWrapper(virDomainPtr domain, + const char *device, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); =20 int virDomainSetLifecycleActionWrapper(virDomainPtr domain, unsigned int type, unsigned int action, - unsigned int flags); + unsigned int flags, + virErrorPtr err); =20 int -virDomainDetachDeviceAliasWrapper(virDomainPtr domain, - const char *alias, - unsigned int flags); +virDomainSetMaxMemoryWrapper(virDomainPtr domain, + unsigned long memory, + virErrorPtr err); =20 int -virDomainGetLaunchSecurityInfoWrapper(virDomainPtr domain, - virTypedParameterPtr *params, - int *nparams, - unsigned int flags); +virDomainSetMemoryWrapper(virDomainPtr domain, + unsigned long memory, + virErrorPtr err); + +int +virDomainSetMemoryFlagsWrapper(virDomainPtr domain, + unsigned long memory, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetMemoryParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetMemoryStatsPeriodWrapper(virDomainPtr domain, + int period, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetMetadataWrapper(virDomainPtr domain, + int type, + const char *metadata, + const char *key, + const char *uri, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetNumaParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetPerfEventsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetSchedulerParametersWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + virErrorPtr err); + +int +virDomainSetSchedulerParametersFlagsWrapper(virDomainPtr domain, + virTypedParameterPtr params, + int nparams, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetTimeWrapper(virDomainPtr dom, + long long seconds, + unsigned int nseconds, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetUserPasswordWrapper(virDomainPtr dom, + const char *user, + const char *password, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetVcpuWrapper(virDomainPtr domain, + const char *vcpumap, + int state, + unsigned int flags, + virErrorPtr err); + +int +virDomainSetVcpusWrapper(virDomainPtr domain, + unsigned int nvcpus, + virErrorPtr err); + +int +virDomainSetVcpusFlagsWrapper(virDomainPtr domain, + unsigned int nvcpus, + unsigned int flags, + virErrorPtr err); + +int +virDomainShutdownWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainShutdownFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +virDomainSnapshotPtr +virDomainSnapshotCreateXMLWrapper(virDomainPtr domain, + const char *xmlDesc, + unsigned int flags, + virErrorPtr err); + +virDomainSnapshotPtr +virDomainSnapshotCurrentWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotListNamesWrapper(virDomainPtr domain, + char **names, + int nameslen, + unsigned int flags, + virErrorPtr err); + +virDomainSnapshotPtr +virDomainSnapshotLookupByNameWrapper(virDomainPtr domain, + const char *name, + unsigned int flags, + virErrorPtr err); + +int +virDomainSnapshotNumWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainSuspendWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainUndefineWrapper(virDomainPtr domain, + virErrorPtr err); + +int +virDomainUndefineFlagsWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err); + +int +virDomainUpdateDeviceFlagsWrapper(virDomainPtr domain, + const char *xml, + unsigned int flags, + virErrorPtr err); + =20 #endif /* LIBVIRT_GO_DOMAIN_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747520969244.65599114363408; Mon, 16 Jul 2018 06:25:20 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 85D9B4E05F; Mon, 16 Jul 2018 13:25:19 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 447C12010CF1; Mon, 16 Jul 2018 13:25:19 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D094A1853DA6; Mon, 16 Jul 2018 13:25:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP4wg028341 for ; Mon, 16 Jul 2018 09:25:04 -0400 Received: by smtp.corp.redhat.com (Postfix) id F0C1A2027047; Mon, 16 Jul 2018 13:25:03 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6291F2026D65; Mon, 16 Jul 2018 13:25:03 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:18 +0100 Message-Id: <20180716132423.10354-33-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 32/37] qemu: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 16 Jul 2018 13:25:20 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each qemu C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- qemu.go | 31 ++++++++++--------- qemu_wrapper.go | 79 ++++++++++++++++++++++++++++++++++++++++++++----- qemu_wrapper.h | 33 +++++++++++++++++---- 3 files changed, 115 insertions(+), 28 deletions(-) diff --git a/qemu.go b/qemu.go index 3631b00..dd4f258 100644 --- a/qemu.go +++ b/qemu.go @@ -81,10 +81,11 @@ func (d *Domain) QemuMonitorCommand(command string, fla= gs DomainQemuMonitorComma var cResult *C.char cCommand :=3D C.CString(command) defer C.free(unsafe.Pointer(cCommand)) - result :=3D C.virDomainQemuMonitorCommand(d.ptr, cCommand, &cResult, C.ui= nt(flags)) + var err C.virError + result :=3D C.virDomainQemuMonitorCommandWrapper(d.ptr, cCommand, &cResul= t, C.uint(flags), &err) =20 if result !=3D 0 { - return "", GetLastError() + return "", makeError(&err) } =20 rstring :=3D C.GoString(cResult) @@ -95,10 +96,11 @@ func (d *Domain) QemuMonitorCommand(command string, fla= gs DomainQemuMonitorComma func (d *Domain) QemuAgentCommand(command string, timeout DomainQemuAgentC= ommandTimeout, flags uint32) (string, error) { cCommand :=3D C.CString(command) defer C.free(unsafe.Pointer(cCommand)) - result :=3D C.virDomainQemuAgentCommand(d.ptr, cCommand, C.int(timeout), = C.uint(flags)) + var err C.virError + result :=3D C.virDomainQemuAgentCommandWrapper(d.ptr, cCommand, C.int(tim= eout), C.uint(flags), &err) =20 if result =3D=3D nil { - return "", GetLastError() + return "", makeError(&err) } =20 rstring :=3D C.GoString(result) @@ -107,10 +109,10 @@ func (d *Domain) QemuAgentCommand(command string, tim= eout DomainQemuAgentCommand } =20 func (c *Connect) DomainQemuAttach(pid uint32, flags uint32) (*Domain, err= or) { - - ptr :=3D C.virDomainQemuAttach(c.ptr, C.uint(pid), C.uint(flags)) + var err C.virError + ptr :=3D C.virDomainQemuAttachWrapper(c.ptr, C.uint(pid), C.uint(flags), = &err) if ptr =3D=3D nil { - return nil, GetLastError() + return nil, makeError(&err) } return &Domain{ptr: ptr}, nil } @@ -156,19 +158,18 @@ func (c *Connect) DomainQemuMonitorEventRegister(dom = *Domain, event string, call defer C.free(unsafe.Pointer(cEvent)) goCallBackId :=3D registerCallbackId(callback) =20 - callbackPtr :=3D unsafe.Pointer(C.domainQemuMonitorEventCallbackHelper) var cdom C.virDomainPtr if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainQemuMonitorEventRegisterWrapper(c.ptr, cdom, cEvent, - C.virConnectDomainQemuMonitorEventCallback(callbackPtr), C.long(goCallBackId), - C.uint(flags)) - if ret =3D=3D -1 { + C.uint(flags), &err) + if ret < 0 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -179,8 +180,10 @@ func (c *Connect) DomainQemuEventDeregister(callbackId= int) error { } =20 // Deregister the callback - if i :=3D int(C.virConnectDomainQemuMonitorEventDeregisterWrapper(c.ptr, = C.int(callbackId))); i !=3D 0 { - return GetLastError() + var err C.virError + ret :=3D int(C.virConnectDomainQemuMonitorEventDeregisterWrapper(c.ptr, C= .int(callbackId), &err)) + if ret < 0 { + return makeError(&err) } return nil } diff --git a/qemu_wrapper.go b/qemu_wrapper.go index 1dda84d..20089d2 100644 --- a/qemu_wrapper.go +++ b/qemu_wrapper.go @@ -45,26 +45,89 @@ void domainQemuMonitorEventCallbackHelper(virConnectPtr= c, virDomainPtr d, domainQemuMonitorEventCallback(c, d, event, secs, micros, details, (in= t)(intptr_t)data); } =20 -int virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr c, virD= omainPtr d, - const char *event, vir= ConnectDomainQemuMonitorEventCallback cb, - long goCallbackId, uns= igned int flags) { + +int +virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, + int callbackID, + virErrorPtr err) +{ #if LIBVIR_VERSION_NUMBER < 1002003 assert(0); // Caller should have checked version #else - void* id =3D (void*)goCallbackId; - return virConnectDomainQemuMonitorEventRegister(c, d, event, cb, id, f= reeGoCallbackHelper, flags); + int ret =3D virConnectDomainQemuMonitorEventDeregister(conn, callbackI= D); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, - int callbackID) + +int +virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr conn, + virDomainPtr dom, + const char *event, + long goCallbackId, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002003 assert(0); // Caller should have checked version #else - return virConnectDomainQemuMonitorEventDeregister(conn, callbackID); + void *id =3D (void*)goCallbackId; + int ret =3D virConnectDomainQemuMonitorEventRegister(conn, dom, event,= domainQemuMonitorEventCallbackHelper, + id, freeGoCallbackH= elper, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 + +char * +virDomainQemuAgentCommandWrapper(virDomainPtr domain, + const char *cmd, + int timeout, + unsigned int flags, + virErrorPtr err) +{ + char * ret =3D virDomainQemuAgentCommand(domain, cmd, timeout, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +virDomainPtr +virDomainQemuAttachWrapper(virConnectPtr conn, + unsigned int pid_value, + unsigned int flags, + virErrorPtr err) +{ + virDomainPtr ret =3D virDomainQemuAttach(conn, pid_value, flags); + if (!ret) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainQemuMonitorCommandWrapper(virDomainPtr domain, + const char *cmd, + char **result, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainQemuMonitorCommand(domain, cmd, result, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/qemu_wrapper.h b/qemu_wrapper.h index e365fbd..df389c4 100644 --- a/qemu_wrapper.h +++ b/qemu_wrapper.h @@ -42,16 +42,37 @@ domainQemuMonitorEventCallbackHelper(virConnectPtr c, void *data); =20 int -virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr c, - virDomainPtr d, +virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, + int callbackID, + virErrorPtr err); + +int +virConnectDomainQemuMonitorEventRegisterWrapper(virConnectPtr conn, + virDomainPtr dom, const char *event, - virConnectDomainQemuMonito= rEventCallback cb, long goCallbackId, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +char * +virDomainQemuAgentCommandWrapper(virDomainPtr domain, + const char *cmd, + int timeout, + unsigned int flags, + virErrorPtr err); + +virDomainPtr +virDomainQemuAttachWrapper(virConnectPtr conn, + unsigned int pid_value, + unsigned int flags, + virErrorPtr err); =20 int -virConnectDomainQemuMonitorEventDeregisterWrapper(virConnectPtr conn, - int callbackID); +virDomainQemuMonitorCommandWrapper(virDomainPtr domain, + const char *cmd, + char **result, + unsigned int flags, + virErrorPtr err); =20 =20 #endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747553847593.7417660096678; Mon, 16 Jul 2018 06:25:53 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9F77330820E4; Mon, 16 Jul 2018 13:25:51 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 64B4DCA5F3; Mon, 16 Jul 2018 13:25:51 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 123EC1853DAA; Mon, 16 Jul 2018 13:25:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP5tn028350 for ; Mon, 16 Jul 2018 09:25:05 -0400 Received: by smtp.corp.redhat.com (Postfix) id 13AD72026D76; Mon, 16 Jul 2018 13:25:05 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 43E122026D65; Mon, 16 Jul 2018 13:25:04 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:19 +0100 Message-Id: <20180716132423.10354-34-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 33/37] lxc: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Mon, 16 Jul 2018 13:25:53 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each lxc C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- lxc.go | 20 ++++++++++------- lxc_wrapper.go | 58 +++++++++++++++++++++++++++++++++++++++++++++++--- lxc_wrapper.h | 26 +++++++++++++++++++++- 3 files changed, 92 insertions(+), 12 deletions(-) diff --git a/lxc.go b/lxc.go index ec685b8..56ab28a 100644 --- a/lxc.go +++ b/lxc.go @@ -47,9 +47,10 @@ import ( func (d *Domain) LxcOpenNamespace(flags uint32) ([]os.File, error) { var cfdlist *C.int =20 - ret :=3D C.virDomainLxcOpenNamespace(d.ptr, &cfdlist, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainLxcOpenNamespaceWrapper(d.ptr, &cfdlist, C.uint(flags= ), &err) if ret =3D=3D -1 { - return []os.File{}, GetLastError() + return []os.File{}, makeError(&err) } fdlist :=3D make([]os.File, ret) for i :=3D 0; i < int(ret); i++ { @@ -69,9 +70,10 @@ func (d *Domain) LxcEnterNamespace(fdlist []os.File, fla= gs uint32) ([]os.File, e cfdlist[i] =3D C.int(fdlist[i].Fd()) } =20 - ret :=3D C.virDomainLxcEnterNamespace(d.ptr, C.uint(len(fdlist)), &cfdlis= t[0], &ncoldfdlist, &coldfdlist, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainLxcEnterNamespaceWrapper(d.ptr, C.uint(len(fdlist)), = &cfdlist[0], &ncoldfdlist, &coldfdlist, C.uint(flags), &err) if ret =3D=3D -1 { - return []os.File{}, GetLastError() + return []os.File{}, makeError(&err) } oldfdlist :=3D make([]os.File, ncoldfdlist) for i :=3D 0; i < int(ncoldfdlist); i++ { @@ -119,9 +121,10 @@ func DomainLxcEnterSecurityLabel(model *NodeSecurityMo= del, label *SecurityLabel, clabel.enforcing =3D 0 } =20 - ret :=3D C.virDomainLxcEnterSecurityLabel(&cmodel, &clabel, &coldlabel, C= .uint(flags)) + var err C.virError + ret :=3D C.virDomainLxcEnterSecurityLabelWrapper(&cmodel, &clabel, &coldl= abel, C.uint(flags), &err) if ret =3D=3D -1 { - return nil, GetLastError() + return nil, makeError(&err) } =20 var oldlabel SecurityLabel @@ -141,10 +144,11 @@ func (d *Domain) DomainLxcEnterCGroup(flags uint32) e= rror { return GetNotImplementedError("virDomainLxcEnterCGroup") } =20 - ret :=3D C.virDomainLxcEnterCGroupWrapper(d.ptr, C.uint(flags)) + var err C.virError + ret :=3D C.virDomainLxcEnterCGroupWrapper(d.ptr, C.uint(flags), &err) =20 if ret =3D=3D -1 { - return GetLastError() + return makeError(&err) } =20 return nil diff --git a/lxc_wrapper.go b/lxc_wrapper.go index 0968870..fa3d910 100644 --- a/lxc_wrapper.go +++ b/lxc_wrapper.go @@ -34,16 +34,68 @@ package libvirt #include #include "lxc_wrapper.h" =20 -int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, - unsigned int flags) +int +virDomainLxcEnterCGroupWrapper(virDomainPtr domain, + unsigned int flags, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 2000000 assert(0); // Caller should have checked version #else - return virDomainLxcEnterCGroup(domain, flags); + int ret =3D virDomainLxcEnterCGroup(domain, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 =20 +int +virDomainLxcEnterNamespaceWrapper(virDomainPtr domain, + unsigned int nfdlist, + int *fdlist, + unsigned int *noldfdlist, + int **oldfdlist, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainLxcEnterNamespace(domain, nfdlist, fdlist, noldfd= list, oldfdlist, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainLxcEnterSecurityLabelWrapper(virSecurityModelPtr model, + virSecurityLabelPtr label, + virSecurityLabelPtr oldlabel, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainLxcEnterSecurityLabel(model, label, oldlabel, fla= gs); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virDomainLxcOpenNamespaceWrapper(virDomainPtr domain, + int **fdlist, + unsigned int flags, + virErrorPtr err) +{ + int ret =3D virDomainLxcOpenNamespace(domain, fdlist, flags); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/lxc_wrapper.h b/lxc_wrapper.h index 22f2d55..b3afd6e 100644 --- a/lxc_wrapper.h +++ b/lxc_wrapper.h @@ -31,9 +31,33 @@ #include #include =20 + int virDomainLxcEnterCGroupWrapper(virDomainPtr domain, - unsigned int flags); + unsigned int flags, + virErrorPtr err); + +int +virDomainLxcEnterNamespaceWrapper(virDomainPtr domain, + unsigned int nfdlist, + int *fdlist, + unsigned int *noldfdlist, + int **oldfdlist, + unsigned int flags, + virErrorPtr err); + +int +virDomainLxcEnterSecurityLabelWrapper(virSecurityModelPtr model, + virSecurityLabelPtr label, + virSecurityLabelPtr oldlabel, + unsigned int flags, + virErrorPtr err); + +int +virDomainLxcOpenNamespaceWrapper(virDomainPtr domain, + int **fdlist, + unsigned int flags, + virErrorPtr err); =20 =20 #endif /* LIBVIRT_GO_LXC_COMPAT_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747559201903.346503218349; Mon, 16 Jul 2018 06:25:59 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1B8B75AFC8; Mon, 16 Jul 2018 13:25:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B93465D969; Mon, 16 Jul 2018 13:25:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 712B81853DA6; Mon, 16 Jul 2018 13:25:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP6h9028366 for ; Mon, 16 Jul 2018 09:25:06 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6BF122027047; Mon, 16 Jul 2018 13:25:06 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6DB5C2026D65; Mon, 16 Jul 2018 13:25:05 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:20 +0100 Message-Id: <20180716132423.10354-35-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 34/37] events: fix error reporting thread safety X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 16 Jul 2018 13:25:58 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Create wrapper functions for each events C API that accepts a virErrorPtr parameter. This avoids accessing a thread local from a goroutine which may race with other goroutines doing native API calls in the same OS thread. Signed-off-by: Daniel P. Berrang=C3=A9 --- domain_events.go | 131 ++++++++++++++++++++------------- domain_events_wrapper.go | 33 +++++++-- domain_events_wrapper.h | 7 +- events.go | 40 +++++++--- events_wrapper.go | 83 ++++++++++++++++++--- events_wrapper.h | 35 ++++++--- network_events.go | 11 ++- network_events_wrapper.go | 26 +++++-- network_events_wrapper.h | 13 +--- node_device_events.go | 16 ++-- node_device_events_wrapper.go | 31 ++++++-- node_device_events_wrapper.h | 6 +- secret_events.go | 16 ++-- secret_events_wrapper.go | 27 +++++-- secret_events_wrapper.h | 6 +- storage_pool_events.go | 16 ++-- storage_pool_events_wrapper.go | 31 ++++++-- storage_pool_events_wrapper.h | 6 +- 18 files changed, 382 insertions(+), 152 deletions(-) diff --git a/domain_events.go b/domain_events.go index 68dc301..fe46c5e 100644 --- a/domain_events.go +++ b/domain_events.go @@ -966,13 +966,14 @@ func (c *Connect) DomainEventLifecycleRegister(dom *D= omain, callback DomainEvent if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_LIFECYCLE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -985,13 +986,14 @@ func (c *Connect) DomainEventRebootRegister(dom *Doma= in, callback DomainEventGen if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_REBOOT, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1004,13 +1006,14 @@ func (c *Connect) DomainEventRTCChangeRegister(dom = *Domain, callback DomainEvent if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_RTC_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1023,13 +1026,14 @@ func (c *Connect) DomainEventWatchdogRegister(dom *= Domain, callback DomainEventW if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_WATCHDOG, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1042,13 +1046,14 @@ func (c *Connect) DomainEventIOErrorRegister(dom *D= omain, callback DomainEventIO if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_IO_ERROR, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1061,13 +1066,14 @@ func (c *Connect) DomainEventGraphicsRegister(dom *= Domain, callback DomainEventG if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_GRAPHICS, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1080,13 +1086,14 @@ func (c *Connect) DomainEventIOErrorReasonRegister(= dom *Domain, callback DomainE if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1099,13 +1106,14 @@ func (c *Connect) DomainEventControlErrorRegister(d= om *Domain, callback DomainEv if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_CONTROL_ERROR, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1118,13 +1126,14 @@ func (c *Connect) DomainEventBlockJobRegister(dom *= Domain, callback DomainEventB if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BLOCK_JOB, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1137,13 +1146,14 @@ func (c *Connect) DomainEventDiskChangeRegister(dom= *Domain, callback DomainEven if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DISK_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1156,13 +1166,14 @@ func (c *Connect) DomainEventTrayChangeRegister(dom= *Domain, callback DomainEven if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_TRAY_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1175,13 +1186,14 @@ func (c *Connect) DomainEventPMWakeupRegister(dom *= Domain, callback DomainEventP if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_PMWAKEUP, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1194,13 +1206,14 @@ func (c *Connect) DomainEventPMSuspendRegister(dom = *Domain, callback DomainEvent if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_PMSUSPEND, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1213,13 +1226,14 @@ func (c *Connect) DomainEventBalloonChangeRegister(= dom *Domain, callback DomainE if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1232,13 +1246,14 @@ func (c *Connect) DomainEventPMSuspendDiskRegister(= dom *Domain, callback DomainE if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1251,13 +1266,14 @@ func (c *Connect) DomainEventDeviceRemovedRegister(= dom *Domain, callback DomainE if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1270,13 +1286,14 @@ func (c *Connect) DomainEventBlockJob2Register(dom = *Domain, callback DomainEvent if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BLOCK_JOB_2, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1289,13 +1306,14 @@ func (c *Connect) DomainEventTunableRegister(dom *D= omain, callback DomainEventTu if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_TUNABLE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1308,13 +1326,14 @@ func (c *Connect) DomainEventAgentLifecycleRegister= (dom *Domain, callback Domain if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_AGENT_LIFECYCLE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1327,13 +1346,14 @@ func (c *Connect) DomainEventDeviceAddedRegister(do= m *Domain, callback DomainEve if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DEVICE_ADDED, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1346,13 +1366,14 @@ func (c *Connect) DomainEventMigrationIterationRegi= ster(dom *Domain, callback Do if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_MIGRATION_ITERATION, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1365,13 +1386,14 @@ func (c *Connect) DomainEventJobCompletedRegister(d= om *Domain, callback DomainEv if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_JOB_COMPLETED, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1384,13 +1406,14 @@ func (c *Connect) DomainEventDeviceRemovalFailedReg= ister(dom *Domain, callback D if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1403,13 +1426,14 @@ func (c *Connect) DomainEventMetadataChangeRegister= (dom *Domain, callback Domain if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_METADATA_CHANGE, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -1422,21 +1446,24 @@ func (c *Connect) DomainEventBlockThresholdRegister= (dom *Domain, callback Domain if dom !=3D nil { cdom =3D dom.ptr } + var err C.virError ret :=3D C.virConnectDomainEventRegisterAnyWrapper(c.ptr, cdom, C.VIR_DOMAIN_EVENT_ID_BLOCK_THRESHOLD, C.virConnectDomainEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } =20 func (c *Connect) DomainEventDeregister(callbackId int) error { // Deregister the callback - if i :=3D int(C.virConnectDomainEventDeregisterAny(c.ptr, C.int(callbackI= d))); i !=3D 0 { - return GetLastError() + var err C.virError + ret :=3D int(C.virConnectDomainEventDeregisterAnyWrapper(c.ptr, C.int(cal= lbackId), &err)) + if ret < 0 { + return makeError(&err) } return nil } diff --git a/domain_events_wrapper.go b/domain_events_wrapper.go index 07b9418..5d74fee 100644 --- a/domain_events_wrapper.go +++ b/domain_events_wrapper.go @@ -225,12 +225,35 @@ void domainEventBlockThresholdCallbackHelper(virConne= ctPtr conn, domainEventBlockThresholdCallback(conn, dom, dev, path, threshold, exc= ess, (int)(intptr_t)opaque); } =20 -int virConnectDomainEventRegisterAnyWrapper(virConnectPtr c, virDomainPtr= d, - int eventID, virConnectDomainEven= tGenericCallback cb, - long goCallbackId) { - void* id =3D (void*)goCallbackId; - return virConnectDomainEventRegisterAny(c, d, eventID, cb, id, freeGoC= allbackHelper); +int +virConnectDomainEventRegisterAnyWrapper(virConnectPtr c, + virDomainPtr d, + int eventID, + virConnectDomainEventGenericCallba= ck cb, + long goCallbackId, + virErrorPtr err) +{ + void *id =3D (void*)goCallbackId; + int ret =3D virConnectDomainEventRegisterAny(c, d, eventID, cb, id, fr= eeGoCallbackHelper); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virConnectDomainEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID, + virErrorPtr err) +{ + int ret =3D virConnectDomainEventDeregisterAny(conn, callbackID); + if (ret < 0) { + virCopyLastError(err); + } + return ret; } =20 + */ import "C" diff --git a/domain_events_wrapper.h b/domain_events_wrapper.h index 4016497..1670acd 100644 --- a/domain_events_wrapper.h +++ b/domain_events_wrapper.h @@ -196,7 +196,12 @@ virConnectDomainEventRegisterAnyWrapper(virConnectPtr = c, virDomainPtr d, int eventID, virConnectDomainEventGenericCallba= ck cb, - long goCallbackId); + long goCallbackId, + virErrorPtr err); +int +virConnectDomainEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID, + virErrorPtr err); =20 =20 #endif /* LIBVIRT_GO_DOMAIN_EVENTS_WRAPPER_H__ */ diff --git a/events.go b/events.go index 217b033..bf2c1f4 100644 --- a/events.go +++ b/events.go @@ -44,16 +44,18 @@ const ( =20 // See also https://libvirt.org/html/libvirt-libvirt-event.html#virEventRe= gisterDefaultImpl func EventRegisterDefaultImpl() error { - if i :=3D int(C.virEventRegisterDefaultImpl()); i !=3D 0 { - return GetLastError() + var err C.virError + if i :=3D int(C.virEventRegisterDefaultImplWrapper(&err)); i !=3D 0 { + return makeError(&err) } return nil } =20 // See also https://libvirt.org/html/libvirt-libvirt-event.html#virEventRu= nDefaultImpl func EventRunDefaultImpl() error { - if i :=3D int(C.virEventRunDefaultImpl()); i !=3D 0 { - return GetLastError() + var err C.virError + if i :=3D int(C.virEventRunDefaultImplWrapper(&err)); i !=3D 0 { + return makeError(&err) } return nil } @@ -76,9 +78,10 @@ func eventHandleCallback(watch int, fd int, events int, = callbackID int) { func EventAddHandle(fd int, events EventHandleType, callback EventHandleCa= llback) (int, error) { callbackID :=3D registerCallbackId(callback) =20 - ret :=3D C.virEventAddHandleWrapper((C.int)(fd), (C.int)(events), (C.int)= (callbackID)) + var err C.virError + ret :=3D C.virEventAddHandleWrapper((C.int)(fd), (C.int)(events), (C.int)= (callbackID), &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return int(ret), nil @@ -90,8 +93,14 @@ func EventUpdateHandle(watch int, events EventHandleType= ) { } =20 // See also https://libvirt.org/html/libvirt-libvirt-event.html#virEventRe= moveHandle -func EventRemoveHandle(watch int) { - C.virEventRemoveHandle((C.int)(watch)) +func EventRemoveHandle(watch int) error { + var err C.virError + ret :=3D C.virEventRemoveHandleWrapper((C.int)(watch), &err) + if ret < 0 { + return makeError(&err) + } + + return nil } =20 type EventTimeoutCallback func(timer int) @@ -112,9 +121,10 @@ func eventTimeoutCallback(timer int, callbackID int) { func EventAddTimeout(freq int, callback EventTimeoutCallback) (int, error)= { callbackID :=3D registerCallbackId(callback) =20 - ret :=3D C.virEventAddTimeoutWrapper((C.int)(freq), (C.int)(callbackID)) + var err C.virError + ret :=3D C.virEventAddTimeoutWrapper((C.int)(freq), (C.int)(callbackID), = &err) if ret =3D=3D -1 { - return 0, GetLastError() + return 0, makeError(&err) } =20 return int(ret), nil @@ -126,8 +136,14 @@ func EventUpdateTimeout(timer int, freq int) { } =20 // See also https://libvirt.org/html/libvirt-libvirt-event.html#virEventRe= moveTimeout -func EventRemoveTimeout(timer int) { - C.virEventRemoveTimeout((C.int)(timer)) +func EventRemoveTimeout(timer int) error { + var err C.virError + ret :=3D C.virEventRemoveTimeoutWrapper((C.int)(timer), &err) + if ret < 0 { + return makeError(&err) + } + + return nil } =20 type EventHandleCallbackInfo struct { diff --git a/events_wrapper.go b/events_wrapper.go index ffcffb9..6814589 100644 --- a/events_wrapper.go +++ b/events_wrapper.go @@ -39,11 +39,6 @@ static void eventAddHandleHelper(int watch, int fd, int = events, void *opaque) eventHandleCallback(watch, fd, events, (int)(intptr_t)opaque); } =20 -int virEventAddHandleWrapper(int fd, int events, int callbackID) -{ - return virEventAddHandle(fd, events, eventAddHandleHelper, (void *)(in= tptr_t)callbackID, NULL); -} - void eventTimeoutCallback(int timer, int callbackID); =20 static void eventAddTimeoutHelper(int timer, void *opaque) @@ -51,11 +46,6 @@ static void eventAddTimeoutHelper(int timer, void *opaqu= e) eventTimeoutCallback(timer, (int)(intptr_t)opaque); } =20 -int virEventAddTimeoutWrapper(int freq, int callbackID) -{ - return virEventAddTimeout(freq, eventAddTimeoutHelper, (void *)(intptr= _t)callbackID, NULL); -} - int eventAddHandleFunc(int fd, int event, uintptr_t callback, uintptr_t op= aque, uintptr_t freecb); void eventUpdateHandleFunc(int watch, int event); int eventRemoveHandleFunc(int watch); @@ -126,5 +116,78 @@ void eventTimeoutCallbackFree(uintptr_t callback, uint= ptr_t opaque) } =20 =20 +int +virEventAddHandleWrapper(int fd, + int events, + int callbackID, + virErrorPtr err) +{ + int ret =3D virEventAddHandle(fd, events, eventAddHandleHelper, (void = *)(intptr_t)callbackID, NULL); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virEventAddTimeoutWrapper(int timeout, + int callbackID, + virErrorPtr err) +{ + int ret =3D virEventAddTimeout(timeout, eventAddTimeoutHelper, (void *= )(intptr_t)callbackID, NULL); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virEventRegisterDefaultImplWrapper(virErrorPtr err) +{ + int ret =3D virEventRegisterDefaultImpl(); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virEventRemoveHandleWrapper(int watch, + virErrorPtr err) +{ + int ret =3D virEventRemoveHandle(watch); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virEventRemoveTimeoutWrapper(int timer, + virErrorPtr err) +{ + int ret =3D virEventRemoveTimeout(timer); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + +int +virEventRunDefaultImplWrapper(virErrorPtr err) +{ + int ret =3D virEventRunDefaultImpl(); + if (ret < 0) { + virCopyLastError(err); + } + return ret; +} + + */ import "C" diff --git a/events_wrapper.h b/events_wrapper.h index 9e9607c..62ea9c8 100644 --- a/events_wrapper.h +++ b/events_wrapper.h @@ -30,15 +30,6 @@ #include #include =20 -int -virEventAddHandleWrapper(int fd, - int events, - int callbackID); - -int -virEventAddTimeoutWrapper(int freq, - int callbackID); - void virEventRegisterImplWrapper(void); =20 @@ -62,4 +53,30 @@ void eventTimeoutCallbackFree(uintptr_t callback, uintptr_t opaque); =20 +int +virEventAddHandleWrapper(int fd, + int events, + int callbackID, + virErrorPtr err); + +int +virEventAddTimeoutWrapper(int timeout, + int callbackID, + virErrorPtr err); + +int +virEventRegisterDefaultImplWrapper(virErrorPtr err); + +int +virEventRemoveHandleWrapper(int watch, + virErrorPtr err); + +int +virEventRemoveTimeoutWrapper(int timer, + virErrorPtr err); + +int +virEventRunDefaultImplWrapper(virErrorPtr err); + + #endif /* LIBVIRT_GO_EVENTS_WRAPPER_H__ */ diff --git a/network_events.go b/network_events.go index 7414608..8ed16d9 100644 --- a/network_events.go +++ b/network_events.go @@ -77,13 +77,14 @@ func (c *Connect) NetworkEventLifecycleRegister(net *Ne= twork, callback NetworkEv if net !=3D nil { cnet =3D net.ptr } + var err C.virError ret :=3D C.virConnectNetworkEventRegisterAnyWrapper(c.ptr, cnet, C.VIR_NETWORK_EVENT_ID_LIFECYCLE, C.virConnectNetworkEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -93,8 +94,10 @@ func (c *Connect) NetworkEventDeregister(callbackId int)= error { return GetNotImplementedError("virConnectNetworkEventDeregisterAny") } // Deregister the callback - if i :=3D int(C.virConnectNetworkEventDeregisterAnyWrapper(c.ptr, C.int(c= allbackId))); i !=3D 0 { - return GetLastError() + var err C.virError + ret :=3D int(C.virConnectNetworkEventDeregisterAnyWrapper(c.ptr, C.int(ca= llbackId), &err)) + if ret < 0 { + return makeError(&err) } return nil } diff --git a/network_events_wrapper.go b/network_events_wrapper.go index a8a5d81..4e424ba 100644 --- a/network_events_wrapper.go +++ b/network_events_wrapper.go @@ -40,24 +40,38 @@ void networkEventLifecycleCallbackHelper(virConnectPtr = c, virNetworkPtr d, networkEventLifecycleCallback(c, d, event, detail, (int)(intptr_t)data= ); } =20 -int virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, virNetworkP= tr d, - int eventID, virConnectNetworkEve= ntGenericCallback cb, - long goCallbackId) { +int +virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, + virNetworkPtr d, + int eventID, + virConnectNetworkEventGenericCall= back cb, + long goCallbackId, + virErrorPtr err) +{ void* id =3D (void*)goCallbackId; #if LIBVIR_VERSION_NUMBER < 1002001 assert(0); // Caller should have checked version #else - return virConnectNetworkEventRegisterAny(c, d, eventID, cb, id, freeGo= CallbackHelper); + int ret =3D virConnectNetworkEventRegisterAny(c, d, eventID, cb, id, f= reeGoCallbackHelper); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) + int callbackID, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 1002001 assert(0); // Caller should have checked version #else - return virConnectNetworkEventDeregisterAny(conn, callbackID); + int ret =3D virConnectNetworkEventDeregisterAny(conn, callbackID); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 diff --git a/network_events_wrapper.h b/network_events_wrapper.h index 201be64..789837a 100644 --- a/network_events_wrapper.h +++ b/network_events_wrapper.h @@ -43,18 +43,13 @@ virConnectNetworkEventRegisterAnyWrapper(virConnectPtr = c, virNetworkPtr d, int eventID, virConnectNetworkEventGenericCall= back cb, - long goCallbackId); - -int -virConnectNetworkEventRegisterAnyWrapper(virConnectPtr c, - virNetworkPtr d, - int eventID, - virConnectNetworkEventGenericCall= back cb, - long goCallbackId); + long goCallbackId, + virErrorPtr err); =20 int virConnectNetworkEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); + int callbackID, + virErrorPtr err); =20 =20 #endif /* LIBVIRT_GO_NETWORK_EVENTS_WRAPPER_H__ */ diff --git a/node_device_events.go b/node_device_events.go index 5d66687..632c94d 100644 --- a/node_device_events.go +++ b/node_device_events.go @@ -94,13 +94,14 @@ func (c *Connect) NodeDeviceEventLifecycleRegister(devi= ce *NodeDevice, callback if device !=3D nil { cdevice =3D device.ptr } + var err C.virError ret :=3D C.virConnectNodeDeviceEventRegisterAnyWrapper(c.ptr, cdevice, C.VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE, C.virConnectNodeDeviceEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -113,13 +114,14 @@ func (c *Connect) NodeDeviceEventUpdateRegister(devic= e *NodeDevice, callback Nod if device !=3D nil { cdevice =3D device.ptr } + var err C.virError ret :=3D C.virConnectNodeDeviceEventRegisterAnyWrapper(c.ptr, cdevice, C.VIR_NODE_DEVICE_EVENT_ID_UPDATE, C.virConnectNodeDeviceEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -129,8 +131,10 @@ func (c *Connect) NodeDeviceEventDeregister(callbackId= int) error { return GetNotImplementedError("virConnectNodeDeviceEventDeregisterAny") } // Deregister the callback - if i :=3D int(C.virConnectNodeDeviceEventDeregisterAnyWrapper(c.ptr, C.in= t(callbackId))); i !=3D 0 { - return GetLastError() + var err C.virError + ret :=3D int(C.virConnectNodeDeviceEventDeregisterAnyWrapper(c.ptr, C.int= (callbackId), &err)) + if ret < 0 { + return makeError(&err) } return nil } diff --git a/node_device_events_wrapper.go b/node_device_events_wrapper.go index a8b0c93..8b2e624 100644 --- a/node_device_events_wrapper.go +++ b/node_device_events_wrapper.go @@ -46,24 +46,41 @@ void nodeDeviceEventGenericCallbackHelper(virConnectPtr= c, virNodeDevicePtr d, v nodeDeviceEventGenericCallback(c, d, (int)(intptr_t)data); } =20 -int virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, virNodeD= evicePtr d, - int eventID, virConnectNodeD= eviceEventGenericCallback cb, - long goCallbackId) { + +int +virConnectNodeDeviceEventRegisterAnyWrapper(virConnectPtr c, + virNodeDevicePtr d, + int eventID, + virConnectNodeDeviceEventGener= icCallback cb, + long goCallbackId, + virErrorPtr err) +{ void* id =3D (void*)goCallbackId; #if LIBVIR_VERSION_NUMBER < 2002000 assert(0); // Caller should have checked version #else - return virConnectNodeDeviceEventRegisterAny(c, d, eventID, cb, id, fre= eGoCallbackHelper); + int ret =3D virConnectNodeDeviceEventRegisterAny(c, d, eventID, cb, id= , freeGoCallbackHelper); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) + +int +virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 2002000 assert(0); // Caller should have checked version #else - return virConnectNodeDeviceEventDeregisterAny(conn, callbackID); + int ret =3D virConnectNodeDeviceEventDeregisterAny(conn, callbackID); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 diff --git a/node_device_events_wrapper.h b/node_device_events_wrapper.h index a3d014d..fb691d2 100644 --- a/node_device_events_wrapper.h +++ b/node_device_events_wrapper.h @@ -48,11 +48,13 @@ virConnectNodeDeviceEventRegisterAnyWrapper(virConnectP= tr c, virNodeDevicePtr d, int eventID, virConnectNodeDeviceEventGener= icCallback cb, - long goCallbackId); + long goCallbackId, + virErrorPtr err); =20 int virConnectNodeDeviceEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); + int callbackID, + virErrorPtr err); =20 =20 #endif /* LIBVIRT_GO_NODE_DEVICE_EVENTS_WRAPPER_H__ */ diff --git a/secret_events.go b/secret_events.go index d24146f..38605ba 100644 --- a/secret_events.go +++ b/secret_events.go @@ -94,13 +94,14 @@ func (c *Connect) SecretEventLifecycleRegister(secret *= Secret, callback SecretEv if secret !=3D nil { csecret =3D secret.ptr } + var err C.virError ret :=3D C.virConnectSecretEventRegisterAnyWrapper(c.ptr, csecret, C.VIR_SECRET_EVENT_ID_LIFECYCLE, C.virConnectSecretEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -116,13 +117,14 @@ func (c *Connect) SecretEventValueChangedRegister(sec= ret *Secret, callback Secre if secret !=3D nil { csecret =3D secret.ptr } + var err C.virError ret :=3D C.virConnectSecretEventRegisterAnyWrapper(c.ptr, csecret, C.VIR_SECRET_EVENT_ID_VALUE_CHANGED, C.virConnectSecretEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -132,8 +134,10 @@ func (c *Connect) SecretEventDeregister(callbackId int= ) error { return GetNotImplementedError("virConnectSecretEventDeregisterAny") } // Deregister the callback - if i :=3D int(C.virConnectSecretEventDeregisterAnyWrapper(c.ptr, C.int(ca= llbackId))); i !=3D 0 { - return GetLastError() + var err C.virError + ret :=3D int(C.virConnectSecretEventDeregisterAnyWrapper(c.ptr, C.int(cal= lbackId), &err)) + if ret < 0 { + return makeError(&err) } return nil } diff --git a/secret_events_wrapper.go b/secret_events_wrapper.go index 04b5f4f..a543e7f 100644 --- a/secret_events_wrapper.go +++ b/secret_events_wrapper.go @@ -47,24 +47,39 @@ void secretEventGenericCallbackHelper(virConnectPtr c, = virSecretPtr d, secretEventGenericCallback(c, d, (int)(intptr_t)data); } =20 -int virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, virSecretPtr= d, - int eventID, virConnectSecretEven= tGenericCallback cb, - long goCallbackId) { + +int +virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, + virSecretPtr d, + int eventID, + virConnectSecretEventGenericCallba= ck cb, + long goCallbackId, + virErrorPtr err) +{ void* id =3D (void*)goCallbackId; #if LIBVIR_VERSION_NUMBER < 3000000 assert(0); // Caller should have checked version #else - return virConnectSecretEventRegisterAny(c, d, eventID, cb, id, freeGoC= allbackHelper); + int ret =3D virConnectSecretEventRegisterAny(c, d, eventID, cb, id, fr= eeGoCallbackHelper); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) + int callbackID, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 3000000 assert(0); // Caller should have checked version #else - return virConnectSecretEventDeregisterAny(conn, callbackID); + int ret =3D virConnectSecretEventDeregisterAny(conn, callbackID); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 diff --git a/secret_events_wrapper.h b/secret_events_wrapper.h index bf1c571..5101bc0 100644 --- a/secret_events_wrapper.h +++ b/secret_events_wrapper.h @@ -47,10 +47,12 @@ virConnectSecretEventRegisterAnyWrapper(virConnectPtr c, virSecretPtr d, int eventID, virConnectSecretEventGenericCallba= ck cb, - long goCallbackId); + long goCallbackId, + virErrorPtr err); =20 int virConnectSecretEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); + int callbackID, + virErrorPtr err); =20 #endif /* LIBVIRT_GO_SECRET_EVENTS_WRAPPER_H__ */ diff --git a/storage_pool_events.go b/storage_pool_events.go index 15fb90b..55c9f4e 100644 --- a/storage_pool_events.go +++ b/storage_pool_events.go @@ -95,13 +95,14 @@ func (c *Connect) StoragePoolEventLifecycleRegister(poo= l *StoragePool, callback if pool !=3D nil { cpool =3D pool.ptr } + var err C.virError ret :=3D C.virConnectStoragePoolEventRegisterAnyWrapper(c.ptr, cpool, C.VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE, C.virConnectStoragePoolEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -118,13 +119,14 @@ func (c *Connect) StoragePoolEventRefreshRegister(poo= l *StoragePool, callback St if pool !=3D nil { cpool =3D pool.ptr } + var err C.virError ret :=3D C.virConnectStoragePoolEventRegisterAnyWrapper(c.ptr, cpool, C.VIR_STORAGE_POOL_EVENT_ID_REFRESH, C.virConnectStoragePoolEventGenericCallback(callbackPtr), - C.long(goCallBackId)) + C.long(goCallBackId), &err) if ret =3D=3D -1 { freeCallbackId(goCallBackId) - return 0, GetLastError() + return 0, makeError(&err) } return int(ret), nil } @@ -135,8 +137,10 @@ func (c *Connect) StoragePoolEventDeregister(callbackI= d int) error { } =20 // Deregister the callback - if i :=3D int(C.virConnectStoragePoolEventDeregisterAnyWrapper(c.ptr, C.i= nt(callbackId))); i !=3D 0 { - return GetLastError() + var err C.virError + ret :=3D int(C.virConnectStoragePoolEventDeregisterAnyWrapper(c.ptr, C.in= t(callbackId), &err)) + if ret < 0 { + return makeError(&err) } return nil } diff --git a/storage_pool_events_wrapper.go b/storage_pool_events_wrapper.go index df9b092..c551038 100644 --- a/storage_pool_events_wrapper.go +++ b/storage_pool_events_wrapper.go @@ -47,24 +47,41 @@ void storagePoolEventGenericCallbackHelper(virConnectPt= r c, virStoragePoolPtr d, storagePoolEventGenericCallback(c, d, (int)(intptr_t)data); } =20 -int virConnectStoragePoolEventRegisterAnyWrapper(virConnectPtr c, virStor= agePoolPtr d, - int eventID, virConnectStora= gePoolEventGenericCallback cb, - long goCallbackId) { + +int +virConnectStoragePoolEventRegisterAnyWrapper(virConnectPtr c, + virStoragePoolPtr d, + int eventID, + virConnectStoragePoolEventGen= ericCallback cb, + long goCallbackId, + virErrorPtr err) +{ #if LIBVIR_VERSION_NUMBER < 2000000 assert(0); // Caller should have checked version #else void* id =3D (void*)goCallbackId; - return virConnectStoragePoolEventRegisterAny(c, d, eventID, cb, id, fr= eeGoCallbackHelper); + int ret =3D virConnectStoragePoolEventRegisterAny(c, d, eventID, cb, i= d, freeGoCallbackHelper); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 -int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID) + +int +virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, + int callbackID, + virErrorPtr err) { #if LIBVIR_VERSION_NUMBER < 2000000 assert(0); // Caller shouuld have checked version #else - return virConnectStoragePoolEventDeregisterAny(conn, callbackID); + int ret =3D virConnectStoragePoolEventDeregisterAny(conn, callbackID); + if (ret < 0) { + virCopyLastError(err); + } + return ret; #endif } =20 diff --git a/storage_pool_events_wrapper.h b/storage_pool_events_wrapper.h index 84dcc8f..7007f1c 100644 --- a/storage_pool_events_wrapper.h +++ b/storage_pool_events_wrapper.h @@ -48,10 +48,12 @@ virConnectStoragePoolEventRegisterAnyWrapper(virConnect= Ptr c, virStoragePoolPtr d, int eventID, virConnectStoragePoolEventGen= ericCallback cb, - long goCallbackId); + long goCallbackId, + virErrorPtr err); =20 int virConnectStoragePoolEventDeregisterAnyWrapper(virConnectPtr conn, - int callbackID); + int callbackID, + virErrorPtr err); =20 #endif /* LIBVIRT_GO_STORAGE_POOL_EVENTS_WRAPPER_H__ */ --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 153174752698143.15096510991816; Mon, 16 Jul 2018 06:25:26 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7B320A53AA; Mon, 16 Jul 2018 13:25:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 44F062010D58; Mon, 16 Jul 2018 13:25:25 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id ED7683FCC0; Mon, 16 Jul 2018 13:25:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP7tG028391 for ; Mon, 16 Jul 2018 09:25:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CA212027047; Mon, 16 Jul 2018 13:25:07 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id A8DFB2026D65; Mon, 16 Jul 2018 13:25:06 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:21 +0100 Message-Id: <20180716132423.10354-36-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 35/37] error: remove GetLastError() function X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 16 Jul 2018 13:25:26 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 The virGetLastError() function fetches the last reported error from a thread local variable. Goroutines may be arbitrarily switched between OS threads between the libvirt API call and the virGetLastError() call. Thus this API is impossible to use safely and must be removed. All the Go APIs return an error object directly so nothing should need the GetLastError() binding anyway. Signed-off-by: Daniel P. Berrang=C3=A9 --- api_test.go | 1 + error.go | 20 -------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/api_test.go b/api_test.go index a16a1eb..564bdd4 100644 --- a/api_test.go +++ b/api_test.go @@ -68,6 +68,7 @@ var ( /* Only needed at C level */ "virCopyLastError", "virFreeError", + "virGetLastError", "virGetLastErrorMessage", "virGetLastErrorCode", "virGetLastErrorDomain", diff --git a/error.go b/error.go index b8e2900..37fefc1 100644 --- a/error.go +++ b/error.go @@ -594,26 +594,6 @@ func makeError(err *C.virError) Error { return ret } =20 -func GetLastError() Error { - err :=3D C.virGetLastError() - if err =3D=3D nil { - return Error{ - Code: ERR_OK, - Domain: FROM_NONE, - Message: "Missing error", - Level: ERR_NONE, - } - } - virErr :=3D Error{ - Code: ErrorNumber(err.code), - Domain: ErrorDomain(err.domain), - Message: C.GoString(err.message), - Level: ErrorLevel(err.level), - } - C.virResetError(err) - return virErr -} - func GetNotImplementedError(apiname string) Error { return Error{ Code: ERR_NO_SUPPORT, --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747544701671.9530961760989; Mon, 16 Jul 2018 06:25:44 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 652AA317C41F; Mon, 16 Jul 2018 13:25:43 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2F5B15D9C7; Mon, 16 Jul 2018 13:25:43 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C75651853DA5; Mon, 16 Jul 2018 13:25:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP9dP028402 for ; Mon, 16 Jul 2018 09:25:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 16DBE2027047; Mon, 16 Jul 2018 13:25:09 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0E0E42026D65; Mon, 16 Jul 2018 13:25:07 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:22 +0100 Message-Id: <20180716132423.10354-37-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 36/37] error: make GetNotImplementedError private X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Mon, 16 Jul 2018 13:25:44 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 The GetNotImplementedError() method is only for internal use so should not have a public name. Signed-off-by: Daniel P. Berrang=C3=A9 --- connect.go | 24 +++++++++--------- domain.go | 56 +++++++++++++++++++++--------------------- error.go | 2 +- lxc.go | 2 +- network.go | 2 +- network_events.go | 4 +-- node_device_events.go | 4 +-- nwfilter_binding.go | 12 ++++----- qemu.go | 4 +-- secret_events.go | 6 ++--- storage_pool_events.go | 6 ++--- storage_volume.go | 2 +- stream.go | 10 ++++---- 13 files changed, 67 insertions(+), 67 deletions(-) diff --git a/connect.go b/connect.go index 29e4fb0..34a96ed 100644 --- a/connect.go +++ b/connect.go @@ -857,7 +857,7 @@ func (c *Connect) DomainDefineXML(xmlConfig string) (*D= omain, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= DefineXMLFlags func (c *Connect) DomainDefineXMLFlags(xmlConfig string, flags DomainDefin= eFlags) (*Domain, error) { if C.LIBVIR_VERSION_NUMBER < 1002012 { - return nil, GetNotImplementedError("virDomainDefineXMLFlags") + return nil, makeNotImplementedError("virDomainDefineXMLFlags") } cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) @@ -1266,7 +1266,7 @@ func (c *Connect) LookupStoragePoolByUUID(uuid []byte= ) (*StoragePool, error) { // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= gePoolLookupByTargetPath func (c *Connect) LookupStoragePoolByTargetPath(path string) (*StoragePool= , error) { if C.LIBVIR_VERSION_NUMBER < 4001000 { - return nil, GetNotImplementedError("virStoragePoolLookupByTargetPath") + return nil, makeNotImplementedError("virStoragePoolLookupByTargetPath") } cPath :=3D C.CString(path) defer C.free(unsafe.Pointer(cPath)) @@ -1335,7 +1335,7 @@ func (c *Connect) LookupNWFilterByUUID(uuid []byte) (= *NWFilter, error) { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingLookupByPortDev func (c *Connect) LookupNWFilterBindingByPortDev(name string) (*NWFilterBi= nding, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return nil, GetNotImplementedError("virNWFilterBindingLookupByPortDev") + return nil, makeNotImplementedError("virNWFilterBindingLookupByPortDev") } cName :=3D C.CString(name) defer C.free(unsafe.Pointer(cName)) @@ -1555,7 +1555,7 @@ func (c *Connect) ListAllNWFilters(flags uint32) ([]N= WFilter, error) { func (c *Connect) ListAllNWFilterBindings(flags uint32) ([]NWFilterBinding= , error) { var cList *C.virNWFilterBindingPtr if C.LIBVIR_VERSION_NUMBER < 4005000 { - return []NWFilterBinding{}, GetNotImplementedError("virConnectListAllNWF= ilterBindings") + return []NWFilterBinding{}, makeNotImplementedError("virConnectListAllNW= FilterBindings") } var err C.virError numNWFilters :=3D C.virConnectListAllNWFilterBindingsWrapper(c.ptr, (**C.= virNWFilterBindingPtr)(&cList), C.uint(flags), &err) @@ -1675,7 +1675,7 @@ func (c *Connect) InterfaceChangeRollback(flags uint3= 2) error { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeAllo= cPages func (c *Connect) AllocPages(pageSizes map[int]int64, startCell int, cellC= ount uint, flags NodeAllocPagesFlags) (int, error) { if C.LIBVIR_VERSION_NUMBER < 1002009 { - return 0, GetNotImplementedError("virNodeAllocPages") + return 0, makeNotImplementedError("virNodeAllocPages") } cpages :=3D make([]C.uint, len(pageSizes)) ccounts :=3D make([]C.ulonglong, len(pageSizes)) @@ -1812,7 +1812,7 @@ func (c *Connect) GetFreeMemory() (uint64, error) { // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeGetF= reePages func (c *Connect) GetFreePages(pageSizes []uint64, startCell int, maxCells= uint, flags uint32) ([]uint64, error) { if C.LIBVIR_VERSION_NUMBER < 1002006 { - return []uint64{}, GetNotImplementedError("virNodeGetFreePages") + return []uint64{}, makeNotImplementedError("virNodeGetFreePages") } cpageSizes :=3D make([]C.uint, len(pageSizes)) ccounts :=3D make([]C.ulonglong, len(pageSizes)*int(maxCells)) @@ -2087,7 +2087,7 @@ func (c *Connect) BaselineCPU(xmlCPUs []string, flags= ConnectBaselineCPUFlags) ( // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectB= aselineHypervisorCPU func (c *Connect) BaselineHypervisorCPU(emulator string, arch string, mach= ine string, virttype string, xmlCPUs []string, flags ConnectBaselineCPUFlag= s) (string, error) { if C.LIBVIR_VERSION_NUMBER < 4004000 { - return "", GetNotImplementedError("virConnectBaselineHypervisorCPU") + return "", makeNotImplementedError("virConnectBaselineHypervisorCPU") } =20 var cemulator, carch, cmachine, cvirttype *C.char @@ -2142,7 +2142,7 @@ func (c *Connect) CompareCPU(xmlDesc string, flags Co= nnectCompareCPUFlags) (CPUC // See also https://libvirt.org/html/libvirt-libvirt-host.html#virConnectC= ompareHypervisorCPU func (c *Connect) CompareHypervisorCPU(emulator string, arch string, machi= ne string, virttype string, xmlDesc string, flags ConnectCompareCPUFlags) (= CPUCompareResult, error) { if C.LIBVIR_VERSION_NUMBER < 4004000 { - return CPU_COMPARE_ERROR, GetNotImplementedError("virConnectCompareHyper= visorCPU") + return CPU_COMPARE_ERROR, makeNotImplementedError("virConnectCompareHype= rvisorCPU") } =20 var cemulator, carch, cmachine, cvirttype *C.char @@ -2238,7 +2238,7 @@ func (c *Connect) GetCPUModelNames(arch string, flags= uint32) ([]string, error) // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virConnec= tGetDomainCapabilities func (c *Connect) GetDomainCapabilities(emulatorbin string, arch string, m= achine string, virttype string, flags uint32) (string, error) { if C.LIBVIR_VERSION_NUMBER < 1002007 { - return "", GetNotImplementedError("virConnectGetDomainCapabilities") + return "", makeNotImplementedError("virConnectGetDomainCapabilities") } var cemulatorbin *C.char if emulatorbin !=3D "" { @@ -2776,7 +2776,7 @@ func getDomainStatsLengthsFieldInfo(params *domainSta= tsLengths) map[string]typed // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virConnec= tGetAllDomainStats func (c *Connect) GetAllDomainStats(doms []*Domain, statsTypes DomainStats= Types, flags ConnectGetAllDomainStatsFlags) ([]DomainStats, error) { if C.LIBVIR_VERSION_NUMBER < 1002008 { - return []DomainStats{}, GetNotImplementedError("virConnectGetAllDomainSt= ats") + return []DomainStats{}, makeNotImplementedError("virConnectGetAllDomainS= tats") } var ret C.int var cstats *C.virDomainStatsRecordPtr @@ -2953,7 +2953,7 @@ func getNodeSEVFieldInfo(params *NodeSEVParameters) m= ap[string]typedParamsFieldI // See also https://libvirt.org/html/libvirt-libvirt-host.html#virNodeGetS= EVInfo func (c *Connect) GetSEVInfo(flags uint32) (*NodeSEVParameters, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return nil, GetNotImplementedError("virNodeGetSEVInfo") + return nil, makeNotImplementedError("virNodeGetSEVInfo") } =20 params :=3D &NodeSEVParameters{} @@ -2981,7 +2981,7 @@ func (c *Connect) GetSEVInfo(flags uint32) (*NodeSEVP= arameters, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virNWFilt= erBindingCreateXML func (c *Connect) NWFilterBindingCreateXML(xmlConfig string, flags uint32)= (*NWFilterBinding, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return nil, GetNotImplementedError("virNWFilterBindingCreateXML") + return nil, makeNotImplementedError("virNWFilterBindingCreateXML") } cXml :=3D C.CString(string(xmlConfig)) defer C.free(unsafe.Pointer(cXml)) diff --git a/domain.go b/domain.go index 302cdb8..14a6485 100644 --- a/domain.go +++ b/domain.go @@ -1539,7 +1539,7 @@ func (d *Domain) DetachDeviceFlags(xml string, flags = DomainDeviceModifyFlags) er // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= DetachDeviceAlias func (d *Domain) DetachDeviceAlias(alias string, flags DomainDeviceModifyF= lags) error { if C.LIBVIR_VERSION_NUMBER < 4004000 { - return GetNotImplementedError("virDomainDetachDeviceAlias") + return makeNotImplementedError("virDomainDetachDeviceAlias") } =20 cAlias :=3D C.CString(alias) @@ -1924,7 +1924,7 @@ type DomainInterface struct { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= InterfaceAddresses func (d *Domain) ListAllInterfaceAddresses(src DomainInterfaceAddressesSou= rce) ([]DomainInterface, error) { if C.LIBVIR_VERSION_NUMBER < 1002014 { - return []DomainInterface{}, GetNotImplementedError("virDomainInterfaceAd= dresses") + return []DomainInterface{}, makeNotImplementedError("virDomainInterfaceA= ddresses") } =20 var cList *C.virDomainInterfacePtr @@ -2089,7 +2089,7 @@ func getBlockCopyParameterFieldInfo(params *DomainBlo= ckCopyParameters) map[strin // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= BlockCopy func (d *Domain) BlockCopy(disk string, destxml string, params *DomainBloc= kCopyParameters, flags DomainBlockCopyFlags) error { if C.LIBVIR_VERSION_NUMBER < 1002008 { - return GetNotImplementedError("virDomainBlockCopy") + return makeNotImplementedError("virDomainBlockCopy") } cdisk :=3D C.CString(disk) defer C.free(unsafe.Pointer(cdisk)) @@ -2530,7 +2530,7 @@ func (d *Domain) MigrateGetMaxDowntime(flags uint32) = (uint64, error) { var downtimeLen C.ulonglong =20 if C.LIBVIR_VERSION_NUMBER < 3007000 { - return 0, GetNotImplementedError("virDomainMigrateGetMaxDowntime") + return 0, makeNotImplementedError("virDomainMigrateGetMaxDowntime") } =20 var err C.virError @@ -2545,7 +2545,7 @@ func (d *Domain) MigrateGetMaxDowntime(flags uint32) = (uint64, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= MigrateStartPostCopy func (d *Domain) MigrateStartPostCopy(flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 1003003 { - return GetNotImplementedError("virDomainMigrateStartPostCopy") + return makeNotImplementedError("virDomainMigrateStartPostCopy") } =20 var err C.virError @@ -3548,7 +3548,7 @@ func getDomainPerfEventsFieldInfo(params *DomainPerfE= vents) map[string]typedPara // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetPerfEvents func (d *Domain) GetPerfEvents(flags DomainModificationImpact) (*DomainPer= fEvents, error) { if C.LIBVIR_VERSION_NUMBER < 1003003 { - return nil, GetNotImplementedError("virDomainGetPerfEvents") + return nil, makeNotImplementedError("virDomainGetPerfEvents") } =20 params :=3D &DomainPerfEvents{} @@ -3575,7 +3575,7 @@ func (d *Domain) GetPerfEvents(flags DomainModificati= onImpact) (*DomainPerfEvent // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetPerfEvents func (d *Domain) SetPerfEvents(params *DomainPerfEvents, flags DomainModif= icationImpact) error { if C.LIBVIR_VERSION_NUMBER < 1003003 { - return GetNotImplementedError("virDomainSetPerfEvents") + return makeNotImplementedError("virDomainSetPerfEvents") } =20 info :=3D getDomainPerfEventsFieldInfo(params) @@ -3874,7 +3874,7 @@ func (d *Domain) GetSecurityLabelList() ([]SecurityLa= bel, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetTime func (d *Domain) GetTime(flags uint32) (int64, uint, error) { if C.LIBVIR_VERSION_NUMBER < 1002005 { - return 0, 0, GetNotImplementedError("virDomainGetTime") + return 0, 0, makeNotImplementedError("virDomainGetTime") } var secs C.longlong var nsecs C.uint @@ -3890,7 +3890,7 @@ func (d *Domain) GetTime(flags uint32) (int64, uint, = error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetTime func (d *Domain) SetTime(secs int64, nsecs uint, flags DomainSetTimeFlags)= error { if C.LIBVIR_VERSION_NUMBER < 1002005 { - return GetNotImplementedError("virDomainSetTime") + return makeNotImplementedError("virDomainSetTime") } =20 var err C.virError @@ -3905,7 +3905,7 @@ func (d *Domain) SetTime(secs int64, nsecs uint, flag= s DomainSetTimeFlags) error // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetUserPassword func (d *Domain) SetUserPassword(user string, password string, flags Domai= nSetUserPasswordFlags) error { if C.LIBVIR_VERSION_NUMBER < 1002015 { - return GetNotImplementedError("virDomainSetUserPassword") + return makeNotImplementedError("virDomainSetUserPassword") } cuser :=3D C.CString(user) cpassword :=3D C.CString(password) @@ -3960,7 +3960,7 @@ func (d *Domain) ManagedSaveRemove(flags uint32) erro= r { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= Rename func (d *Domain) Rename(name string, flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 1002019 { - return GetNotImplementedError("virDomainRename") + return makeNotImplementedError("virDomainRename") } cname :=3D C.CString(name) defer C.free(unsafe.Pointer(cname)) @@ -4023,7 +4023,7 @@ func (d *Domain) CoreDump(to string, flags DomainCore= DumpFlags) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= CoreDumpWithFormat func (d *Domain) CoreDumpWithFormat(to string, format DomainCoreDumpFormat= , flags DomainCoreDumpFlags) error { if C.LIBVIR_VERSION_NUMBER < 1002003 { - GetNotImplementedError("virDomainCoreDumpWithFormat") + makeNotImplementedError("virDomainCoreDumpWithFormat") } cto :=3D C.CString(to) defer C.free(unsafe.Pointer(cto)) @@ -4053,7 +4053,7 @@ func (d *Domain) HasCurrentSnapshot(flags uint32) (bo= ol, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= FSFreeze func (d *Domain) FSFreeze(mounts []string, flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 1002005 { - return GetNotImplementedError("virDomainFSFreeze") + return makeNotImplementedError("virDomainFSFreeze") } cmounts :=3D make([](*C.char), len(mounts)) =20 @@ -4075,7 +4075,7 @@ func (d *Domain) FSFreeze(mounts []string, flags uint= 32) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= FSThaw func (d *Domain) FSThaw(mounts []string, flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 1002005 { - return GetNotImplementedError("virDomainFSThaw") + return makeNotImplementedError("virDomainFSThaw") } cmounts :=3D make([](*C.char), len(mounts)) =20 @@ -4121,7 +4121,7 @@ type DomainFSInfo struct { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetFSInfo func (d *Domain) GetFSInfo(flags uint32) ([]DomainFSInfo, error) { if C.LIBVIR_VERSION_NUMBER < 1002011 { - return []DomainFSInfo{}, GetNotImplementedError("virDomainGetFSInfo") + return []DomainFSInfo{}, makeNotImplementedError("virDomainGetFSInfo") } var cfsinfolist **C.virDomainFSInfo =20 @@ -4180,7 +4180,7 @@ func (d *Domain) PMWakeup(flags uint32) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= AddIOThread func (d *Domain) AddIOThread(id uint, flags DomainModificationImpact) erro= r { if C.LIBVIR_VERSION_NUMBER < 1002015 { - return GetNotImplementedError("virDomainAddIOThread") + return makeNotImplementedError("virDomainAddIOThread") } var err C.virError ret :=3D C.virDomainAddIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags), = &err) @@ -4194,7 +4194,7 @@ func (d *Domain) AddIOThread(id uint, flags DomainMod= ificationImpact) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= DelIOThread func (d *Domain) DelIOThread(id uint, flags DomainModificationImpact) erro= r { if C.LIBVIR_VERSION_NUMBER < 1002015 { - return GetNotImplementedError("virDomainDelIOThread") + return makeNotImplementedError("virDomainDelIOThread") } var err C.virError ret :=3D C.virDomainDelIOThreadWrapper(d.ptr, C.uint(id), C.uint(flags), = &err) @@ -4240,7 +4240,7 @@ type DomainIOThreadInfo struct { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetIOThreadInfo func (d *Domain) GetIOThreadInfo(flags DomainModificationImpact) ([]Domain= IOThreadInfo, error) { if C.LIBVIR_VERSION_NUMBER < 1002014 { - return []DomainIOThreadInfo{}, GetNotImplementedError("virDomaingetIOThr= eadInfo") + return []DomainIOThreadInfo{}, makeNotImplementedError("virDomaingetIOTh= readInfo") } var cinfolist **C.virDomainIOThreadInfo =20 @@ -4344,7 +4344,7 @@ func (d *Domain) PinEmulator(cpumap []bool, flags Dom= ainModificationImpact) erro // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= PinIOThread func (d *Domain) PinIOThread(iothreadid uint, cpumap []bool, flags DomainM= odificationImpact) error { if C.LIBVIR_VERSION_NUMBER < 1002014 { - return GetNotImplementedError("virDomainPinIOThread") + return makeNotImplementedError("virDomainPinIOThread") } =20 maplen :=3D (len(cpumap) + 7) / 8 @@ -4412,7 +4412,7 @@ func (d *Domain) OpenGraphics(idx uint, file os.File,= flags DomainOpenGraphicsFl // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= OpenGraphicsFD func (d *Domain) OpenGraphicsFD(idx uint, flags DomainOpenGraphicsFlags) (= *os.File, error) { if C.LIBVIR_VERSION_NUMBER < 1002008 { - return nil, GetNotImplementedError("virDomainOpenGraphicsFD") + return nil, makeNotImplementedError("virDomainOpenGraphicsFD") } var err C.virError ret :=3D C.virDomainOpenGraphicsFDWrapper(d.ptr, C.uint(idx), C.uint(flag= s), &err) @@ -4544,7 +4544,7 @@ func parseCPUString(cpumapstr string) ([]bool, error)= { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetGuestVcpus func (d *Domain) GetGuestVcpus(flags uint32) (*DomainGuestVcpus, error) { if C.LIBVIR_VERSION_NUMBER < 2000000 { - return nil, GetNotImplementedError("virDomainGetGuestVcpus") + return nil, makeNotImplementedError("virDomainGetGuestVcpus") } =20 var VcpusSet, OnlineSet, OfflinableSet bool @@ -4572,7 +4572,7 @@ func (d *Domain) GetGuestVcpus(flags uint32) (*Domain= GuestVcpus, error) { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetGuestVcpus func (d *Domain) SetGuestVcpus(cpus []bool, state bool, flags uint32) erro= r { if C.LIBVIR_VERSION_NUMBER < 2000000 { - return GetNotImplementedError("virDomainSetGuestVcpus") + return makeNotImplementedError("virDomainSetGuestVcpus") } =20 cpumap :=3D "" @@ -4606,7 +4606,7 @@ func (d *Domain) SetGuestVcpus(cpus []bool, state boo= l, flags uint32) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetVcpu func (d *Domain) SetVcpu(cpus []bool, state bool, flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 3001000 { - return GetNotImplementedError("virDomainSetVcpu") + return makeNotImplementedError("virDomainSetVcpu") } =20 cpumap :=3D "" @@ -4640,7 +4640,7 @@ func (d *Domain) SetVcpu(cpus []bool, state bool, fla= gs uint32) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetBlockThreshold func (d *Domain) SetBlockThreshold(dev string, threshold uint64, flags uin= t32) error { if C.LIBVIR_VERSION_NUMBER < 3002000 { - return GetNotImplementedError("virDomainSetBlockThreshold") + return makeNotImplementedError("virDomainSetBlockThreshold") } =20 cdev :=3D C.CString(dev) @@ -4657,7 +4657,7 @@ func (d *Domain) SetBlockThreshold(dev string, thresh= old uint64, flags uint32) e // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= ManagedSaveDefineXML func (d *Domain) ManagedSaveDefineXML(xml string, flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 3007000 { - return GetNotImplementedError("virDomainManagedSaveDefineXML") + return makeNotImplementedError("virDomainManagedSaveDefineXML") } =20 cxml :=3D C.CString(xml) @@ -4674,7 +4674,7 @@ func (d *Domain) ManagedSaveDefineXML(xml string, fla= gs uint32) error { // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= ManagedSaveGetXMLDesc func (d *Domain) ManagedSaveGetXMLDesc(flags uint32) (string, error) { if C.LIBVIR_VERSION_NUMBER < 3007000 { - return "", GetNotImplementedError("virDomainManagedSaveGetXMLDesc") + return "", makeNotImplementedError("virDomainManagedSaveGetXMLDesc") } =20 var err C.virError @@ -4710,7 +4710,7 @@ const ( // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= SetLifecycleAction func (d *Domain) SetLifecycleAction(lifecycleType uint32, action uint32, f= lags uint32) error { if C.LIBVIR_VERSION_NUMBER < 3009000 { - return GetNotImplementedError("virDomainSetLifecycleAction") + return makeNotImplementedError("virDomainSetLifecycleAction") } =20 var err C.virError @@ -4739,7 +4739,7 @@ func getDomainLaunchSecurityFieldInfo(params *DomainL= aunchSecurityParameters) ma // See also https://libvirt.org/html/libvirt-libvirt-domain.html#virDomain= GetLaunchSecurityInfo func (d *Domain) GetLaunchSecurityInfo(flags uint32) (*DomainLaunchSecurit= yParameters, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return nil, GetNotImplementedError("virDomainGetLaunchSecurityInfo") + return nil, makeNotImplementedError("virDomainGetLaunchSecurityInfo") } =20 params :=3D &DomainLaunchSecurityParameters{} diff --git a/error.go b/error.go index 37fefc1..1cfdf92 100644 --- a/error.go +++ b/error.go @@ -594,7 +594,7 @@ func makeError(err *C.virError) Error { return ret } =20 -func GetNotImplementedError(apiname string) Error { +func makeNotImplementedError(apiname string) Error { return Error{ Code: ERR_NO_SUPPORT, Domain: FROM_NONE, diff --git a/lxc.go b/lxc.go index 56ab28a..1578cab 100644 --- a/lxc.go +++ b/lxc.go @@ -141,7 +141,7 @@ func DomainLxcEnterSecurityLabel(model *NodeSecurityMod= el, label *SecurityLabel, =20 func (d *Domain) DomainLxcEnterCGroup(flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 2000000 { - return GetNotImplementedError("virDomainLxcEnterCGroup") + return makeNotImplementedError("virDomainLxcEnterCGroup") } =20 var err C.virError diff --git a/network.go b/network.go index d9ec9bf..99954aa 100644 --- a/network.go +++ b/network.go @@ -301,7 +301,7 @@ func (n *Network) Update(cmd NetworkUpdateCommand, sect= ion NetworkUpdateSection, // See also https://libvirt.org/html/libvirt-libvirt-network.html#virNetwo= rkGetDHCPLeases func (n *Network) GetDHCPLeases() ([]NetworkDHCPLease, error) { if C.LIBVIR_VERSION_NUMBER < 1002006 { - return []NetworkDHCPLease{}, GetNotImplementedError("virNetworkGetDHCPLe= ases") + return []NetworkDHCPLease{}, makeNotImplementedError("virNetworkGetDHCPL= eases") } var cLeases *C.virNetworkDHCPLeasePtr var err C.virError diff --git a/network_events.go b/network_events.go index 8ed16d9..2d9bddc 100644 --- a/network_events.go +++ b/network_events.go @@ -69,7 +69,7 @@ func networkEventLifecycleCallback(c C.virConnectPtr, n C= .virNetworkPtr, func (c *Connect) NetworkEventLifecycleRegister(net *Network, callback Net= workEventLifecycleCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) if C.LIBVIR_VERSION_NUMBER < 1002001 { - return 0, GetNotImplementedError("virConnectNetworkEventRegisterAny") + return 0, makeNotImplementedError("virConnectNetworkEventRegisterAny") } =20 callbackPtr :=3D unsafe.Pointer(C.networkEventLifecycleCallbackHelper) @@ -91,7 +91,7 @@ func (c *Connect) NetworkEventLifecycleRegister(net *Netw= ork, callback NetworkEv =20 func (c *Connect) NetworkEventDeregister(callbackId int) error { if C.LIBVIR_VERSION_NUMBER < 1002001 { - return GetNotImplementedError("virConnectNetworkEventDeregisterAny") + return makeNotImplementedError("virConnectNetworkEventDeregisterAny") } // Deregister the callback var err C.virError diff --git a/node_device_events.go b/node_device_events.go index 632c94d..7920a42 100644 --- a/node_device_events.go +++ b/node_device_events.go @@ -85,7 +85,7 @@ func nodeDeviceEventGenericCallback(c C.virConnectPtr, d = C.virNodeDevicePtr, =20 func (c *Connect) NodeDeviceEventLifecycleRegister(device *NodeDevice, cal= lback NodeDeviceEventLifecycleCallback) (int, error) { if C.LIBVIR_VERSION_NUMBER < 2002000 { - return 0, GetNotImplementedError("virConnectNodeDeviceEventRegisterAny") + return 0, makeNotImplementedError("virConnectNodeDeviceEventRegisterAny") } goCallBackId :=3D registerCallbackId(callback) =20 @@ -128,7 +128,7 @@ func (c *Connect) NodeDeviceEventUpdateRegister(device = *NodeDevice, callback Nod =20 func (c *Connect) NodeDeviceEventDeregister(callbackId int) error { if C.LIBVIR_VERSION_NUMBER < 2002000 { - return GetNotImplementedError("virConnectNodeDeviceEventDeregisterAny") + return makeNotImplementedError("virConnectNodeDeviceEventDeregisterAny") } // Deregister the callback var err C.virError diff --git a/nwfilter_binding.go b/nwfilter_binding.go index 5999d3e..e36c1de 100644 --- a/nwfilter_binding.go +++ b/nwfilter_binding.go @@ -43,7 +43,7 @@ type NWFilterBinding struct { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingFree func (f *NWFilterBinding) Free() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return GetNotImplementedError("virNWFilterBindingFree") + return makeNotImplementedError("virNWFilterBindingFree") } var err C.virError ret :=3D C.virNWFilterBindingFreeWrapper(f.ptr, &err) @@ -56,7 +56,7 @@ func (f *NWFilterBinding) Free() error { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingRef func (c *NWFilterBinding) Ref() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return GetNotImplementedError("virNWFilterBindingRef") + return makeNotImplementedError("virNWFilterBindingRef") } var err C.virError ret :=3D C.virNWFilterBindingRefWrapper(c.ptr, &err) @@ -69,7 +69,7 @@ func (c *NWFilterBinding) Ref() error { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingDelete func (f *NWFilterBinding) Delete() error { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return GetNotImplementedError("virNWFilterBindingDelete") + return makeNotImplementedError("virNWFilterBindingDelete") } var err C.virError result :=3D C.virNWFilterBindingDeleteWrapper(f.ptr, &err) @@ -82,7 +82,7 @@ func (f *NWFilterBinding) Delete() error { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingGetPortDev func (f *NWFilterBinding) GetPortDev() (string, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return "", GetNotImplementedError("virNWFilterBindingGetPortDev") + return "", makeNotImplementedError("virNWFilterBindingGetPortDev") } var err C.virError result :=3D C.virNWFilterBindingGetPortDevWrapper(f.ptr, &err) @@ -97,7 +97,7 @@ func (f *NWFilterBinding) GetPortDev() (string, error) { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingGetFilterName func (f *NWFilterBinding) GetFilterName() (string, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return "", GetNotImplementedError("virNWFilterBindingGetFilterName") + return "", makeNotImplementedError("virNWFilterBindingGetFilterName") } var err C.virError result :=3D C.virNWFilterBindingGetFilterNameWrapper(f.ptr, &err) @@ -112,7 +112,7 @@ func (f *NWFilterBinding) GetFilterName() (string, erro= r) { // See also https://libvirt.org/html/libvirt-libvirt-nwfilter.html#virNWFi= lterBindingGetXMLDesc func (f *NWFilterBinding) GetXMLDesc(flags uint32) (string, error) { if C.LIBVIR_VERSION_NUMBER < 4005000 { - return "", GetNotImplementedError("virNWFilterBindingGetXMLDesc") + return "", makeNotImplementedError("virNWFilterBindingGetXMLDesc") } var err C.virError result :=3D C.virNWFilterBindingGetXMLDescWrapper(f.ptr, C.uint(flags), &= err) diff --git a/qemu.go b/qemu.go index dd4f258..a2f8507 100644 --- a/qemu.go +++ b/qemu.go @@ -151,7 +151,7 @@ func domainQemuMonitorEventCallback(c C.virConnectPtr, = d C.virDomainPtr, =20 func (c *Connect) DomainQemuMonitorEventRegister(dom *Domain, event string= , callback DomainQemuMonitorEventCallback, flags DomainQemuMonitorEventFlag= s) (int, error) { if C.LIBVIR_VERSION_NUMBER < 1002003 { - return 0, GetNotImplementedError("virConnectDomainQemuMonitorEventRegist= er") + return 0, makeNotImplementedError("virConnectDomainQemuMonitorEventRegis= ter") } =20 cEvent :=3D C.CString(event) @@ -176,7 +176,7 @@ func (c *Connect) DomainQemuMonitorEventRegister(dom *D= omain, event string, call =20 func (c *Connect) DomainQemuEventDeregister(callbackId int) error { if C.LIBVIR_VERSION_NUMBER < 1002003 { - return GetNotImplementedError("virConnectDomainQemuMonitorEventDeregiste= r") + return makeNotImplementedError("virConnectDomainQemuMonitorEventDeregist= er") } =20 // Deregister the callback diff --git a/secret_events.go b/secret_events.go index 38605ba..d928e98 100644 --- a/secret_events.go +++ b/secret_events.go @@ -86,7 +86,7 @@ func secretEventGenericCallback(c C.virConnectPtr, n C.vi= rSecretPtr, func (c *Connect) SecretEventLifecycleRegister(secret *Secret, callback Se= cretEventLifecycleCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) if C.LIBVIR_VERSION_NUMBER < 3000000 { - return 0, GetNotImplementedError("virConnectSecretEventRegisterAny") + return 0, makeNotImplementedError("virConnectSecretEventRegisterAny") } =20 callbackPtr :=3D unsafe.Pointer(C.secretEventLifecycleCallbackHelper) @@ -109,7 +109,7 @@ func (c *Connect) SecretEventLifecycleRegister(secret *= Secret, callback SecretEv func (c *Connect) SecretEventValueChangedRegister(secret *Secret, callback= SecretEventGenericCallback) (int, error) { goCallBackId :=3D registerCallbackId(callback) if C.LIBVIR_VERSION_NUMBER < 3000000 { - return 0, GetNotImplementedError("virConnectSecretEventRegisterAny") + return 0, makeNotImplementedError("virConnectSecretEventRegisterAny") } =20 callbackPtr :=3D unsafe.Pointer(C.secretEventGenericCallbackHelper) @@ -131,7 +131,7 @@ func (c *Connect) SecretEventValueChangedRegister(secre= t *Secret, callback Secre =20 func (c *Connect) SecretEventDeregister(callbackId int) error { if C.LIBVIR_VERSION_NUMBER < 3000000 { - return GetNotImplementedError("virConnectSecretEventDeregisterAny") + return makeNotImplementedError("virConnectSecretEventDeregisterAny") } // Deregister the callback var err C.virError diff --git a/storage_pool_events.go b/storage_pool_events.go index 55c9f4e..fd1b997 100644 --- a/storage_pool_events.go +++ b/storage_pool_events.go @@ -85,7 +85,7 @@ func storagePoolEventGenericCallback(c C.virConnectPtr, s= C.virStoragePoolPtr, =20 func (c *Connect) StoragePoolEventLifecycleRegister(pool *StoragePool, cal= lback StoragePoolEventLifecycleCallback) (int, error) { if C.LIBVIR_VERSION_NUMBER < 2000000 { - return 0, GetNotImplementedError("virConnectStoragePoolEventRegisterAny") + return 0, makeNotImplementedError("virConnectStoragePoolEventRegisterAny= ") } =20 goCallBackId :=3D registerCallbackId(callback) @@ -109,7 +109,7 @@ func (c *Connect) StoragePoolEventLifecycleRegister(poo= l *StoragePool, callback =20 func (c *Connect) StoragePoolEventRefreshRegister(pool *StoragePool, callb= ack StoragePoolEventGenericCallback) (int, error) { if C.LIBVIR_VERSION_NUMBER < 2000000 { - return 0, GetNotImplementedError("virConnectStoragePoolEventRegisterAny") + return 0, makeNotImplementedError("virConnectStoragePoolEventRegisterAny= ") } =20 goCallBackId :=3D registerCallbackId(callback) @@ -133,7 +133,7 @@ func (c *Connect) StoragePoolEventRefreshRegister(pool = *StoragePool, callback St =20 func (c *Connect) StoragePoolEventDeregister(callbackId int) error { if C.LIBVIR_VERSION_NUMBER < 2000000 { - return GetNotImplementedError("virConnectStoragePoolEventDeregisterAny") + return makeNotImplementedError("virConnectStoragePoolEventDeregisterAny") } =20 // Deregister the callback diff --git a/storage_volume.go b/storage_volume.go index 711c3c1..bb10813 100644 --- a/storage_volume.go +++ b/storage_volume.go @@ -169,7 +169,7 @@ func (v *StorageVol) GetInfo() (*StorageVolInfo, error)= { // See also https://libvirt.org/html/libvirt-libvirt-storage.html#virStora= geVolGetInfoFlags func (v *StorageVol) GetInfoFlags(flags StorageVolInfoFlags) (*StorageVolI= nfo, error) { if C.LIBVIR_VERSION_NUMBER < 3000000 { - return nil, GetNotImplementedError("virStorageVolGetInfoFlags") + return nil, makeNotImplementedError("virStorageVolGetInfoFlags") } =20 var cinfo C.virStorageVolInfo diff --git a/stream.go b/stream.go index 515ae08..4010b11 100644 --- a/stream.go +++ b/stream.go @@ -121,7 +121,7 @@ func (v *Stream) Recv(p []byte) (int, error) { // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= RecvFlags func (v *Stream) RecvFlags(p []byte, flags StreamRecvFlagsValues) (int, er= ror) { if C.LIBVIR_VERSION_NUMBER < 3004000 { - return 0, GetNotImplementedError("virStreamRecvFlags") + return 0, makeNotImplementedError("virStreamRecvFlags") } =20 var err C.virError @@ -139,7 +139,7 @@ func (v *Stream) RecvFlags(p []byte, flags StreamRecvFl= agsValues) (int, error) { // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= RecvHole func (v *Stream) RecvHole(flags uint) (int64, error) { if C.LIBVIR_VERSION_NUMBER < 3004000 { - return 0, GetNotImplementedError("virStreamSparseRecvHole") + return 0, makeNotImplementedError("virStreamSparseRecvHole") } =20 var len C.longlong @@ -169,7 +169,7 @@ func (v *Stream) Send(p []byte) (int, error) { // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= SendHole func (v *Stream) SendHole(len int64, flags uint32) error { if C.LIBVIR_VERSION_NUMBER < 3004000 { - return GetNotImplementedError("virStreamSendHole") + return makeNotImplementedError("virStreamSendHole") } =20 var err C.virError @@ -242,7 +242,7 @@ func (v *Stream) RecvAll(handler StreamSinkFunc) error { // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= SparseRecvAll func (v *Stream) SparseRecvAll(handler StreamSinkFunc, holeHandler StreamS= inkHoleFunc) error { if C.LIBVIR_VERSION_NUMBER < 3004000 { - return GetNotImplementedError("virStreamSparseSendAll") + return makeNotImplementedError("virStreamSparseSendAll") } =20 callbackID :=3D registerCallbackId(handler) @@ -349,7 +349,7 @@ func (v *Stream) SendAll(handler StreamSourceFunc) erro= r { // See also https://libvirt.org/html/libvirt-libvirt-stream.html#virStream= SparseSendAll func (v *Stream) SparseSendAll(handler StreamSourceFunc, holeHandler Strea= mSourceHoleFunc, skipHandler StreamSourceSkipFunc) error { if C.LIBVIR_VERSION_NUMBER < 3004000 { - return GetNotImplementedError("virStreamSparseSendAll") + return makeNotImplementedError("virStreamSparseSendAll") } =20 callbackID :=3D registerCallbackId(handler) --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat Apr 27 16:07:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531747532083789.7766632740618; Mon, 16 Jul 2018 06:25:32 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AE4AC3078AAB; Mon, 16 Jul 2018 13:25:30 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7A2F35D9D1; Mon, 16 Jul 2018 13:25:30 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 2A20D3FC9D; Mon, 16 Jul 2018 13:25:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDPATb028423 for ; Mon, 16 Jul 2018 09:25:10 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3318D2027047; Mon, 16 Jul 2018 13:25:10 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id 749B42026D65; Mon, 16 Jul 2018 13:25:09 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:23 +0100 Message-Id: <20180716132423.10354-38-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 37/37] connect: add missing references on domain object in stats records X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Mon, 16 Jul 2018 13:25:31 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Signed-off-by: Daniel P. Berrang=C3=A9 --- connect.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/connect.go b/connect.go index 34a96ed..8cc7cc7 100644 --- a/connect.go +++ b/connect.go @@ -2915,6 +2915,10 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, = statsTypes DomainStatsTypes, stats[i] =3D domstats } =20 + for i :=3D 0; i < len(stats); i++ { + C.virDomainRef(stats[i].Domain.ptr) + } + return stats, nil } =20 --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list