[PATCH 2/2] tools/ocaml: Fill arch_config for ARM in domain_getinfo{,list}()

Andrew Cooper <[email protected]> Tue, 28 Jul 2026 16:48:30 +0100
Newsgroups gmane.comp.emulators.xen.devel
Message-ID <[email protected]>
From: Julian Vetter <[email protected]>

Add the missing ARM logic, populating xen_arm_arch_domainconfig
from the raw xc_domaininfo_t the same way the x86 branch does for
xen_x86_arch_domainconfig.

Signed-off-by: Julian Vetter <[email protected]>
Signed-off-by: Andrew Cooper <[email protected]>
---
CC: Andrew Cooper <[email protected]>
CC: Andrii Sultanov <[email protected]>
CC: Guillaume Thouvenin <[email protected]>
CC: Julian Vetter <[email protected]>
CC: Oleksii Kurochko <[email protected]>
---
 tools/ocaml/libs/xc/xenctrl_stubs.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index 441e1d83cfec..fb983709066f 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -444,9 +444,21 @@ static value alloc_domaininfo(xc_domaininfo_t * info)
 
 	Store_field(result, 15, tmp);
 
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__arm__) || defined(__aarch64__)
 
-	tag = 1; /* tag x86 */
+	tag = 0; /* tag ARM */
+
+        /* xen_arm_arch_domainconfig */
+        arch_config = caml_alloc_tuple(3);
+        Field(arch_config, 0) = Val_int(info->arch_config.gic_version);
+        Field(arch_config, 1) = Val_int(info->arch_config.nr_spis);
+
+	tmp = caml_copy_int32(info->arch_config.clock_frequency);
+        Field(arch_config, 2) = tmp;
+
+#elif defined(__i386__) || defined(__x86_64__)
+
+        tag = 1; /* tag x86 */
 
 	/*
 	 * emulation_flags: x86_arch_emulation_flags list;
-- 
2.39.5