From nobody Sat May 30 11:15:54 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=1778144342; cv=none; d=zohomail.com; s=zohoarc; b=jZavEm08sO32+KXSgRL5dTjpXx2NvkStHXpXiy+hH/TYOLbg17x6YB1tuAZXz8YQtFTP1tO2UKvYLGnbaPMdJ2e5oo9rktlspSbdUaX6/VeCZ4stTZGmGdyl2FACqN3cXLjnD8ASpnMSCqNGVB2akb92kI4fb5SC0nPdGcIegMA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1778144342; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SYXHVV8Ib5D5V2A+joAKLYK+w7GowEGHXajMabRf9Gs=; b=BLewRGnN/thwVURN+vi501Vqe5SfS/rxeI510Kl3bRHf/y0ZviwGxJRmqC+jB+QqivJ91groRgrpmcH6mR51I2UWiMBx54VVIKVsaFpJlV7i42blGBJhLp/bTpELzK5w/QyWs0s2o2XgLkA7MLzcsQPCTQN6P8pqLIt5LJnrUQg= 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) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1778144342943639.5559740502163; Thu, 7 May 2026 01:59:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1302320.1576268 (Exim 4.92) (envelope-from ) id 1wKuZ0-0001iV-I4; Thu, 07 May 2026 08:58:34 +0000 Received: by outflank-mailman (output) from mailman id 1302320.1576268; Thu, 07 May 2026 08:58:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1wKuZ0-0001iO-EX; Thu, 07 May 2026 08:58:34 +0000 Received: by outflank-mailman (input) for mailman id 1302320; Thu, 07 May 2026 08:58:33 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) id 1wKuYz-0001iI-KE for xen-devel@lists.xenproject.org; Thu, 07 May 2026 08:58:33 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1wKuYy-005UeO-TM for xen-devel@lists.xenproject.org; Thu, 07 May 2026 10:58:32 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69fc5434-5cb7-0a2a0a5109dd-0a2a4504c7a8-12 for ; Thu, 07 May 2026 10:58:32 +0200 Received: from [209.85.208.52] (helo=mail-ed1-f52.google.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.56.1) (envelope-from ) id 69fc5438-1dec-0a2a45040019-d155d034c905-3 for ; Thu, 07 May 2026 10:58:32 +0200 Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-670ab084a39so968246a12.3 for ; Thu, 07 May 2026 01:58:32 -0700 (PDT) Received: from fedora (user-109-243-69-121.play-internet.pl. [109.243.69.121]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bc833742a49sm58265666b.34.2026.05.07.01.58.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 01:58:31 -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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:Message-ID:Date:Subject:Cc:To:From" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778144312; x=1778749112; darn=lists.xenproject.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=SYXHVV8Ib5D5V2A+joAKLYK+w7GowEGHXajMabRf9Gs=; b=R6dCZfJz1FyuUvRXIrShP2UakjQ1HZ6ZgVrKN3DOKzQEoL5oqAijVYneWp5IluWfDb 8G+wgVjCPb+NQwrK+uAkvxZpKSydA5w2xqn3xByuO6vSdPm5CDFdCZ4S6qgE6/MugLZz wa8lRdDEsuoQII8ntpfo3izS0svWM2vMZWCyGcJ/sbFBHqzO+mOX0NcpDLJ46F16KaJ0 uHhtT/nchaUKUqTme+ph3spWir/PxShkai8HtwKim5bX6cVGYa2mztX18+6NWkeGQqGF /dBGUBG+U7+lKRYJSfrZgjsUT6NtW2vbPoGAkUEOdNwoWoNLbohpJ0fdzAd41+bq8/en s9Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778144312; x=1778749112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=SYXHVV8Ib5D5V2A+joAKLYK+w7GowEGHXajMabRf9Gs=; b=DglgxEoXzVXWqz8j4eYMVq30RMTi1sIk5Zf0ihZd/KSZukpzf9UPAconpKGBvw7OT3 CvYKBg7WiUsKrVaMkCe9SvoEtg85IhtAOW9T78fVRM3XVB48/LuWGWaKg1zxKTaNVL82 S8Vy+XVDReCNzUYQ0SE+WXqVJvNFldLFWpkHbw4yFRJvrWrtheyshQ/Lq6qGQyRQpqz9 z5K9KTNv5t/5POcW8ivuBA4uy+Pva6wQMxAkGVjMaCmMFoQ67XcQ7xm39lxPj4ogu8yR oaX83Um9MK8LO7p3tDpIa5Cabmc4Fir0KGfDC9+yYNtnwXqwEyyuY4sYinRawccCyKcf syVg== X-Gm-Message-State: AOJu0YyFgEWX+AoV+sXcLMmFD5bTh6rUP/s2w4gJzgJZV3JkCz4fjdkF klBFapyXIj8FSShhfnGcDQ14GhjFUEBOT4+w4wbAEcqGbJLw6OqPARwWEDravw== X-Gm-Gg: AeBDiesyC+Nd8BPJrNqne6ZYyGMh9yTuzrR10mn8VK236oCONVUJIhe0r7TSLaZEAgl ZDGdeDQUVWpIS7nCDEn+BQpHYHnboncVKBbthFONLVJqSyZE3q3Sr/zc6q1MNWAtoUBFfmV5B9J 2KyPwmFUHi0RmsJ4kfs9op1L0ggS8MuM4hvvZWYQ5ZC+IBTlPjvUTgjUBIPfQZ0mY9sdkGGOq6d W4ac/YvhMFpL3ebdQhEUZ0VJXZQjJIYQYXMNNLDWtE/Mxj925MtYZ6xnTZjjD+nZ4o1Ndgcfk2n Uwb40Mwtw44ediKiEPdeZ0lEpXjYuo1bsczRe9AOzH7INztouyJr8Lw3Ky2Y1BcWH0OPzOyIFq5 HpB96tZmNhhBzl72lPcMHiudEb0to6xiwBbsDCloTcvsKxK/Z57z81hwiCJmpbSv5Xh8hLqVy29 Qm16f+CbZ/nLKhNdaw4bD/6ZAA1zkYshUk4ATGPmMQ97m4IL9ukPW3V0TtPr40pI6uRVHYhbzdX IF8cSzS/DXcUK8= X-Received: by 2002:a17:907:e114:b0:b9d:872f:f5b9 with SMTP id a640c23a62f3a-bc56dd14ec2mr352995866b.23.1778144311725; Thu, 07 May 2026 01:58:31 -0700 (PDT) From: Oleksii Kurochko To: xen-devel@lists.xenproject.org Cc: Oleksii Kurochko , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Subject: [PATCH v5] xen: introduce CONFIG_HAS_DOMAIN_TYPE Date: Thu, 7 May 2026 10:58:23 +0200 Message-ID: <20260507085823.73217-1-oleksii.kurochko@gmail.com> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-purgate-ID: tlsNG-ebf023/1778144312-405703FF-68E5C0EA/10/73395122804 X-purgate-type: spam X-purgate-size: 12076 X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1778144344485154100 Content-Type: text/plain; charset="utf-8" As domain type is part of common code now there is no any reason to have architecture-specific set_domain_type() functions so it is dropped. Change the guard around access of kinfo->type to CONFIG_HAS_DOMAIN_TYPE for consistency. Also, drop and add some parentheses to be aligned with the similar if() below. x86 with CONFIG_64BIT=3Dy shouldn't use is_{32,64}bit_domain() as x86 doesn't have support of CONFIG_HAS_DOMAIN_TYPE. Since x86_32 Xen no longer builds, the fallback is currently only relevant for arm32. Signed-off-by: Oleksii Kurochko Reviewed-by: Michal Orzel Acked-by: Jan Beulich --- CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/25065= 83130 --- Changes in v5: - Drop excess parentheses from definion of is_{32,64}bit_domain for 32-bit= case. - Add const for 2-nd argument of set_domain_type(). - Add ASSERT(!domain_tot_pages(d)); inside set_domain_type() to guarantee = what is written in the comment above it. - Add Acked-by: Jan Beulich . --- Changes in v4: - Drop enum domain_type type; from Arm's struct arch_domain. - Add Reviewed-by: Michal Orzel . --- Changes in v3: - Sort properly HAS_DOMAIN_TYPE in xen/common/Kconfig. - Update the comment above is_*bit_domain() macros. --- Changes in v2: - Update the commit message. - Move HAS_DOMAIN_TYPE to xen/common/Kconfig. - Return set_domain_type(), move it to xen/fdt-domain-build.h and make it static inline. - s/CONFIG_ARM_64/CONFIG_HAS_DOMAIN for the places where kinfo->type is us= ed. - Drop parantethes around cpu_has_el1_32 in if() and add around (kinfo->type =3D=3D DOMAIN_32BIT) to be consistent with the similar chec= k below. - Fix comment code style. - Add __packed to definition of enum domain_type --- --- xen/arch/arm/Kconfig | 1 + xen/arch/arm/arm64/domctl.c | 4 ++-- xen/arch/arm/dom0less-build.c | 14 -------------- xen/arch/arm/domain_build.c | 12 +++++------- xen/arch/arm/include/asm/domain.h | 16 ---------------- xen/arch/arm/include/asm/kernel.h | 4 ---- xen/arch/arm/kernel.c | 16 ++++++++-------- xen/common/Kconfig | 3 +++ xen/include/xen/dom0less-build.h | 2 -- xen/include/xen/domain.h | 13 +++++++++++++ xen/include/xen/fdt-domain-build.h | 10 ++++++++++ xen/include/xen/fdt-kernel.h | 5 +++++ xen/include/xen/sched.h | 4 ++++ 13 files changed, 51 insertions(+), 53 deletions(-) diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 2f2b501fdac4..79622b46a10d 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -7,6 +7,7 @@ config ARM_64 def_bool y depends on !ARM_32 select 64BIT + select HAS_DOMAIN_TYPE select HAS_FAST_MULTIPLY select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH =20 diff --git a/xen/arch/arm/arm64/domctl.c b/xen/arch/arm/arm64/domctl.c index 8720d126c97d..9e9a29eb1e78 100644 --- a/xen/arch/arm/arm64/domctl.c +++ b/xen/arch/arm/arm64/domctl.c @@ -21,10 +21,10 @@ static long switch_mode(struct domain *d, enum domain_t= ype type) return -EINVAL; if ( domain_tot_pages(d) !=3D 0 ) return -EBUSY; - if ( d->arch.type =3D=3D type ) + if ( d->type =3D=3D type ) return 0; =20 - d->arch.type =3D type; + d->type =3D type; =20 if ( is_64bit_domain(d) ) for_each_vcpu(d, v) diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c index 4181c105389a..6f73c65e5151 100644 --- a/xen/arch/arm/dom0less-build.c +++ b/xen/arch/arm/dom0less-build.c @@ -237,20 +237,6 @@ int __init make_arch_nodes(struct kernel_info *kinfo) return 0; } =20 -/* TODO: make arch.type generic ? */ -#ifdef CONFIG_ARM_64 -void __init set_domain_type(struct domain *d, struct kernel_info *kinfo) -{ - /* type must be set before allocate memory */ - d->arch.type =3D kinfo->arch.type; -} -#else -void __init set_domain_type(struct domain *d, struct kernel_info *kinfo) -{ - /* Nothing to do */ -} -#endif - int __init init_vuart(struct domain *d, struct kernel_info *kinfo, const struct dt_device_node *node) { diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index a3ff70102376..ad665cd3c045 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1771,15 +1771,15 @@ int __init construct_domain(struct domain *d, struc= t kernel_info *kinfo) BUG_ON(d->vcpu[0] =3D=3D NULL); BUG_ON(v->is_initialised); =20 -#ifdef CONFIG_ARM_64 +#ifdef CONFIG_HAS_DOMAIN_TYPE /* if aarch32 mode is not supported at EL1 do not allow 32-bit domain = */ - if ( !(cpu_has_el1_32) && kinfo->arch.type =3D=3D DOMAIN_32BIT ) + if ( !cpu_has_el1_32 && (kinfo->type =3D=3D DOMAIN_32BIT) ) { printk("Platform does not support 32-bit domain\n"); return -EINVAL; } =20 - if ( is_sve_domain(d) && (kinfo->arch.type =3D=3D DOMAIN_32BIT) ) + if ( is_sve_domain(d) && (kinfo->type =3D=3D DOMAIN_32BIT) ) { printk("SVE is not available for 32-bit domain\n"); return -EINVAL; @@ -1893,10 +1893,8 @@ int __init construct_hwdom(struct kernel_info *kinfo, =20 iommu_hwdom_init(d); =20 -#ifdef CONFIG_ARM_64 - /* type must be set before allocate_memory */ - d->arch.type =3D kinfo->arch.type; -#endif + set_domain_type(d, kinfo); + find_gnttab_region(d, kinfo); if ( is_domain_direct_mapped(d) ) allocate_memory_11(d, kinfo); diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/d= omain.h index ffe5d0d9f0a6..b24f02d269be 100644 --- a/xen/arch/arm/include/asm/domain.h +++ b/xen/arch/arm/include/asm/domain.h @@ -18,18 +18,6 @@ struct hvm_domain uint64_t params[HVM_NR_PARAMS]; }; =20 -#ifdef CONFIG_ARM_64 -enum domain_type { - DOMAIN_32BIT, - DOMAIN_64BIT, -}; -#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT) -#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT) -#else -#define is_32bit_domain(d) (1) -#define is_64bit_domain(d) (0) -#endif - /* * Is the domain using the host memory layout? * @@ -62,10 +50,6 @@ struct paging_domain { =20 struct arch_domain { -#ifdef CONFIG_ARM_64 - enum domain_type type; -#endif - #ifdef CONFIG_ARM64_SVE /* max SVE encoded vector length */ uint8_t sve_vl; diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/k= ernel.h index 7c3b7fde5b64..21f4273fa1b5 100644 --- a/xen/arch/arm/include/asm/kernel.h +++ b/xen/arch/arm/include/asm/kernel.h @@ -10,10 +10,6 @@ =20 struct arch_kernel_info { -#ifdef CONFIG_ARM_64 - enum domain_type type; -#endif - /* Enable pl011 emulation */ bool vpl011; }; diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c index 7544fd50a20f..9395b5af8745 100644 --- a/xen/arch/arm/kernel.c +++ b/xen/arch/arm/kernel.c @@ -100,8 +100,8 @@ static paddr_t __init kernel_zimage_place(struct kernel= _info *info) const struct membanks *mem =3D kernel_info_get_mem(info); paddr_t load_addr; =20 -#ifdef CONFIG_ARM_64 - if ( (info->arch.type =3D=3D DOMAIN_64BIT) && (info->zimage.start =3D= =3D 0) ) +#ifdef CONFIG_HAS_DOMAIN_TYPE + if ( (info->type =3D=3D DOMAIN_64BIT) && (info->zimage.start =3D=3D 0)= ) return mem->bank[0].start + info->zimage.text_offset; #endif =20 @@ -268,14 +268,14 @@ int __init kernel_uimage_probe(struct kernel_info *in= fo, =20 info->load =3D kernel_zimage_load; =20 -#ifdef CONFIG_ARM_64 +#ifdef CONFIG_HAS_DOMAIN_TYPE switch ( uimage.arch ) { case IH_ARCH_ARM: - info->arch.type =3D DOMAIN_32BIT; + info->type =3D DOMAIN_32BIT; break; case IH_ARCH_ARM64: - info->arch.type =3D DOMAIN_64BIT; + info->type =3D DOMAIN_64BIT; break; default: printk(XENLOG_ERR "Unsupported uImage arch type %d\n", uimage.arch= ); @@ -345,7 +345,7 @@ static int __init kernel_zimage64_probe(struct kernel_i= nfo *info, =20 info->load =3D kernel_zimage_load; =20 - info->arch.type =3D DOMAIN_64BIT; + info->type =3D DOMAIN_64BIT; =20 return 0; } @@ -396,8 +396,8 @@ static int __init kernel_zimage32_probe(struct kernel_i= nfo *info, =20 info->load =3D kernel_zimage_load; =20 -#ifdef CONFIG_ARM_64 - info->arch.type =3D DOMAIN_32BIT; +#ifdef CONFIG_HAS_DOMAIN_TYPE + info->type =3D DOMAIN_32BIT; #endif =20 return 0; diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 0a20aa0a1249..5ff71480eebe 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -128,6 +128,9 @@ config HAS_DEVICE_TREE_DISCOVERY config HAS_DOM0LESS bool =20 +config HAS_DOMAIN_TYPE + bool + config HAS_DIT # Data Independent Timing bool =20 diff --git a/xen/include/xen/dom0less-build.h b/xen/include/xen/dom0less-bu= ild.h index faaf660424b2..4118dec76c0a 100644 --- a/xen/include/xen/dom0less-build.h +++ b/xen/include/xen/dom0less-build.h @@ -57,8 +57,6 @@ int init_vuart(struct domain *d, struct kernel_info *kinf= o, int make_intc_domU_node(struct kernel_info *kinfo); int make_arch_nodes(struct kernel_info *kinfo); =20 -void set_domain_type(struct domain *d, struct kernel_info *kinfo); - int init_intc_phandle(struct kernel_info *kinfo, const char *name, const int node_next, const void *pfdt); =20 diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h index 93c0fd00c1d7..a095190fc71a 100644 --- a/xen/include/xen/domain.h +++ b/xen/include/xen/domain.h @@ -13,6 +13,19 @@ struct guest_area { void *map; }; =20 +#ifdef CONFIG_HAS_DOMAIN_TYPE +enum __packed domain_type { + DOMAIN_32BIT, + DOMAIN_64BIT, +}; +#define is_32bit_domain(d) ((d)->type =3D=3D DOMAIN_32BIT) +#define is_64bit_domain(d) ((d)->type =3D=3D DOMAIN_64BIT) +#elif !defined(CONFIG_64BIT) +/* At the moment on 32-bit-only platforms all domains are 32-bit. */ +#define is_32bit_domain(d) true +#define is_64bit_domain(d) false +#endif + #include =20 typedef union { diff --git a/xen/include/xen/fdt-domain-build.h b/xen/include/xen/fdt-domai= n-build.h index 0d40d8cfa105..9465a1021fe3 100644 --- a/xen/include/xen/fdt-domain-build.h +++ b/xen/include/xen/fdt-domain-build.h @@ -7,6 +7,7 @@ #include #include #include +#include #include =20 struct domain; @@ -69,6 +70,15 @@ static inline uint32_t alloc_phandle(struct kernel_info = *kinfo) return kinfo->next_phandle >=3D GUEST_PHANDLE_GIC ? 0 : kinfo->next_ph= andle++; } =20 +static inline void set_domain_type(struct domain *d, const struct kernel_i= nfo *kinfo) +{ +#ifdef CONFIG_HAS_DOMAIN_TYPE + /* Type must be set before allocating memory. */ + ASSERT(!domain_tot_pages(d)); + d->type =3D kinfo->type; +#endif +} + #endif /* __XEN_FDT_DOMAIN_BUILD_H__ */ =20 /* diff --git a/xen/include/xen/fdt-kernel.h b/xen/include/xen/fdt-kernel.h index 4d0467bb396a..86a37a13048b 100644 --- a/xen/include/xen/fdt-kernel.h +++ b/xen/include/xen/fdt-kernel.h @@ -9,6 +9,7 @@ =20 #include #include +#include #include =20 #if __has_include() @@ -65,6 +66,10 @@ struct kernel_info { } zimage; }; =20 +#ifdef CONFIG_HAS_DOMAIN_TYPE + enum domain_type type; +#endif + #if __has_include() struct arch_kernel_info arch; #endif diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 212c7d765c3e..00db1da12f21 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -386,6 +386,10 @@ struct domain { domid_t domain_id; =20 +#ifdef CONFIG_HAS_DOMAIN_TYPE + enum domain_type type; +#endif + unsigned int max_vcpus; =20 uint64_t unique_id; /* Unique domain identifier */ --=20 2.54.0