[libvirt] [PATCH 4/6] Implement minimal sysinfo for AArch64 platforms.

Pranavkumar Sawargaonkar pranavkumar at linaro.org
Tue Oct 8 13:49:09 UTC 2013


Implement the bare minimal sysinfo for AArch64 platforms by
reading the CPU models from /proc/cpuinfo.

Signed-off-by: Anup Patel <anup.patel at linaro.org>
Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar at linaro.org>
---
 src/util/virsysinfo.c                   |    3 ++-
 tests/sysinfodata/aarch64cpuinfo.data   |   10 ++++++++++
 tests/sysinfodata/aarch64sysinfo.expect |   10 ++++++++++
 tests/sysinfotest.c                     |   14 +++++++++++++-
 4 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 tests/sysinfodata/aarch64cpuinfo.data
 create mode 100644 tests/sysinfodata/aarch64sysinfo.expect

diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c
index 0802124..1c8cae5 100644
--- a/src/util/virsysinfo.c
+++ b/src/util/virsysinfo.c
@@ -244,7 +244,7 @@ no_memory:
     return NULL;
 }
 
-#elif defined(__arm__)
+#elif defined(__arm__) || defined(__aarch64__)
 static int
 virSysinfoParseSystem(const char *base, virSysinfoDefPtr ret)
 {
@@ -505,6 +505,7 @@ no_memory:
       defined(__i386__) ||   \
       defined(__amd64__) || \
       defined(__arm__) || \
+      defined(__aarch64__) || \
       defined(__powerpc__))
 virSysinfoDefPtr
 virSysinfoRead(void) {
diff --git a/tests/sysinfodata/aarch64cpuinfo.data b/tests/sysinfodata/aarch64cpuinfo.data
new file mode 100644
index 0000000..0d63139
--- /dev/null
+++ b/tests/sysinfodata/aarch64cpuinfo.data
@@ -0,0 +1,10 @@
+Processor	: AArch64 Processor rev 0 (aarch64)
+BogoMIPS	: 100.00
+
+Features	: fp asimd
+CPU architecture: AArch64
+CPU variant	: 0x0
+CPU part	: 0x000
+CPU revision	: 0
+
+Hardware	: Generic AArch64
diff --git a/tests/sysinfodata/aarch64sysinfo.expect b/tests/sysinfodata/aarch64sysinfo.expect
new file mode 100644
index 0000000..518434d
--- /dev/null
+++ b/tests/sysinfodata/aarch64sysinfo.expect
@@ -0,0 +1,10 @@
+<sysinfo type='smbios'>
+  <processor>
+    <entry name='socket_destination'>0</entry>
+    <entry name='type'>AArch64 Processor rev 0 (aarch64) </entry>
+  </processor>
+  <processor>
+    <entry name='socket_destination'>1</entry>
+    <entry name='type'>AArch64 Processor rev 0 (aarch64)</entry>
+  </processor>
+</sysinfo>
diff --git a/tests/sysinfotest.c b/tests/sysinfotest.c
index ba57a7a..a88328f 100644
--- a/tests/sysinfotest.c
+++ b/tests/sysinfotest.c
@@ -43,7 +43,7 @@
 # if defined(__s390__) || defined(__s390x__) || \
      defined(__powerpc__) || defined(__powerpc64__) || \
      defined(__i386__) || defined(__x86_64__) || defined(__amd64__) || \
-     defined(__arm__)
+     defined(__arm__) || defined(__aarch64__)
 
 /* from sysinfo.c */
 void virSysinfoSetup(const char *decoder,
@@ -179,6 +179,18 @@ test_arm(void)
 }
 
 VIRT_TEST_MAIN(test_arm)
+# elif defined(__aarch64__)
+static int
+test_aarch64(void)
+{
+    return sysinfotest_run("aarch64 sysinfo",
+                           NULL,
+                           NULL,
+                           "/sysinfodata/aarch64cpuinfo.data",
+                           "/sysinfodata/aarch64sysinfo.expect");
+}
+
+VIRT_TEST_MAIN(test_aarch64)
 # else
 int
 main(void)
-- 
1.7.9.5




More information about the libvir-list mailing list