From nobody Wed May 15 03:48:26 2024 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 header.i=@intel.com; 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=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1652980651; cv=none; d=zohomail.com; s=zohoarc; b=Bn3e8fcGw7sFeieSN4n3VmVGTNMqt71hL5UP0dlRxY3FAy2ASOeJMm16FFj0N8We4GAArm5eTTiSz6Bix5kOpNHxdnzx/+mh9gncKQb3NKDwLA1+1j2usYhaHczpbIor+O0jvOt+VAbgwMu4DeCVKputfBk5/fPu/BmBwfwwO4w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1652980651; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=QI2MMIShLKgNk90mhlaRNmknHJp75c8cYszznCr2YsM=; b=jlQZ+IFGXFN+WczvUALRFgBxtJNd/cZdt3ZKKitkDW0qH0CMbCMPpEYMw0zBGYI0dR8NuUo79ZtL1QzFRsh+wfm6JoPFmOdHIDkusitdmB4hXL54jfsnow9BaMzJ81JroyuAlz2z6vL92Q27uVSOxAW9JBmfCNHCuRo5TOK6334= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; 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) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1652980651899376.43922427099005; Thu, 19 May 2022 10:17:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.333183.556967 (Exim 4.92) (envelope-from ) id 1nrjlp-00036e-CR; Thu, 19 May 2022 17:17:05 +0000 Received: by outflank-mailman (output) from mailman id 333183.556967; Thu, 19 May 2022 17:17:05 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nrjlp-00036X-9E; Thu, 19 May 2022 17:17:05 +0000 Received: by outflank-mailman (input) for mailman id 333183; Thu, 19 May 2022 17:17:04 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nrjlo-0002Zq-58 for xen-devel@lists.xenproject.org; Thu, 19 May 2022 17:17:04 +0000 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 7c146c52-d797-11ec-837e-e5687231ffcc; Thu, 19 May 2022 19:16:59 +0200 (CEST) Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 10:16:55 -0700 Received: from hcommiss-mobl2.amr.corp.intel.com (HELO ubuntu.localdomain) ([10.212.62.193]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 10:16:54 -0700 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: 7c146c52-d797-11ec-837e-e5687231ffcc DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652980619; x=1684516619; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=jFHiIJiSbGbUIR6G4WjofS5RXbmz0hE6Nvokb7TyQhk=; b=See85NEcegUIpfPkjYq1LXrwANbgyqB2iLkAKyOEwkcI0e719YnOm4Zs V6awh80Cac4tXQzFOtGSALZK+Xd3+fEZgX0U4uQTQZ1zvVXWMW097maTd qDi2azfZ7hJiJ2L9KbYntyClHCs01Lna0sdrSu6duMzKlHACD7cXDSoIU 34ZZUh0UlH70FGkFKsUycM6uhisYl+HPJVCmcgNd52WOle1y5lBwyiIXv N5OFr8U6TupJOBwS1Q2m2FIPFdqVP/YlXJLfYmXiaQhDX+VSvM+V8jr9d O66g3mhB4acAaMvF5skptTkYgpe8Z+g0ewrHQ7tMF2z7e/jCNYgcx/f6k w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="332910133" X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="332910133" X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="546209103" From: Tamas K Lengyel To: xen-devel@lists.xenproject.org Cc: Tamas K Lengyel , Wei Liu , Anthony PERARD , Juergen Gross , Andrew Cooper Subject: [PATCH v2] tools/libs/ctrl: rename and export do_memory_op as xc_memory_op Date: Thu, 19 May 2022 13:16:35 -0400 Message-Id: X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1652980652706100001 Content-Type: text/plain; charset="utf-8" Make the do_memory_op function accessible to tools linking with libxc. Similar functions are already available for both domctl and sysctl. As part of this patch we also change the input 'cmd' to be unsigned int to accurate= ly reflect what the hypervisor expects. Signed-off-by: Tamas K Lengyel Reviewed-by: Juergen Gross --- v2: rename function in-place --- tools/include/xenctrl.h | 1 + tools/libs/ctrl/xc_domain.c | 28 +++++++++++++------------- tools/libs/ctrl/xc_mem_access.c | 6 +++--- tools/libs/ctrl/xc_mem_paging.c | 2 +- tools/libs/ctrl/xc_memshr.c | 8 ++++---- tools/libs/ctrl/xc_private.c | 6 +++--- tools/libs/ctrl/xc_private.h | 2 -- tools/libs/guest/xg_dom_boot.c | 6 +++--- tools/libs/guest/xg_sr_common_x86_pv.c | 2 +- 9 files changed, 30 insertions(+), 31 deletions(-) diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h index 95bd5eca67..484e354412 100644 --- a/tools/include/xenctrl.h +++ b/tools/include/xenctrl.h @@ -1597,6 +1597,7 @@ int xc_vmtrace_set_option(xc_interface *xch, uint32_t= domid, =20 int xc_domctl(xc_interface *xch, struct xen_domctl *domctl); int xc_sysctl(xc_interface *xch, struct xen_sysctl *sysctl); +long xc_memory_op(xc_interface *xch, unsigned int cmd, void *arg, size_t l= en); =20 int xc_version(xc_interface *xch, int cmd, void *arg); =20 diff --git a/tools/libs/ctrl/xc_domain.c b/tools/libs/ctrl/xc_domain.c index 71608c00e9..14c0420c35 100644 --- a/tools/libs/ctrl/xc_domain.c +++ b/tools/libs/ctrl/xc_domain.c @@ -736,7 +736,7 @@ int xc_domain_set_memory_map(xc_interface *xch, =20 set_xen_guest_handle(fmap.map.buffer, entries); =20 - rc =3D do_memory_op(xch, XENMEM_set_memory_map, &fmap, sizeof(fmap)); + rc =3D xc_memory_op(xch, XENMEM_set_memory_map, &fmap, sizeof(fmap)); =20 xc_hypercall_bounce_post(xch, entries); =20 @@ -760,7 +760,7 @@ int xc_get_machine_memory_map(xc_interface *xch, =20 set_xen_guest_handle(memmap.buffer, entries); =20 - rc =3D do_memory_op(xch, XENMEM_machine_memory_map, &memmap, sizeof(me= mmap)); + rc =3D xc_memory_op(xch, XENMEM_machine_memory_map, &memmap, sizeof(me= mmap)); =20 xc_hypercall_bounce_post(xch, entries); =20 @@ -814,7 +814,7 @@ int xc_reserved_device_memory_map(xc_interface *xch, =20 set_xen_guest_handle(xrdmmap.buffer, entries); =20 - rc =3D do_memory_op(xch, XENMEM_reserved_device_memory_map, + rc =3D xc_memory_op(xch, XENMEM_reserved_device_memory_map, &xrdmmap, sizeof(xrdmmap)); =20 xc_hypercall_bounce_post(xch, entries); @@ -879,7 +879,7 @@ int xc_domain_get_tsc_info(xc_interface *xch, int xc_domain_maximum_gpfn(xc_interface *xch, uint32_t domid, xen_pfn_t *g= pfns) { struct xen_memory_domain dom =3D { .domid =3D domid }; - long rc =3D do_memory_op(xch, XENMEM_maximum_gpfn, &dom, sizeof(dom)); + long rc =3D xc_memory_op(xch, XENMEM_maximum_gpfn, &dom, sizeof(dom)); =20 if ( rc >=3D 0 ) { @@ -924,7 +924,7 @@ int xc_domain_increase_reservation(xc_interface *xch, =20 set_xen_guest_handle(reservation.extent_start, extent_start); =20 - err =3D do_memory_op(xch, XENMEM_increase_reservation, &reservation, s= izeof(reservation)); + err =3D xc_memory_op(xch, XENMEM_increase_reservation, &reservation, s= izeof(reservation)); =20 xc_hypercall_bounce_post(xch, extent_start); =20 @@ -987,7 +987,7 @@ int xc_domain_decrease_reservation(xc_interface *xch, } set_xen_guest_handle(reservation.extent_start, extent_start); =20 - err =3D do_memory_op(xch, XENMEM_decrease_reservation, &reservation, s= izeof(reservation)); + err =3D xc_memory_op(xch, XENMEM_decrease_reservation, &reservation, s= izeof(reservation)); =20 xc_hypercall_bounce_post(xch, extent_start); =20 @@ -1031,7 +1031,7 @@ int xc_domain_add_to_physmap(xc_interface *xch, .idx =3D idx, .gpfn =3D gpfn, }; - return do_memory_op(xch, XENMEM_add_to_physmap, &xatp, sizeof(xatp)); + return xc_memory_op(xch, XENMEM_add_to_physmap, &xatp, sizeof(xatp)); } =20 int xc_domain_add_to_physmap_batch(xc_interface *xch, @@ -1068,7 +1068,7 @@ int xc_domain_add_to_physmap_batch(xc_interface *xch, set_xen_guest_handle(xatp_batch.gpfns, gpfns); set_xen_guest_handle(xatp_batch.errs, errs); =20 - rc =3D do_memory_op(xch, XENMEM_add_to_physmap_batch, + rc =3D xc_memory_op(xch, XENMEM_add_to_physmap_batch, &xatp_batch, sizeof(xatp_batch)); =20 out: @@ -1087,7 +1087,7 @@ int xc_domain_remove_from_physmap(xc_interface *xch, .domid =3D domid, .gpfn =3D gpfn, }; - return do_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrf= p)); + return xc_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrf= p)); } =20 int xc_domain_claim_pages(xc_interface *xch, @@ -1104,7 +1104,7 @@ int xc_domain_claim_pages(xc_interface *xch, =20 set_xen_guest_handle(reservation.extent_start, HYPERCALL_BUFFER_NULL); =20 - err =3D do_memory_op(xch, XENMEM_claim_pages, &reservation, sizeof(res= ervation)); + err =3D xc_memory_op(xch, XENMEM_claim_pages, &reservation, sizeof(res= ervation)); /* Ignore it if the hypervisor does not support the call. */ if (err =3D=3D -1 && errno =3D=3D ENOSYS) err =3D errno =3D 0; @@ -1134,7 +1134,7 @@ int xc_domain_populate_physmap(xc_interface *xch, } set_xen_guest_handle(reservation.extent_start, extent_start); =20 - err =3D do_memory_op(xch, XENMEM_populate_physmap, &reservation, sizeo= f(reservation)); + err =3D xc_memory_op(xch, XENMEM_populate_physmap, &reservation, sizeo= f(reservation)); =20 xc_hypercall_bounce_post(xch, extent_start); return err; @@ -1197,7 +1197,7 @@ int xc_domain_memory_exchange_pages(xc_interface *xch, set_xen_guest_handle(exchange.in.extent_start, in_extents); set_xen_guest_handle(exchange.out.extent_start, out_extents); =20 - rc =3D do_memory_op(xch, XENMEM_exchange, &exchange, sizeof(exchange)); + rc =3D xc_memory_op(xch, XENMEM_exchange, &exchange, sizeof(exchange)); =20 out: xc_hypercall_bounce_post(xch, in_extents); @@ -1227,7 +1227,7 @@ static int xc_domain_pod_target(xc_interface *xch, .target_pages =3D target_pages }; =20 - err =3D do_memory_op(xch, op, &pod_target, sizeof(pod_target)); + err =3D xc_memory_op(xch, op, &pod_target, sizeof(pod_target)); =20 if ( err < 0 ) DPRINTF("Failed %s_pod_target dom %d\n", @@ -2178,7 +2178,7 @@ int xc_domain_getvnuma(xc_interface *xch, vnuma_topo.domid =3D domid; vnuma_topo.pad =3D 0; =20 - rc =3D do_memory_op(xch, XENMEM_get_vnumainfo, &vnuma_topo, + rc =3D xc_memory_op(xch, XENMEM_get_vnumainfo, &vnuma_topo, sizeof(vnuma_topo)); =20 *nr_vnodes =3D vnuma_topo.nr_vnodes; diff --git a/tools/libs/ctrl/xc_mem_access.c b/tools/libs/ctrl/xc_mem_acces= s.c index b452460e32..6d613037d0 100644 --- a/tools/libs/ctrl/xc_mem_access.c +++ b/tools/libs/ctrl/xc_mem_access.c @@ -38,7 +38,7 @@ int xc_set_mem_access(xc_interface *xch, .nr =3D nr }; =20 - return do_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao)); + return xc_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao)); } =20 int xc_set_mem_access_multi(xc_interface *xch, @@ -71,7 +71,7 @@ int xc_set_mem_access_multi(xc_interface *xch, set_xen_guest_handle(mao.pfn_list, pages); set_xen_guest_handle(mao.access_list, access); =20 - rc =3D do_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao)); + rc =3D xc_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao)); =20 xc_hypercall_bounce_post(xch, access); xc_hypercall_bounce_post(xch, pages); @@ -92,7 +92,7 @@ int xc_get_mem_access(xc_interface *xch, .pfn =3D pfn }; =20 - rc =3D do_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao)); + rc =3D xc_memory_op(xch, XENMEM_access_op, &mao, sizeof(mao)); =20 if ( rc =3D=3D 0 ) *access =3D mao.access; diff --git a/tools/libs/ctrl/xc_mem_paging.c b/tools/libs/ctrl/xc_mem_pagin= g.c index 738f63ac20..999a572cef 100644 --- a/tools/libs/ctrl/xc_mem_paging.c +++ b/tools/libs/ctrl/xc_mem_paging.c @@ -47,7 +47,7 @@ static int xc_mem_paging_memop(xc_interface *xch, uint32_= t domain_id, set_xen_guest_handle(mpo.buffer, buffer); } =20 - rc =3D do_memory_op(xch, XENMEM_paging_op, &mpo, sizeof(mpo)); + rc =3D xc_memory_op(xch, XENMEM_paging_op, &mpo, sizeof(mpo)); =20 if ( buffer ) xc_hypercall_bounce_post(xch, buffer); diff --git a/tools/libs/ctrl/xc_memshr.c b/tools/libs/ctrl/xc_memshr.c index a6cfd7dccf..6c6db8aae8 100644 --- a/tools/libs/ctrl/xc_memshr.c +++ b/tools/libs/ctrl/xc_memshr.c @@ -71,7 +71,7 @@ static int xc_memshr_memop(xc_interface *xch, uint32_t do= mid, { mso->domain =3D domid; =20 - return do_memory_op(xch, XENMEM_sharing_op, mso, sizeof(*mso)); + return xc_memory_op(xch, XENMEM_sharing_op, mso, sizeof(*mso)); } =20 int xc_memshr_nominate_gfn(xc_interface *xch, @@ -275,15 +275,15 @@ int xc_memshr_audit(xc_interface *xch) =20 mso.op =3D XENMEM_sharing_op_audit; =20 - return do_memory_op(xch, XENMEM_sharing_op, &mso, sizeof(mso)); + return xc_memory_op(xch, XENMEM_sharing_op, &mso, sizeof(mso)); } =20 long xc_sharing_freed_pages(xc_interface *xch) { - return do_memory_op(xch, XENMEM_get_sharing_freed_pages, NULL, 0); + return xc_memory_op(xch, XENMEM_get_sharing_freed_pages, NULL, 0); } =20 long xc_sharing_used_frames(xc_interface *xch) { - return do_memory_op(xch, XENMEM_get_sharing_shared_pages, NULL, 0); + return xc_memory_op(xch, XENMEM_get_sharing_shared_pages, NULL, 0); } diff --git a/tools/libs/ctrl/xc_private.c b/tools/libs/ctrl/xc_private.c index c0422662f0..2f99a7d2cf 100644 --- a/tools/libs/ctrl/xc_private.c +++ b/tools/libs/ctrl/xc_private.c @@ -326,7 +326,7 @@ int xc_flush_mmu_updates(xc_interface *xch, struct xc_m= mu *mmu) return flush_mmu_updates(xch, mmu); } =20 -long do_memory_op(xc_interface *xch, int cmd, void *arg, size_t len) +long xc_memory_op(xc_interface *xch, unsigned int cmd, void *arg, size_t l= en) { DECLARE_HYPERCALL_BOUNCE(arg, len, XC_HYPERCALL_BUFFER_BOUNCE_BOTH); long ret =3D -1; @@ -386,7 +386,7 @@ long do_memory_op(xc_interface *xch, int cmd, void *arg= , size_t len) =20 int xc_maximum_ram_page(xc_interface *xch, unsigned long *max_mfn) { - long rc =3D do_memory_op(xch, XENMEM_maximum_ram_page, NULL, 0); + long rc =3D xc_memory_op(xch, XENMEM_maximum_ram_page, NULL, 0); =20 if ( rc >=3D 0 ) { @@ -428,7 +428,7 @@ int xc_machphys_mfn_list(xc_interface *xch, } =20 set_xen_guest_handle(xmml.extent_start, extent_start); - rc =3D do_memory_op(xch, XENMEM_machphys_mfn_list, &xmml, sizeof(xmml)= ); + rc =3D xc_memory_op(xch, XENMEM_machphys_mfn_list, &xmml, sizeof(xmml)= ); if (rc || xmml.nr_extents !=3D max_extents) rc =3D -1; else diff --git a/tools/libs/ctrl/xc_private.h b/tools/libs/ctrl/xc_private.h index ebdf78c2bf..ed960c6f30 100644 --- a/tools/libs/ctrl/xc_private.h +++ b/tools/libs/ctrl/xc_private.h @@ -367,8 +367,6 @@ static inline int do_multicall_op(xc_interface *xch, return ret; } =20 -long do_memory_op(xc_interface *xch, int cmd, void *arg, size_t len); - void *xc_map_foreign_ranges(xc_interface *xch, uint32_t dom, size_t size, int prot, size_t chunksize, privcmd_mmap_entry_t entries[], int nentries); diff --git a/tools/libs/guest/xg_dom_boot.c b/tools/libs/guest/xg_dom_boot.c index f809dcbe97..263a3f4c85 100644 --- a/tools/libs/guest/xg_dom_boot.c +++ b/tools/libs/guest/xg_dom_boot.c @@ -348,7 +348,7 @@ static int compat_gnttab_hvm_seed(xc_interface *xch, ui= nt32_t domid, xc_dom_printf(xch, "%s: d%d: pfn=3D0x%"PRI_xen_pfn, __func__, domid, scratch_gfn); =20 - rc =3D do_memory_op(xch, XENMEM_add_to_physmap, &xatp, sizeof(xatp)); + rc =3D xc_memory_op(xch, XENMEM_add_to_physmap, &xatp, sizeof(xatp)); if ( rc !=3D 0 ) { xc_dom_panic(xch, XC_INTERNAL_ERROR, @@ -366,12 +366,12 @@ static int compat_gnttab_hvm_seed(xc_interface *xch, = uint32_t domid, xc_dom_panic(xch, XC_INTERNAL_ERROR, "%s: failed to seed gnttab entries for d%d\n", __func__, domid); - (void) do_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, + (void) xc_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrfp)); return -1; } =20 - rc =3D do_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrf= p)); + rc =3D xc_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrf= p)); if (rc !=3D 0) { xc_dom_panic(xch, XC_INTERNAL_ERROR, diff --git a/tools/libs/guest/xg_sr_common_x86_pv.c b/tools/libs/guest/xg_s= r_common_x86_pv.c index c0acf00f90..1fa2821e91 100644 --- a/tools/libs/guest/xg_sr_common_x86_pv.c +++ b/tools/libs/guest/xg_sr_common_x86_pv.c @@ -161,7 +161,7 @@ int x86_pv_map_m2p(struct xc_sr_context *ctx) .extent_start =3D { &ctx->x86.pv.compat_m2p_mfn0 }, }; =20 - rc =3D do_memory_op(xch, XENMEM_machphys_compat_mfn_list, + rc =3D xc_memory_op(xch, XENMEM_machphys_compat_mfn_list, &xmml, sizeof(xmml)); if ( rc || xmml.nr_extents !=3D 1 ) { --=20 2.34.1