From nobody Mon Feb 9 10:16:18 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1621888691; cv=none; d=zohomail.com; s=zohoarc; b=oL1NwvbVPYO5m9NI8+XISX9FQsl4Ibn2v68BSkSUiT+Ygte+Wgmk7M9QKI9YLYWm6tmqKr1mFvf5dwORXI02Qw2+EEfkDkKCvrF6QndqY2LSmQh2stoQiT5rjDpIeHZ59xlscfi8oHhKd9F03oe4yp1cmCwfEwu9OGLwbAiSCVE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621888691; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=uzJn8fV3EdSO38YaBLqYQLo0qSO3Ncl/nRlIGcswrmU=; b=lxQTHsi8ja5UBzn5Hwv3YePTog+5deJ1WISaINuPCrujhj3/tk6QLqfwE1OwzdgyVa9L0haCH12Fwf7u3q5ux9Ca45tpP0g8o6X0ozc5CRM12LPKXqcooGnta9hOM0ptU71EAUtG0zml2dz54HC6vIJU9o9uV87Q0KqfsJ6Iobk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1621888691268977.5550724952188; Mon, 24 May 2021 13:38:11 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.131880.246293 (Exim 4.92) (envelope-from ) id 1llHKn-0002dc-Lv; Mon, 24 May 2021 20:37:57 +0000 Received: by outflank-mailman (output) from mailman id 131880.246293; Mon, 24 May 2021 20:37:57 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llHKn-0002dN-Hg; Mon, 24 May 2021 20:37:57 +0000 Received: by outflank-mailman (input) for mailman id 131880; Mon, 24 May 2021 20:37:55 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1llHKl-0001ey-Rt for xen-devel@lists.xenproject.org; Mon, 24 May 2021 20:37:55 +0000 Received: from mail-qt1-x835.google.com (unknown [2607:f8b0:4864:20::835]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id c2118e63-7738-4f41-97de-3c3d00227708; Mon, 24 May 2021 20:37:43 +0000 (UTC) Received: by mail-qt1-x835.google.com with SMTP id i12so2053527qtr.7 for ; Mon, 24 May 2021 13:37:43 -0700 (PDT) Received: from localhost.localdomain (c-73-89-138-5.hsd1.vt.comcast.net. [73.89.138.5]) by smtp.gmail.com with ESMTPSA id t25sm5142847qkt.62.2021.05.24.13.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 May 2021 13:37:42 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c2118e63-7738-4f41-97de-3c3d00227708 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=uzJn8fV3EdSO38YaBLqYQLo0qSO3Ncl/nRlIGcswrmU=; b=PbqQkJ0hFYrSz/TATustRcgG2UbhpX19aadQxqd9njd05JuntAcPVgWMSMBe29gEJK CcMReC7IcnZUtLa+I+fzo+scENB89+P24hB4fxRa+3PSM7qlEPevfzSgPWYS6DH0Mb8e plNHyCCEq0OEq/CRoNGjPvUx6WuifULGO62ffpEAXGmOFWcJXKhxGF+MtIi7vQ/rm3Nm U10tQXpjwBVscDM9KZ0YyZ0uo8zjg4geNQ5IoysyoFJDCHMScaAUgm0kdH+spVBOLXfv sPaBSqaZt+16Ry1M/OQO7FBa+RFlEqZti2zxwTYozEk41Ca5eGd5Et8iwr/V7E5w0JI9 pSlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=uzJn8fV3EdSO38YaBLqYQLo0qSO3Ncl/nRlIGcswrmU=; b=Wyt6uMLRX9S/ZEO2DVEh4P7j/X8skW6AKwWmeIz0nEl7SgRHS7/dbSMTX3HKKNWx9Z SzvBwIUyOBWy2qfOBfSI3iO9kk1lkNtH+Tw0uAuqaY14KtO5Vhl7/VeqNR6Grtx9lLxJ 7/X1RTyB9HGrkoHuB9/0mAwSokSWj4seQbeBdBY3LpCKpOk9eDfDPVQCVNItULUe5DmB wTBAQgh0E1uEvmEbrjrFJL4wdi9uQsE9DZr+9Ilx7m3HC6Tdf5isZqywt1xNxqjnFcRk OBo9/U2vQp6xJ+hXwIziVybT7sDb6Ogff6/qEaS66OJaexMQoV6JmSFGLnvk37khjU05 2HZA== X-Gm-Message-State: AOAM531s2AwTQ2LYC6wPmirFEG6NNxT2nA4GsSztoU2LT9NkfUkGN8sa ImA1N/HECPbWEGgD575ekZdtu1fDgN0= X-Google-Smtp-Source: ABdhPJyWcoigwKqIU6gEAnW4NBwEWCq09Refxst0zE2koG6GhY4k6z/eLqLY7AK5dmD4+wsBteUUGg== X-Received: by 2002:ac8:1483:: with SMTP id l3mr28238595qtj.142.1621888662674; Mon, 24 May 2021 13:37:42 -0700 (PDT) From: Nick Rosbrook X-Google-Original-From: Nick Rosbrook To: xen-devel@lists.xenproject.prg, xen-devel@lists.xenproject.org Cc: Nick Rosbrook , George Dunlap , Ian Jackson , Wei Liu Subject: [RESEND PATCH 03/12] golang/xenlight: fix string conversion in generated toC functions Date: Mon, 24 May 2021 16:36:44 -0400 Message-Id: <06763aceff41167d3d3bbd603f729572c1f55c77.1621887506.git.rosbrookn@ainfosec.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In gengotypes.py, the toC functions only set C string fields when the Go strings are non-empty. However, to prevent segfaults in some cases, these fields should always at least be set to nil so that the C memory is zeroed out. Update gengotypes.py so that the generated code always sets these fields to nil first, and then proceeds to check if the Go string is non-empty. And, commit the new generated code. Signed-off-by: Nick Rosbrook Reviewed-by: George Dunlap --- tools/golang/xenlight/gengotypes.py | 1 + tools/golang/xenlight/helpers.gen.go | 160 +++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) diff --git a/tools/golang/xenlight/gengotypes.py b/tools/golang/xenlight/ge= ngotypes.py index 3e40c3d5dc..e6daa9b92f 100644 --- a/tools/golang/xenlight/gengotypes.py +++ b/tools/golang/xenlight/gengotypes.py @@ -527,6 +527,7 @@ def xenlight_golang_convert_to_C(ty =3D None, outer_nam= e =3D None, =20 elif gotypename =3D=3D 'string': # Use the cgo helper for converting C strings. + s +=3D '{0}.{1} =3D nil\n'.format(cvarname, cname) s +=3D 'if {0}.{1} !=3D "" {{\n'.format(govarname,goname) s +=3D '{0}.{1} =3D C.CString({2}.{3})}}\n'.format(cvarname,cname, govarname,goname) diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/h= elpers.gen.go index b454b12d52..5222898fb8 100644 --- a/tools/golang/xenlight/helpers.gen.go +++ b/tools/golang/xenlight/helpers.gen.go @@ -154,8 +154,10 @@ C.libxl_vnc_info_dispose(xc)} if err :=3D x.Enable.toC(&xc.enable); err !=3D nil { return fmt.Errorf("converting field Enable: %v", err) } +xc.listen =3D nil if x.Listen !=3D "" { xc.listen =3D C.CString(x.Listen)} +xc.passwd =3D nil if x.Passwd !=3D "" { xc.passwd =3D C.CString(x.Passwd)} xc.display =3D C.int(x.Display) @@ -216,11 +218,13 @@ return fmt.Errorf("converting field Enable: %v", err) } xc.port =3D C.int(x.Port) xc.tls_port =3D C.int(x.TlsPort) +xc.host =3D nil if x.Host !=3D "" { xc.host =3D C.CString(x.Host)} if err :=3D x.DisableTicketing.toC(&xc.disable_ticketing); err !=3D nil { return fmt.Errorf("converting field DisableTicketing: %v", err) } +xc.passwd =3D nil if x.Passwd !=3D "" { xc.passwd =3D C.CString(x.Passwd)} if err :=3D x.AgentMouse.toC(&xc.agent_mouse); err !=3D nil { @@ -233,8 +237,10 @@ if err :=3D x.ClipboardSharing.toC(&xc.clipboard_shari= ng); err !=3D nil { return fmt.Errorf("converting field ClipboardSharing: %v", err) } xc.usbredirection =3D C.int(x.Usbredirection) +xc.image_compression =3D nil if x.ImageCompression !=3D "" { xc.image_compression =3D C.CString(x.ImageCompression)} +xc.streaming_video =3D nil if x.StreamingVideo !=3D "" { xc.streaming_video =3D C.CString(x.StreamingVideo)} =20 @@ -278,8 +284,10 @@ return fmt.Errorf("converting field Enable: %v", err) if err :=3D x.Opengl.toC(&xc.opengl); err !=3D nil { return fmt.Errorf("converting field Opengl: %v", err) } +xc.display =3D nil if x.Display !=3D "" { xc.display =3D C.CString(x.Display)} +xc.xauthority =3D nil if x.Xauthority !=3D "" { xc.xauthority =3D C.CString(x.Xauthority)} =20 @@ -337,6 +345,7 @@ return fmt.Errorf("converting field Uuid: %v", err) } xc.domid =3D C.libxl_domid(x.Domid) xc.ssidref =3D C.uint32_t(x.Ssidref) +xc.ssid_label =3D nil if x.SsidLabel !=3D "" { xc.ssid_label =3D C.CString(x.SsidLabel)} xc.running =3D C.bool(x.Running) @@ -391,6 +400,7 @@ C.libxl_cpupoolinfo_dispose(xc)} }() =20 xc.poolid =3D C.uint32_t(x.Poolid) +xc.pool_name =3D nil if x.PoolName !=3D "" { xc.pool_name =3D C.CString(x.PoolName)} xc.sched =3D C.libxl_scheduler(x.Sched) @@ -458,9 +468,11 @@ if err !=3D nil{ C.libxl_channelinfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -478,6 +490,7 @@ if !ok { return errors.New("wrong type for union key connection") } var pty C.libxl_channelinfo_connection_union_pty +pty.path =3D nil if tmp.Path !=3D "" { pty.path =3D C.CString(tmp.Path)} ptyBytes :=3D C.GoBytes(unsafe.Pointer(&pty),C.sizeof_libxl_channelinfo_co= nnection_union_pty) @@ -563,24 +576,33 @@ C.libxl_version_info_dispose(xc)} =20 xc.xen_version_major =3D C.int(x.XenVersionMajor) xc.xen_version_minor =3D C.int(x.XenVersionMinor) +xc.xen_version_extra =3D nil if x.XenVersionExtra !=3D "" { xc.xen_version_extra =3D C.CString(x.XenVersionExtra)} +xc.compiler =3D nil if x.Compiler !=3D "" { xc.compiler =3D C.CString(x.Compiler)} +xc.compile_by =3D nil if x.CompileBy !=3D "" { xc.compile_by =3D C.CString(x.CompileBy)} +xc.compile_domain =3D nil if x.CompileDomain !=3D "" { xc.compile_domain =3D C.CString(x.CompileDomain)} +xc.compile_date =3D nil if x.CompileDate !=3D "" { xc.compile_date =3D C.CString(x.CompileDate)} +xc.capabilities =3D nil if x.Capabilities !=3D "" { xc.capabilities =3D C.CString(x.Capabilities)} +xc.changeset =3D nil if x.Changeset !=3D "" { xc.changeset =3D C.CString(x.Changeset)} xc.virt_start =3D C.uint64_t(x.VirtStart) xc.pagesize =3D C.int(x.Pagesize) +xc.commandline =3D nil if x.Commandline !=3D "" { xc.commandline =3D C.CString(x.Commandline)} +xc.build_id =3D nil if x.BuildId !=3D "" { xc.build_id =3D C.CString(x.BuildId)} =20 @@ -650,8 +672,10 @@ if err :=3D x.Oos.toC(&xc.oos); err !=3D nil { return fmt.Errorf("converting field Oos: %v", err) } xc.ssidref =3D C.uint32_t(x.Ssidref) +xc.ssid_label =3D nil if x.SsidLabel !=3D "" { xc.ssid_label =3D C.CString(x.SsidLabel)} +xc.name =3D nil if x.Name !=3D "" { xc.name =3D C.CString(x.Name)} xc.domid =3D C.libxl_domid(x.Domid) @@ -665,6 +689,7 @@ if err :=3D x.Platformdata.toC(&xc.platformdata); err != =3D nil { return fmt.Errorf("converting field Platformdata: %v", err) } xc.poolid =3D C.uint32_t(x.Poolid) +xc.pool_name =3D nil if x.PoolName !=3D "" { xc.pool_name =3D C.CString(x.PoolName)} if err :=3D x.RunHotplugScripts.toC(&xc.run_hotplug_scripts); err !=3D nil= { @@ -712,6 +737,7 @@ C.libxl_domain_restore_params_dispose(xc)} =20 xc.checkpointed_stream =3D C.int(x.CheckpointedStream) xc.stream_version =3D C.uint32_t(x.StreamVersion) +xc.colo_proxy_script =3D nil if x.ColoProxyScript !=3D "" { xc.colo_proxy_script =3D C.CString(x.ColoProxyScript)} if err :=3D x.UserspaceColoProxy.toC(&xc.userspace_colo_proxy); err !=3D n= il { @@ -1312,6 +1338,7 @@ xc.shadow_memkb =3D C.uint64_t(x.ShadowMemkb) xc.iommu_memkb =3D C.uint64_t(x.IommuMemkb) xc.rtc_timeoffset =3D C.uint32_t(x.RtcTimeoffset) xc.exec_ssidref =3D C.uint32_t(x.ExecSsidref) +xc.exec_ssid_label =3D nil if x.ExecSsidLabel !=3D "" { xc.exec_ssid_label =3D C.CString(x.ExecSsidLabel)} if err :=3D x.Localtime.toC(&xc.localtime); err !=3D nil { @@ -1323,6 +1350,7 @@ return fmt.Errorf("converting field DisableMigrate: %= v", err) if err :=3D x.Cpuid.toC(&xc.cpuid); err !=3D nil { return fmt.Errorf("converting field Cpuid: %v", err) } +xc.blkdev_start =3D nil if x.BlkdevStart !=3D "" { xc.blkdev_start =3D C.CString(x.BlkdevStart)} if numVnumaNodes :=3D len(x.VnumaNodes); numVnumaNodes > 0 { @@ -1342,15 +1370,20 @@ if err :=3D x.DeviceModelStubdomain.toC(&xc.device_= model_stubdomain); err !=3D nil { return fmt.Errorf("converting field DeviceModelStubdomain: %v", err) } xc.stubdomain_memkb =3D C.uint64_t(x.StubdomainMemkb) +xc.stubdomain_kernel =3D nil if x.StubdomainKernel !=3D "" { xc.stubdomain_kernel =3D C.CString(x.StubdomainKernel)} +xc.stubdomain_ramdisk =3D nil if x.StubdomainRamdisk !=3D "" { xc.stubdomain_ramdisk =3D C.CString(x.StubdomainRamdisk)} +xc.device_model =3D nil if x.DeviceModel !=3D "" { xc.device_model =3D C.CString(x.DeviceModel)} xc.device_model_ssidref =3D C.uint32_t(x.DeviceModelSsidref) +xc.device_model_ssid_label =3D nil if x.DeviceModelSsidLabel !=3D "" { xc.device_model_ssid_label =3D C.CString(x.DeviceModelSsidLabel)} +xc.device_model_user =3D nil if x.DeviceModelUser !=3D "" { xc.device_model_user =3D C.CString(x.DeviceModelUser)} if err :=3D x.Extra.toC(&xc.extra); err !=3D nil { @@ -1397,17 +1430,22 @@ if err :=3D x.ClaimMode.toC(&xc.claim_mode); err != =3D nil { return fmt.Errorf("converting field ClaimMode: %v", err) } xc.event_channels =3D C.uint32_t(x.EventChannels) +xc.kernel =3D nil if x.Kernel !=3D "" { xc.kernel =3D C.CString(x.Kernel)} +xc.cmdline =3D nil if x.Cmdline !=3D "" { xc.cmdline =3D C.CString(x.Cmdline)} +xc.ramdisk =3D nil if x.Ramdisk !=3D "" { xc.ramdisk =3D C.CString(x.Ramdisk)} +xc.device_tree =3D nil if x.DeviceTree !=3D "" { xc.device_tree =3D C.CString(x.DeviceTree)} if err :=3D x.Acpi.toC(&xc.acpi); err !=3D nil { return fmt.Errorf("converting field Acpi: %v", err) } +xc.bootloader =3D nil if x.Bootloader !=3D "" { xc.bootloader =3D C.CString(x.Bootloader)} if err :=3D x.BootloaderArgs.toC(&xc.bootloader_args); err !=3D nil { @@ -1432,6 +1470,7 @@ if !ok { return errors.New("wrong type for union key type") } var hvm C.libxl_domain_build_info_type_union_hvm +hvm.firmware =3D nil if tmp.Firmware !=3D "" { hvm.firmware =3D C.CString(tmp.Firmware)} hvm.bios =3D C.libxl_bios_type(tmp.Bios) @@ -1465,6 +1504,7 @@ return fmt.Errorf("converting field ViridianEnable: %= v", err) if err :=3D tmp.ViridianDisable.toC(&hvm.viridian_disable); err !=3D nil { return fmt.Errorf("converting field ViridianDisable: %v", err) } +hvm.timeoffset =3D nil if tmp.Timeoffset !=3D "" { hvm.timeoffset =3D C.CString(tmp.Timeoffset)} if err :=3D tmp.Hpet.toC(&hvm.hpet); err !=3D nil { @@ -1481,10 +1521,13 @@ return fmt.Errorf("converting field NestedHvm: %v",= err) if err :=3D tmp.Altp2M.toC(&hvm.altp2m); err !=3D nil { return fmt.Errorf("converting field Altp2M: %v", err) } +hvm.system_firmware =3D nil if tmp.SystemFirmware !=3D "" { hvm.system_firmware =3D C.CString(tmp.SystemFirmware)} +hvm.smbios_firmware =3D nil if tmp.SmbiosFirmware !=3D "" { hvm.smbios_firmware =3D C.CString(tmp.SmbiosFirmware)} +hvm.acpi_firmware =3D nil if tmp.AcpiFirmware !=3D "" { hvm.acpi_firmware =3D C.CString(tmp.AcpiFirmware)} hvm.hdtype =3D C.libxl_hdtype(tmp.Hdtype) @@ -1497,6 +1540,7 @@ return fmt.Errorf("converting field Vga: %v", err) if err :=3D tmp.Vnc.toC(&hvm.vnc); err !=3D nil { return fmt.Errorf("converting field Vnc: %v", err) } +hvm.keymap =3D nil if tmp.Keymap !=3D "" { hvm.keymap =3D C.CString(tmp.Keymap)} if err :=3D tmp.Sdl.toC(&hvm.sdl); err !=3D nil { @@ -1509,19 +1553,23 @@ if err :=3D tmp.GfxPassthru.toC(&hvm.gfx_passthru);= err !=3D nil { return fmt.Errorf("converting field GfxPassthru: %v", err) } hvm.gfx_passthru_kind =3D C.libxl_gfx_passthru_kind(tmp.GfxPassthruKind) +hvm.serial =3D nil if tmp.Serial !=3D "" { hvm.serial =3D C.CString(tmp.Serial)} +hvm.boot =3D nil if tmp.Boot !=3D "" { hvm.boot =3D C.CString(tmp.Boot)} if err :=3D tmp.Usb.toC(&hvm.usb); err !=3D nil { return fmt.Errorf("converting field Usb: %v", err) } hvm.usbversion =3D C.int(tmp.Usbversion) +hvm.usbdevice =3D nil if tmp.Usbdevice !=3D "" { hvm.usbdevice =3D C.CString(tmp.Usbdevice)} if err :=3D tmp.VkbDevice.toC(&hvm.vkb_device); err !=3D nil { return fmt.Errorf("converting field VkbDevice: %v", err) } +hvm.soundhw =3D nil if tmp.Soundhw !=3D "" { hvm.soundhw =3D C.CString(tmp.Soundhw)} if err :=3D tmp.XenPlatformPci.toC(&hvm.xen_platform_pci); err !=3D nil { @@ -1550,18 +1598,23 @@ if !ok { return errors.New("wrong type for union key type") } var pv C.libxl_domain_build_info_type_union_pv +pv.kernel =3D nil if tmp.Kernel !=3D "" { pv.kernel =3D C.CString(tmp.Kernel)} pv.slack_memkb =3D C.uint64_t(tmp.SlackMemkb) +pv.bootloader =3D nil if tmp.Bootloader !=3D "" { pv.bootloader =3D C.CString(tmp.Bootloader)} if err :=3D tmp.BootloaderArgs.toC(&pv.bootloader_args); err !=3D nil { return fmt.Errorf("converting field BootloaderArgs: %v", err) } +pv.cmdline =3D nil if tmp.Cmdline !=3D "" { pv.cmdline =3D C.CString(tmp.Cmdline)} +pv.ramdisk =3D nil if tmp.Ramdisk !=3D "" { pv.ramdisk =3D C.CString(tmp.Ramdisk)} +pv.features =3D nil if tmp.Features !=3D "" { pv.features =3D C.CString(tmp.Features)} if err :=3D tmp.E820Host.toC(&pv.e820_host); err !=3D nil { @@ -1578,10 +1631,13 @@ var pvh C.libxl_domain_build_info_type_union_pvh if err :=3D tmp.Pvshim.toC(&pvh.pvshim); err !=3D nil { return fmt.Errorf("converting field Pvshim: %v", err) } +pvh.pvshim_path =3D nil if tmp.PvshimPath !=3D "" { pvh.pvshim_path =3D C.CString(tmp.PvshimPath)} +pvh.pvshim_cmdline =3D nil if tmp.PvshimCmdline !=3D "" { pvh.pvshim_cmdline =3D C.CString(tmp.PvshimCmdline)} +pvh.pvshim_extra =3D nil if tmp.PvshimExtra !=3D "" { pvh.pvshim_extra =3D C.CString(tmp.PvshimExtra)} pvhBytes :=3D C.GoBytes(unsafe.Pointer(&pvh),C.sizeof_libxl_domain_build_i= nfo_type_union_pvh) @@ -1635,6 +1691,7 @@ C.libxl_device_vfb_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) @@ -1644,6 +1701,7 @@ return fmt.Errorf("converting field Vnc: %v", err) if err :=3D x.Sdl.toC(&xc.sdl); err !=3D nil { return fmt.Errorf("converting field Sdl: %v", err) } +xc.keymap =3D nil if x.Keymap !=3D "" { xc.keymap =3D C.CString(x.Keymap)} =20 @@ -1689,10 +1747,12 @@ C.libxl_device_vkb_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) xc.backend_type =3D C.libxl_vkb_backend(x.BackendType) +xc.unique_id =3D nil if x.UniqueId !=3D "" { xc.unique_id =3D C.CString(x.UniqueId)} xc.feature_disable_keyboard =3D C.bool(x.FeatureDisableKeyboard) @@ -1758,14 +1818,18 @@ C.libxl_device_disk_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} +xc.pdev_path =3D nil if x.PdevPath !=3D "" { xc.pdev_path =3D C.CString(x.PdevPath)} +xc.vdev =3D nil if x.Vdev !=3D "" { xc.vdev =3D C.CString(x.Vdev)} xc.backend =3D C.libxl_disk_backend(x.Backend) xc.format =3D C.libxl_disk_format(x.Format) +xc.script =3D nil if x.Script !=3D "" { xc.script =3D C.CString(x.Script)} xc.removable =3D C.int(x.Removable) @@ -1781,13 +1845,17 @@ return fmt.Errorf("converting field ColoEnable: %v"= , err) if err :=3D x.ColoRestoreEnable.toC(&xc.colo_restore_enable); err !=3D nil= { return fmt.Errorf("converting field ColoRestoreEnable: %v", err) } +xc.colo_host =3D nil if x.ColoHost !=3D "" { xc.colo_host =3D C.CString(x.ColoHost)} xc.colo_port =3D C.int(x.ColoPort) +xc.colo_export =3D nil if x.ColoExport !=3D "" { xc.colo_export =3D C.CString(x.ColoExport)} +xc.active_disk =3D nil if x.ActiveDisk !=3D "" { xc.active_disk =3D C.CString(x.ActiveDisk)} +xc.hidden_disk =3D nil if x.HiddenDisk !=3D "" { xc.hidden_disk =3D C.CString(x.HiddenDisk)} =20 @@ -1883,124 +1951,180 @@ C.libxl_device_nic_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) xc.mtu =3D C.int(x.Mtu) +xc.model =3D nil if x.Model !=3D "" { xc.model =3D C.CString(x.Model)} if err :=3D x.Mac.toC(&xc.mac); err !=3D nil { return fmt.Errorf("converting field Mac: %v", err) } +xc.ip =3D nil if x.Ip !=3D "" { xc.ip =3D C.CString(x.Ip)} +xc.bridge =3D nil if x.Bridge !=3D "" { xc.bridge =3D C.CString(x.Bridge)} +xc.ifname =3D nil if x.Ifname !=3D "" { xc.ifname =3D C.CString(x.Ifname)} +xc.script =3D nil if x.Script !=3D "" { xc.script =3D C.CString(x.Script)} xc.nictype =3D C.libxl_nic_type(x.Nictype) xc.rate_bytes_per_interval =3D C.uint64_t(x.RateBytesPerInterval) xc.rate_interval_usecs =3D C.uint32_t(x.RateIntervalUsecs) +xc.gatewaydev =3D nil if x.Gatewaydev !=3D "" { xc.gatewaydev =3D C.CString(x.Gatewaydev)} +xc.coloft_forwarddev =3D nil if x.ColoftForwarddev !=3D "" { xc.coloft_forwarddev =3D C.CString(x.ColoftForwarddev)} +xc.colo_sock_mirror_id =3D nil if x.ColoSockMirrorId !=3D "" { xc.colo_sock_mirror_id =3D C.CString(x.ColoSockMirrorId)} +xc.colo_sock_mirror_ip =3D nil if x.ColoSockMirrorIp !=3D "" { xc.colo_sock_mirror_ip =3D C.CString(x.ColoSockMirrorIp)} +xc.colo_sock_mirror_port =3D nil if x.ColoSockMirrorPort !=3D "" { xc.colo_sock_mirror_port =3D C.CString(x.ColoSockMirrorPort)} +xc.colo_sock_compare_pri_in_id =3D nil if x.ColoSockComparePriInId !=3D "" { xc.colo_sock_compare_pri_in_id =3D C.CString(x.ColoSockComparePriInId)} +xc.colo_sock_compare_pri_in_ip =3D nil if x.ColoSockComparePriInIp !=3D "" { xc.colo_sock_compare_pri_in_ip =3D C.CString(x.ColoSockComparePriInIp)} +xc.colo_sock_compare_pri_in_port =3D nil if x.ColoSockComparePriInPort !=3D "" { xc.colo_sock_compare_pri_in_port =3D C.CString(x.ColoSockComparePriInPort)} +xc.colo_sock_compare_sec_in_id =3D nil if x.ColoSockCompareSecInId !=3D "" { xc.colo_sock_compare_sec_in_id =3D C.CString(x.ColoSockCompareSecInId)} +xc.colo_sock_compare_sec_in_ip =3D nil if x.ColoSockCompareSecInIp !=3D "" { xc.colo_sock_compare_sec_in_ip =3D C.CString(x.ColoSockCompareSecInIp)} +xc.colo_sock_compare_sec_in_port =3D nil if x.ColoSockCompareSecInPort !=3D "" { xc.colo_sock_compare_sec_in_port =3D C.CString(x.ColoSockCompareSecInPort)} +xc.colo_sock_compare_notify_id =3D nil if x.ColoSockCompareNotifyId !=3D "" { xc.colo_sock_compare_notify_id =3D C.CString(x.ColoSockCompareNotifyId)} +xc.colo_sock_compare_notify_ip =3D nil if x.ColoSockCompareNotifyIp !=3D "" { xc.colo_sock_compare_notify_ip =3D C.CString(x.ColoSockCompareNotifyIp)} +xc.colo_sock_compare_notify_port =3D nil if x.ColoSockCompareNotifyPort !=3D "" { xc.colo_sock_compare_notify_port =3D C.CString(x.ColoSockCompareNotifyPort= )} +xc.colo_sock_redirector0_id =3D nil if x.ColoSockRedirector0Id !=3D "" { xc.colo_sock_redirector0_id =3D C.CString(x.ColoSockRedirector0Id)} +xc.colo_sock_redirector0_ip =3D nil if x.ColoSockRedirector0Ip !=3D "" { xc.colo_sock_redirector0_ip =3D C.CString(x.ColoSockRedirector0Ip)} +xc.colo_sock_redirector0_port =3D nil if x.ColoSockRedirector0Port !=3D "" { xc.colo_sock_redirector0_port =3D C.CString(x.ColoSockRedirector0Port)} +xc.colo_sock_redirector1_id =3D nil if x.ColoSockRedirector1Id !=3D "" { xc.colo_sock_redirector1_id =3D C.CString(x.ColoSockRedirector1Id)} +xc.colo_sock_redirector1_ip =3D nil if x.ColoSockRedirector1Ip !=3D "" { xc.colo_sock_redirector1_ip =3D C.CString(x.ColoSockRedirector1Ip)} +xc.colo_sock_redirector1_port =3D nil if x.ColoSockRedirector1Port !=3D "" { xc.colo_sock_redirector1_port =3D C.CString(x.ColoSockRedirector1Port)} +xc.colo_sock_redirector2_id =3D nil if x.ColoSockRedirector2Id !=3D "" { xc.colo_sock_redirector2_id =3D C.CString(x.ColoSockRedirector2Id)} +xc.colo_sock_redirector2_ip =3D nil if x.ColoSockRedirector2Ip !=3D "" { xc.colo_sock_redirector2_ip =3D C.CString(x.ColoSockRedirector2Ip)} +xc.colo_sock_redirector2_port =3D nil if x.ColoSockRedirector2Port !=3D "" { xc.colo_sock_redirector2_port =3D C.CString(x.ColoSockRedirector2Port)} +xc.colo_filter_mirror_queue =3D nil if x.ColoFilterMirrorQueue !=3D "" { xc.colo_filter_mirror_queue =3D C.CString(x.ColoFilterMirrorQueue)} +xc.colo_filter_mirror_outdev =3D nil if x.ColoFilterMirrorOutdev !=3D "" { xc.colo_filter_mirror_outdev =3D C.CString(x.ColoFilterMirrorOutdev)} +xc.colo_filter_redirector0_queue =3D nil if x.ColoFilterRedirector0Queue !=3D "" { xc.colo_filter_redirector0_queue =3D C.CString(x.ColoFilterRedirector0Queu= e)} +xc.colo_filter_redirector0_indev =3D nil if x.ColoFilterRedirector0Indev !=3D "" { xc.colo_filter_redirector0_indev =3D C.CString(x.ColoFilterRedirector0Inde= v)} +xc.colo_filter_redirector0_outdev =3D nil if x.ColoFilterRedirector0Outdev !=3D "" { xc.colo_filter_redirector0_outdev =3D C.CString(x.ColoFilterRedirector0Out= dev)} +xc.colo_filter_redirector1_queue =3D nil if x.ColoFilterRedirector1Queue !=3D "" { xc.colo_filter_redirector1_queue =3D C.CString(x.ColoFilterRedirector1Queu= e)} +xc.colo_filter_redirector1_indev =3D nil if x.ColoFilterRedirector1Indev !=3D "" { xc.colo_filter_redirector1_indev =3D C.CString(x.ColoFilterRedirector1Inde= v)} +xc.colo_filter_redirector1_outdev =3D nil if x.ColoFilterRedirector1Outdev !=3D "" { xc.colo_filter_redirector1_outdev =3D C.CString(x.ColoFilterRedirector1Out= dev)} +xc.colo_compare_pri_in =3D nil if x.ColoComparePriIn !=3D "" { xc.colo_compare_pri_in =3D C.CString(x.ColoComparePriIn)} +xc.colo_compare_sec_in =3D nil if x.ColoCompareSecIn !=3D "" { xc.colo_compare_sec_in =3D C.CString(x.ColoCompareSecIn)} +xc.colo_compare_out =3D nil if x.ColoCompareOut !=3D "" { xc.colo_compare_out =3D C.CString(x.ColoCompareOut)} +xc.colo_compare_notify_dev =3D nil if x.ColoCompareNotifyDev !=3D "" { xc.colo_compare_notify_dev =3D C.CString(x.ColoCompareNotifyDev)} +xc.colo_sock_sec_redirector0_id =3D nil if x.ColoSockSecRedirector0Id !=3D "" { xc.colo_sock_sec_redirector0_id =3D C.CString(x.ColoSockSecRedirector0Id)} +xc.colo_sock_sec_redirector0_ip =3D nil if x.ColoSockSecRedirector0Ip !=3D "" { xc.colo_sock_sec_redirector0_ip =3D C.CString(x.ColoSockSecRedirector0Ip)} +xc.colo_sock_sec_redirector0_port =3D nil if x.ColoSockSecRedirector0Port !=3D "" { xc.colo_sock_sec_redirector0_port =3D C.CString(x.ColoSockSecRedirector0Po= rt)} +xc.colo_sock_sec_redirector1_id =3D nil if x.ColoSockSecRedirector1Id !=3D "" { xc.colo_sock_sec_redirector1_id =3D C.CString(x.ColoSockSecRedirector1Id)} +xc.colo_sock_sec_redirector1_ip =3D nil if x.ColoSockSecRedirector1Ip !=3D "" { xc.colo_sock_sec_redirector1_ip =3D C.CString(x.ColoSockSecRedirector1Ip)} +xc.colo_sock_sec_redirector1_port =3D nil if x.ColoSockSecRedirector1Port !=3D "" { xc.colo_sock_sec_redirector1_port =3D C.CString(x.ColoSockSecRedirector1Po= rt)} +xc.colo_filter_sec_redirector0_queue =3D nil if x.ColoFilterSecRedirector0Queue !=3D "" { xc.colo_filter_sec_redirector0_queue =3D C.CString(x.ColoFilterSecRedirect= or0Queue)} +xc.colo_filter_sec_redirector0_indev =3D nil if x.ColoFilterSecRedirector0Indev !=3D "" { xc.colo_filter_sec_redirector0_indev =3D C.CString(x.ColoFilterSecRedirect= or0Indev)} +xc.colo_filter_sec_redirector0_outdev =3D nil if x.ColoFilterSecRedirector0Outdev !=3D "" { xc.colo_filter_sec_redirector0_outdev =3D C.CString(x.ColoFilterSecRedirec= tor0Outdev)} +xc.colo_filter_sec_redirector1_queue =3D nil if x.ColoFilterSecRedirector1Queue !=3D "" { xc.colo_filter_sec_redirector1_queue =3D C.CString(x.ColoFilterSecRedirect= or1Queue)} +xc.colo_filter_sec_redirector1_indev =3D nil if x.ColoFilterSecRedirector1Indev !=3D "" { xc.colo_filter_sec_redirector1_indev =3D C.CString(x.ColoFilterSecRedirect= or1Indev)} +xc.colo_filter_sec_redirector1_outdev =3D nil if x.ColoFilterSecRedirector1Outdev !=3D "" { xc.colo_filter_sec_redirector1_outdev =3D C.CString(x.ColoFilterSecRedirec= tor1Outdev)} +xc.colo_filter_sec_rewriter0_queue =3D nil if x.ColoFilterSecRewriter0Queue !=3D "" { xc.colo_filter_sec_rewriter0_queue =3D C.CString(x.ColoFilterSecRewriter0Q= ueue)} +xc.colo_checkpoint_host =3D nil if x.ColoCheckpointHost !=3D "" { xc.colo_checkpoint_host =3D C.CString(x.ColoCheckpointHost)} +xc.colo_checkpoint_port =3D nil if x.ColoCheckpointPort !=3D "" { xc.colo_checkpoint_port =3D C.CString(x.ColoCheckpointPort)} =20 @@ -2053,6 +2177,7 @@ xc.power_mgmt =3D C.bool(x.PowerMgmt) xc.permissive =3D C.bool(x.Permissive) xc.seize =3D C.bool(x.Seize) xc.rdm_policy =3D C.libxl_rdm_reserve_policy(x.RdmPolicy) +xc.name =3D nil if x.Name !=3D "" { xc.name =3D C.CString(x.Name)} =20 @@ -2126,6 +2251,7 @@ xc.devid =3D C.libxl_devid(x.Devid) xc.version =3D C.int(x.Version) xc.ports =3D C.int(x.Ports) xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} =20 @@ -2223,6 +2349,7 @@ if err !=3D nil{ C.libxl_device_dtdev_dispose(xc)} }() =20 +xc.path =3D nil if x.Path !=3D "" { xc.path =3D C.CString(x.Path)} =20 @@ -2259,6 +2386,7 @@ C.libxl_device_vtpm_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) @@ -2299,12 +2427,16 @@ C.libxl_device_p9_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} +xc.tag =3D nil if x.Tag !=3D "" { xc.tag =3D C.CString(x.Tag)} +xc.path =3D nil if x.Path !=3D "" { xc.path =3D C.CString(x.Path)} +xc.security_model =3D nil if x.SecurityModel !=3D "" { xc.security_model =3D C.CString(x.SecurityModel)} xc.devid =3D C.libxl_devid(x.Devid) @@ -2339,6 +2471,7 @@ C.libxl_device_pvcallsif_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) @@ -2399,9 +2532,11 @@ C.libxl_device_channel_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) +xc.name =3D nil if x.Name !=3D "" { xc.name =3D C.CString(x.Name)} xc.connection =3D C.libxl_channel_connection(x.Connection) @@ -2416,6 +2551,7 @@ if !ok { return errors.New("wrong type for union key connection") } var socket C.libxl_device_channel_connection_union_socket +socket.path =3D nil if tmp.Path !=3D "" { socket.path =3D C.CString(tmp.Path)} socketBytes :=3D C.GoBytes(unsafe.Pointer(&socket),C.sizeof_libxl_device_c= hannel_connection_union_socket) @@ -2452,6 +2588,7 @@ if err !=3D nil{ C.libxl_connector_param_dispose(xc)} }() =20 +xc.unique_id =3D nil if x.UniqueId !=3D "" { xc.unique_id =3D C.CString(x.UniqueId)} xc.width =3D C.uint32_t(x.Width) @@ -2497,6 +2634,7 @@ C.libxl_device_vdispl_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) @@ -2608,6 +2746,7 @@ if err !=3D nil{ C.libxl_vsnd_stream_dispose(xc)} }() =20 +xc.unique_id =3D nil if x.UniqueId !=3D "" { xc.unique_id =3D C.CString(x.UniqueId)} xc._type =3D C.libxl_vsnd_stream_type(x.Type) @@ -2654,6 +2793,7 @@ if err !=3D nil{ C.libxl_vsnd_pcm_dispose(xc)} }() =20 +xc.name =3D nil if x.Name !=3D "" { xc.name =3D C.CString(x.Name)} if err :=3D x.Params.toC(&xc.params); err !=3D nil { @@ -2714,11 +2854,14 @@ C.libxl_device_vsnd_dispose(xc)} }() =20 xc.backend_domid =3D C.libxl_domid(x.BackendDomid) +xc.backend_domname =3D nil if x.BackendDomname !=3D "" { xc.backend_domname =3D C.CString(x.BackendDomname)} xc.devid =3D C.libxl_devid(x.Devid) +xc.short_name =3D nil if x.ShortName !=3D "" { xc.short_name =3D C.CString(x.ShortName)} +xc.long_name =3D nil if x.LongName !=3D "" { xc.long_name =3D C.CString(x.LongName)} if err :=3D x.Params.toC(&xc.params); err !=3D nil { @@ -3103,9 +3246,11 @@ if err !=3D nil{ C.libxl_diskinfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3149,9 +3294,11 @@ if err !=3D nil{ C.libxl_nicinfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3198,9 +3345,11 @@ if err !=3D nil{ C.libxl_vtpminfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3254,9 +3403,11 @@ xc._type =3D C.libxl_usbctrl_type(x.Type) xc.devid =3D C.libxl_devid(x.Devid) xc.version =3D C.int(x.Version) xc.ports =3D C.int(x.Ports) +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3422,6 +3573,7 @@ if err !=3D nil{ C.libxl_connectorinfo_dispose(xc)} }() =20 +xc.unique_id =3D nil if x.UniqueId !=3D "" { xc.unique_id =3D C.CString(x.UniqueId)} xc.width =3D C.uint32_t(x.Width) @@ -3473,9 +3625,11 @@ if err !=3D nil{ C.libxl_vdisplinfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3611,9 +3765,11 @@ if err !=3D nil{ C.libxl_vsndinfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3664,9 +3820,11 @@ if err !=3D nil{ C.libxl_vkbinfo_dispose(xc)} }() =20 +xc.backend =3D nil if x.Backend !=3D "" { xc.backend =3D C.CString(x.Backend)} xc.backend_id =3D C.uint32_t(x.BackendId) +xc.frontend =3D nil if x.Frontend !=3D "" { xc.frontend =3D C.CString(x.Frontend)} xc.frontend_id =3D C.uint32_t(x.FrontendId) @@ -3902,6 +4060,7 @@ return fmt.Errorf("converting field Compression: %v",= err) if err :=3D x.Netbuf.toC(&xc.netbuf); err !=3D nil { return fmt.Errorf("converting field Netbuf: %v", err) } +xc.netbufscript =3D nil if x.Netbufscript !=3D "" { xc.netbufscript =3D C.CString(x.Netbufscript)} if err :=3D x.Diskbuf.toC(&xc.diskbuf); err !=3D nil { @@ -4035,6 +4194,7 @@ if !ok { return errors.New("wrong type for union key type") } var disk_eject C.libxl_event_type_union_disk_eject +disk_eject.vdev =3D nil if tmp.Vdev !=3D "" { disk_eject.vdev =3D C.CString(tmp.Vdev)} if err :=3D tmp.Disk.toC(&disk_eject.disk); err !=3D nil { --=20 2.17.1