From patchwork Wed May 5 11:15:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 12239753 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34625C433B4 for ; Wed, 5 May 2021 11:17:18 +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 97FDF610A7 for ; Wed, 5 May 2021 11:17:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 97FDF610A7 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.123009.232063 (Exim 4.92) (envelope-from ) id 1leFWZ-0007YP-3k; Wed, 05 May 2021 11:17:03 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 123009.232063; Wed, 05 May 2021 11:17:03 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1leFWZ-0007YI-0S; Wed, 05 May 2021 11:17:03 +0000 Received: by outflank-mailman (input) for mailman id 123009; Wed, 05 May 2021 11:17:01 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1leFWX-0007YB-LV for xen-devel@lists.xenproject.org; Wed, 05 May 2021 11:17:01 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 24d0530d-f50a-4d6b-aece-2cebf12cb607; Wed, 05 May 2021 11:17:00 +0000 (UTC) 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: 24d0530d-f50a-4d6b-aece-2cebf12cb607 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1620213420; h=from:to:cc:subject:date:message-id: content-transfer-encoding:mime-version; bh=IEv5J0a3Yb64RUsVoPmC0OSXkoGKJxR6yV+Y6hxAXDE=; b=haKk5AOflyseaZN2CubrTt4WZQmdJtr8/+N5Huq+9yVaQ49i2J6XlFmg rrJOgcDoTqPLORa9AzaoMQrPY30ouf1gcEy1NeR2SPAH23VMpy40RUZl+ nV0Irxa4Hu2GN4QIz4AJZxTLitRgsaQd1wOGDG2AuG8DFPj8NDd5i5VYG Y=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: dB/AvBxhu0khi0C/B41B7S4F99/9K4G4CCb3rQT2Vnw9kuW6f/6ERrO/H0fxVsNTg9wFLKjF3U V/KR81VPmowsDIFtclloC+FMgZNu7+SK1zqfDvh2qu9pJ8a5SFrL+H9HlirriqbNvm8S90bQQq 7sFkJvtSSScfvJmVO9aYQjhfdDGvStnTzlkSv8bh7dZ6qlQtf8JY586FGxqbS+PXL6ay4TZ0Rt JsWgHdprNVwFTTMJrNZftvg2aeig2yafbWTzrR8tIi3XroaYlu/to8IOr4GjQ0KPnMWzuSiGi7 bVI= X-SBRS: 5.1 X-MesageID: 43490432 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:Q6u+7q/nsJ5mOSJ01X5uk+EKdb1zdoIgy1knxilNYDRIb82VkN 2vlvwH1RnyzA0cQm0khMroAsS9aFnXnKQU3aA6O7C+UA76/Fa5NY0K1/qH/xTMOQ3bstRc26 BpbrRkBLTLZ2RSoM7m7GCDfOoI78KA9MmT69v261dIYUVUZ7p77wF/Yzzrd3FeYAVdH5I2GN 69y6N81lmdUE8aZMi6GXUJNtKrz7H2vanrfAIcAFof4BSO5AnC1JfBDxOa0h0COgk/o4sKzG 6tqW3Ez5Tmid6X4Fv212jf75NZ8eGRt+drNYi3peU+bhnpggasTox9V7OFpyBdmpDS1H8a1O Pijj1lE8Nv627AXmzdm2qT5yDQlAwAxlWn6ViEjWDtqcb0LQhKdfZptMZiXTbyr28D1esMt5 5j7iaimLd8SS7kpmDb4ePFUhl7/3DE2kYKoKoooFF0FbcFZKQ5l/14wGplVK0uMQjd844dHO xnHKjnlYxrWGLfVXzfs2V1qebcJ0gbL1ODSkgGjMSfzyJbqnB/11cZ38wShB47heoAd6U= X-IronPort-AV: E=Sophos;i="5.82,274,1613451600"; d="scan'208";a="43490432" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aYFHTpQUlcp69nTmQ/bYYFGoG4He246QuzuVgp2R5kGBlD5ky3bCpmsfFybo90Ct3DYiAamZ4RINDmOMc5JcJXt8CEwgc4Flxy6hBAw0ycwmhRPKRFtEhN1YkEbhVwl8c9CBrTauUWlo1iyQw3jxRLnfjn29EJuI8owKxVJwUUNCGLOeqAiayL/PAVsc5162i43VL4zma94itrRAzdj95KwqKE0dLeOk5yqfLFOyJmu5qrLXYzYVh4wVMizPKpSYo+fFrx+ahcX6agfykXQMGfLAhH8H/5/4UOXrWL1UNCBcfy/N61pBeYejCDDCQL6RgNUiz6Ua6rshhp9amY6LJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WnlliABA1MOSnvjHoZCf/ytWk5CO5Q2ObzTDCNg3FPA=; b=MFfA5Vn9CcCtGZ9IPRDS3SVFDJTleQLEDqypFuNmo8ReuTLrvwg/y/K3jUozuDgsHyTXq0ETA8ggblNWM3xxUPsuH0lhhiVZDw21m228GKsKfx2IkUUr0ODOmP90HPljo0cvtu1Jp9nwYUC1LmvzyxoXilYuA2StVMz0wXwM7ZGtIAXIxuwxGjgv8P022hxQq4ttleGQPTTV6fFyJdo74ehjhCjJ1chHL3SYxT/KsEfjzpkrkORd2+H5Y90RvxsUl9COSXkd464SGsVYJ0i7amZ8B5bU/XWExt67NnGSQw0eg4+fcP4ViL/fis4S5ugWNGJkqnu41q8lAbt5/5Gauw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WnlliABA1MOSnvjHoZCf/ytWk5CO5Q2ObzTDCNg3FPA=; b=cLj9mZOf32vmI1OxqulM5uTnmOyxBCtwNNJAr5RjP0nayVYFpfE7/XzxP+JGLl7p7C7ZxLMqdlRFcNhowQHsCyDYXFGdIswBbToXb5JqeSZVa3JwNjzuZUjy/NAseEh9YMnHOIeBioM8pWW1bcKIKQpkkCAYtuiPIl1pHHue/MI= From: Roger Pau Monne To: CC: Roger Pau Monne , Ian Jackson , Wei Liu , Jan Beulich , Andrew Cooper Subject: [PATCH] tools/libs: move cpu policy related prototypes to xenguest.h Date: Wed, 5 May 2021 13:15:08 +0200 Message-ID: <20210505111508.82956-1-roger.pau@citrix.com> X-Mailer: git-send-email 2.31.1 X-ClientProxiedBy: MR2P264CA0119.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:33::35) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cfda7b39-9b26-471d-7cb7-08d90fb74ab2 X-MS-TrafficTypeDiagnostic: DM6PR03MB5273: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2958; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 49MG4m3Fim++wrIzn2krFsGVwfh4h2OXopMFbke8XmBFay3t1mNi7k9SECf2ilUUIbHTGjmPnEgcezrI/aENxgytLZUG14pVH9M7/VI8u0uueuMUzLmLRZJGxPFjcClyNwjg6EOiJPV/rHx/IQKeV99LCchS8YOVj0+kgllBtHt7moYCS1aO4/IlzYC3KFvHT1PhR+7Qf0LbHxoFYaYf5mo1cFQ2Z+nOoHvir4chJPQogZacumTSVgbtkoHN9fGXuvSPPadPnjaUoG4Bj396veLKeyJZ5zwGdcTYRWdGfONnGCo9qi8ZOseSZJqdoHmVQCgkmJSLpkC/Xz7Y07+QxErvDq8FxAivE2PJd6SHZaP8stD3/BrRpEma5QipQWDCijnQGiG0w+DyTQ0b3s1PrxGqEDHw8luSegrrXolGsNT9WJ8iDts7sI1rSbKbpRVlxYE1FEgl0L9n5JYHTTraH1nKg7W0qz6Q5J31oFXrCtzpqZv0I/M2/xagYbg9sZgVCe87CvrTxtAe12pCznelrB0mj23/NEC6QvPKCo7bgy/RjBRLvkxjqq8jWbJmiAQTmA3DGaNWBNjFQ2Q8ozFtj7QLyWeIgXOeDZz9MMCOc6k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(136003)(39860400002)(346002)(376002)(396003)(66946007)(66476007)(66556008)(36756003)(6496006)(956004)(2616005)(5660300002)(316002)(6486002)(4326008)(478600001)(26005)(54906003)(186003)(16526019)(1076003)(6666004)(86362001)(107886003)(6916009)(83380400001)(2906002)(8936002)(38100700002)(8676002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?A8do7fPovN5yfjSRlObpxK5Gpm0ejS?= =?utf-8?q?p9hO8ewYvxKcaKFDJS4Ojh734su+9eoqj5grlTPQ8ovQ7WzQuf7Lng7eAzLQ/I8yR?= =?utf-8?q?XgobRtCbdYIomS5xnkFAIG/0sf/X2IJrAfCem9EdRrsTdedbEQ2BF3LTHYSk0aKph?= =?utf-8?q?BYxCWn5RNhKRzrmHXcf/5ogSPTfTKpaEhx8mCDncCH0rYINRZ+WBiwxQWnFsss+Cr?= =?utf-8?q?FCP6rIpUBe3Us6Cltux6jHDMd5iR8V+1TCH3p/efkI2A8QleDc2MbC0A2JjMzi4vP?= =?utf-8?q?n7lc6H1NjMi7A4ze9vUykUA0BowA96nURIeA2XFUgVPtFgNvv7fn3sECfTRsISegt?= =?utf-8?q?v0tnHkxGdXDtGd1229mNhAspEjHwATOAAA00V1k9yL6NnSushXf9bE/UzRWHQMz4S?= =?utf-8?q?R8iqes3875imf9ny5zxGF5D8LpEIBu5//01lDH1cYqHLpRYt2S3ynHnIm42D2Fat9?= =?utf-8?q?WADrwlv13HL6Jn1eA0mk6b8Y+BN+r7CKgWwg675GU248L4EmreQLTPPk2U8S+9PKj?= =?utf-8?q?wk23pM6iae/wp5KI7bI/SlWV4Oe+VN7R4OAl2Y9g3t1ilCVDAcjSh+T54wk0IzAU7?= =?utf-8?q?5xPS2YeFjQykxgsNsq9jdQGoVcthDklTIoH/fZfVo9rdgDAlkt7lhW9extWstcVvB?= =?utf-8?q?nH6X6sgfWjCLFzVX/HXXi+A0PIxnqOuP+vp1ISsaNLllSjg4OtLLiCoq8BL624BM0?= =?utf-8?q?NoZsPXltx2gJP08KR+5zlPKG6wjLAUqlnE145iy9Rpo/lbhBXwYndGf0xixPamSr7?= =?utf-8?q?dJw19eULA3OtKw5UDO5AN0C3DLPJL8wnzQc/7HPsyCX2N0HogPTV1RsatPTW3Fy8v?= =?utf-8?q?DNesRswLY26vXtvZPVRWs1oSdn5HErO2b66sqAYr/Sw394xeG2qWWjIb2YoRbWWqv?= =?utf-8?q?q1vxXqwvzfzbO3LaZNt8FUJQjcbDnomTAG4vnp7H5IhMz+6YM2ol6hk+Ir6R6rCxG?= =?utf-8?q?AsI6+3dGniS/69j5rGbS8X4Rqia3uk0/DhdbV0bJwOPJtOfWH9+iGiwIDkS/9RgQU?= =?utf-8?q?IEof5ir0aJ/qG7k187NgAURd07O28OFmyraKEBD6IJTPUz2fjDLhAAIgq9TIrSkkM?= =?utf-8?q?fSoQLD5RCyoTD/DVGom8ZqtILIdBWjOq/ZtSMQYqHBwfgCyPrF9SmwhYOl6taA6I3?= =?utf-8?q?iJ6e/Do+m4dKmbK24UlJAry31+kIO6CdxILz/WVw5Ij1AaYxa0K61GUA+SamNbFBw?= =?utf-8?q?cMZAaYn7PREANYToX8kSoPYhQwRS+o2pMiJ1wQu3vElH3TraubIdYs2OW2dLc+JZ/?= =?utf-8?q?jaY7iKOQSNR9NN?= X-MS-Exchange-CrossTenant-Network-Message-Id: cfda7b39-9b26-471d-7cb7-08d90fb74ab2 X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2021 11:16:55.7682 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RERXI4fgQnHLGBxpUc3W7xtCTCyb5g4kcjl0JRkVfgRxgL84RMeCvTiBbih7LluFIxTyz3BbpnjpKSLnmbxFTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5273 X-OriginatorOrg: citrix.com Do this before adding any more stuff to xg_cpuid_x86.c. The placement in xenctrl.h is wrong, as they are implemented by the xenguest library. Note that xg_cpuid_x86.c needs to include xg_private.h, and in turn also fix xg_private.h to include xc_bitops.h. As a result also modify xen-cpuid to include xenguest.h. Reported-by: Andrew Cooper Signed-off-by: Roger Pau Monné Acked-by: Andrew Cooper --- Note this is based on top of Andrew's xc_cpu_policy_t type change. --- tools/include/xenctrl.h | 55 -------------------------------- tools/include/xenguest.h | 56 +++++++++++++++++++++++++++++++++ tools/libs/guest/xg_cpuid_x86.c | 3 +- tools/libs/guest/xg_private.h | 1 + tools/misc/xen-cpuid.c | 1 + 5 files changed, 59 insertions(+), 57 deletions(-) diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h index 58d3377d6ab..e894c5c392d 100644 --- a/tools/include/xenctrl.h +++ b/tools/include/xenctrl.h @@ -2589,61 +2589,6 @@ int xc_psr_get_domain_data(xc_interface *xch, uint32_t domid, uint64_t *data); int xc_psr_get_hw_info(xc_interface *xch, uint32_t socket, xc_psr_feat_type type, xc_psr_hw_info *hw_info); - -typedef struct xc_cpu_policy xc_cpu_policy_t; - -/* Create and free a xc_cpu_policy object. */ -xc_cpu_policy_t *xc_cpu_policy_init(void); -void xc_cpu_policy_destroy(xc_cpu_policy_t *policy); - -/* Retrieve a system policy, or get/set a domains policy. */ -int xc_cpu_policy_get_system(xc_interface *xch, unsigned int policy_idx, - xc_cpu_policy_t *policy); -int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid, - xc_cpu_policy_t *policy); -int xc_cpu_policy_set_domain(xc_interface *xch, uint32_t domid, - xc_cpu_policy_t *policy); - -/* Manipulate a policy via architectural representations. */ -int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t *policy, - xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves, - xen_msr_entry_t *msrs, uint32_t *nr_msrs); -int xc_cpu_policy_update_cpuid(xc_interface *xch, xc_cpu_policy_t *policy, - const xen_cpuid_leaf_t *leaves, - uint32_t nr); -int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy, - const xen_msr_entry_t *msrs, uint32_t nr); - -/* Compatibility calculations. */ -bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host, - xc_cpu_policy_t *guest); - -int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps); -int xc_get_cpu_featureset(xc_interface *xch, uint32_t index, - uint32_t *nr_features, uint32_t *featureset); - -int xc_cpu_policy_get_size(xc_interface *xch, uint32_t *nr_leaves, - uint32_t *nr_msrs); -int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid, - uint32_t nr_leaves, xen_cpuid_leaf_t *leaves, - uint32_t nr_msrs, xen_msr_entry_t *msrs, - uint32_t *err_leaf_p, uint32_t *err_subleaf_p, - uint32_t *err_msr_p); - -uint32_t xc_get_cpu_featureset_size(void); - -enum xc_static_cpu_featuremask { - XC_FEATUREMASK_KNOWN, - XC_FEATUREMASK_SPECIAL, - XC_FEATUREMASK_PV_MAX, - XC_FEATUREMASK_PV_DEF, - XC_FEATUREMASK_HVM_SHADOW_MAX, - XC_FEATUREMASK_HVM_SHADOW_DEF, - XC_FEATUREMASK_HVM_HAP_MAX, - XC_FEATUREMASK_HVM_HAP_DEF, -}; -const uint32_t *xc_get_static_cpu_featuremask(enum xc_static_cpu_featuremask); - #endif int xc_livepatch_upload(xc_interface *xch, diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h index 217022b6e76..03c813a0d78 100644 --- a/tools/include/xenguest.h +++ b/tools/include/xenguest.h @@ -719,4 +719,60 @@ xen_pfn_t *xc_map_m2p(xc_interface *xch, unsigned long max_mfn, int prot, unsigned long *mfn0); + +#if defined(__i386__) || defined(__x86_64__) +typedef struct xc_cpu_policy xc_cpu_policy_t; + +/* Create and free a xc_cpu_policy object. */ +xc_cpu_policy_t *xc_cpu_policy_init(void); +void xc_cpu_policy_destroy(xc_cpu_policy_t *policy); + +/* Retrieve a system policy, or get/set a domains policy. */ +int xc_cpu_policy_get_system(xc_interface *xch, unsigned int policy_idx, + xc_cpu_policy_t *policy); +int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid, + xc_cpu_policy_t *policy); +int xc_cpu_policy_set_domain(xc_interface *xch, uint32_t domid, + xc_cpu_policy_t *policy); + +/* Manipulate a policy via architectural representations. */ +int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t *policy, + xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves, + xen_msr_entry_t *msrs, uint32_t *nr_msrs); +int xc_cpu_policy_update_cpuid(xc_interface *xch, xc_cpu_policy_t *policy, + const xen_cpuid_leaf_t *leaves, + uint32_t nr); +int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy, + const xen_msr_entry_t *msrs, uint32_t nr); + +/* Compatibility calculations. */ +bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host, + xc_cpu_policy_t *guest); + +int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps); +int xc_get_cpu_featureset(xc_interface *xch, uint32_t index, + uint32_t *nr_features, uint32_t *featureset); + +int xc_cpu_policy_get_size(xc_interface *xch, uint32_t *nr_leaves, + uint32_t *nr_msrs); +int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid, + uint32_t nr_leaves, xen_cpuid_leaf_t *leaves, + uint32_t nr_msrs, xen_msr_entry_t *msrs, + uint32_t *err_leaf_p, uint32_t *err_subleaf_p, + uint32_t *err_msr_p); + +uint32_t xc_get_cpu_featureset_size(void); + +enum xc_static_cpu_featuremask { + XC_FEATUREMASK_KNOWN, + XC_FEATUREMASK_SPECIAL, + XC_FEATUREMASK_PV_MAX, + XC_FEATUREMASK_PV_DEF, + XC_FEATUREMASK_HVM_SHADOW_MAX, + XC_FEATUREMASK_HVM_SHADOW_DEF, + XC_FEATUREMASK_HVM_HAP_MAX, + XC_FEATUREMASK_HVM_HAP_DEF, +}; +const uint32_t *xc_get_static_cpu_featuremask(enum xc_static_cpu_featuremask); +#endif /* __i386__ || __x86_64__ */ #endif /* XENGUEST_H */ diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c index 1ebc108213d..144b5a5aee6 100644 --- a/tools/libs/guest/xg_cpuid_x86.c +++ b/tools/libs/guest/xg_cpuid_x86.c @@ -22,8 +22,7 @@ #include #include #include -#include "xc_private.h" -#include "xc_bitops.h" +#include "xg_private.h" #include #include diff --git a/tools/libs/guest/xg_private.h b/tools/libs/guest/xg_private.h index 8f9b257a2f3..db93521c567 100644 --- a/tools/libs/guest/xg_private.h +++ b/tools/libs/guest/xg_private.h @@ -27,6 +27,7 @@ #include #include "xc_private.h" +#include "xc_bitops.h" #include "xenguest.h" #include diff --git a/tools/misc/xen-cpuid.c b/tools/misc/xen-cpuid.c index d4bc83d8c92..2b1a0492b30 100644 --- a/tools/misc/xen-cpuid.c +++ b/tools/misc/xen-cpuid.c @@ -8,6 +8,7 @@ #include #include +#include #include