From patchwork Thu Sep 19 17:16:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anthony PERARD X-Patchwork-Id: 11152987 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AB8D415E6 for ; Thu, 19 Sep 2019 17:42:12 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 871A921A49 for ; Thu, 19 Sep 2019 17:42:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="VqnPWQUE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 871A921A49 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iB0Qp-0004lI-9J; Thu, 19 Sep 2019 17:41:27 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iB0Qn-0004il-B0 for xen-devel@lists.xenproject.org; Thu, 19 Sep 2019 17:41:25 +0000 X-Inumbo-ID: b26c6ccc-db04-11e9-966e-12813bfff9fa Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id b26c6ccc-db04-11e9-966e-12813bfff9fa; Thu, 19 Sep 2019 17:41:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568914884; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7ECqT2JZeGmajyZeTmnC9t4OeRYaTVuKKADJwtHtxIE=; b=VqnPWQUE408t+9zUzCWjlDdkwXjtySN+TdPKJMOaoYW66HLaUSwyIWxS Fw/0dIG2HpDq2hpJAM1q4Yc7zdyr9c5Fz1X2QslcPhiI4pIfTgzco4jqT AWnyCoZW8wI0dlpEOJQtWlUGI/vxmTJuKVQQy9XMGiwX0+EYi1OhyjD6Q I=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: itYXpBqAFAzQZ77khrodyuZNTYbWa4JDaQwLMyaY6JOa5pFIToTW/GdzsTwqM9riq0rJG895Nq RykU9V4zS8TS/AiGddZEPMj9dLH7u3/g0FnzfnIAJ/Uge+1B3Z0AfOFXYg06iHUbrFZ9Cvt833 SMCJ+WQd+Fu/fDwOl4th+jrh8j/A8yTsLekJwl9FpAS3zHX5IY8wMJQLIc1ZRwDvWRZ4mEEgB+ yc3DL4oqOeIHpR+QS3KpjNbf1DwzLEoYZTKnWVxJ0VriyMEfi1c5fGoBrEUMeVhvocJFrj/0qm V/k= X-SBRS: 2.7 X-MesageID: 5806223 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,524,1559534400"; d="scan'208";a="5806223" From: Anthony PERARD To: Date: Thu, 19 Sep 2019 18:16:37 +0100 Message-ID: <20190919171656.899649-18-anthony.perard@citrix.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190919171656.899649-1-anthony.perard@citrix.com> References: <20190919171656.899649-1-anthony.perard@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 17/35] libxl: Add libxl__ev_qmp to libxl__ao_device X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , Ian Jackson , Wei Liu Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" `aodev->qmp' is initialised in libxl__prepare_ao_device(), but since there isn't a single exit path for a `libxl__ao_device', users of this new `qmp' field will have to disposed of it. Signed-off-by: Anthony PERARD Acked-by: Ian Jackson --- Notes: v2: - Added a comment to libxl__prepare_ao_device about fields like `qmp' which might needs to be cleaned up by the caller. tools/libxl/libxl_device.c | 2 ++ tools/libxl/libxl_internal.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c index 1941fe780ac0..1402b61a810b 100644 --- a/tools/libxl/libxl_device.c +++ b/tools/libxl/libxl_device.c @@ -644,6 +644,8 @@ void libxl__prepare_ao_device(libxl__ao *ao, libxl__ao_device *aodev) * without actually calling any hotplug script */ libxl__async_exec_init(&aodev->aes); libxl__ev_child_init(&aodev->child); + + libxl__ev_qmp_init(&aodev->qmp); } /* multidev */ diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 1144aaa3a569..43a431f53565 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -2592,6 +2592,10 @@ typedef void libxl__device_callback(libxl__egc*, libxl__ao_device*); * Once _prepare has been called on a libxl__ao_device, it is safe to just * discard this struct, there's no need to call any destroy function. * _prepare can also be called multiple times with the same libxl__ao_device. + * + * But if any of the fields `backend_ds', `timeout', `xswait', `qmp' is + * used by a caller of _prepare, the caller will have to arrange to clean + * or dispose of them. */ _hidden void libxl__prepare_ao_device(libxl__ao *ao, libxl__ao_device *aodev); @@ -2623,6 +2627,7 @@ struct libxl__ao_device { bool update_json; /* for asynchronous execution of synchronous-only syscalls etc. */ libxl__ev_child child; + libxl__ev_qmp qmp; }; /*