66 lines
2.8 KiB
Diff
66 lines
2.8 KiB
Diff
diff --git a/src/basic/virt.c b/src/basic/virt.c
|
|
index 7e88f09..de1acf1 100644
|
|
--- a/src/basic/virt.c
|
|
+++ b/src/basic/virt.c
|
|
@@ -140,7 +140,7 @@ static int detect_vm_device_tree(void) {
|
|
#endif
|
|
}
|
|
|
|
-#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
|
|
+#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch64)
|
|
static int detect_vm_dmi_vendor(void) {
|
|
static const char *const dmi_vendors[] = {
|
|
"/sys/class/dmi/id/product_name", /* Test this before sys_vendor to detect KVM over QEMU */
|
|
@@ -225,10 +225,10 @@ static int detect_vm_smbios(void) {
|
|
log_debug("DMI BIOS Extension table does not indicate virtualization.");
|
|
return SMBIOS_VM_BIT_UNSET;
|
|
}
|
|
-#endif /* defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) */
|
|
+#endif /* defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch64) */
|
|
|
|
static int detect_vm_dmi(void) {
|
|
-#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
|
|
+#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__loongarch64)
|
|
|
|
int r;
|
|
r = detect_vm_dmi_vendor();
|
|
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
|
|
index 125e0bb..6e168d3 100644
|
|
--- a/src/test/test-execute.c
|
|
+++ b/src/test/test-execute.c
|
|
@@ -284,6 +284,8 @@ static void test_exec_personality(Manager *m) {
|
|
|
|
#elif defined(__i386__)
|
|
test(m, "exec-personality-x86.service", 0, CLD_EXITED);
|
|
+#elif defined(__loongarch64)
|
|
+ test(m, "exec-personality-loongarch64.service", 0, CLD_EXITED);
|
|
#else
|
|
log_notice("Unknown personality, skipping %s", __func__);
|
|
#endif
|
|
diff --git a/src/udev/meson.build b/src/udev/meson.build
|
|
index 4e80f9b..f2eb0b2 100644
|
|
--- a/src/udev/meson.build
|
|
+++ b/src/udev/meson.build
|
|
@@ -129,7 +129,7 @@ udev_id_progs = [['ata_id/ata_id.c'],
|
|
'mtd_probe/mtd_probe.h',
|
|
'mtd_probe/probe_smartmedia.c']]
|
|
|
|
-dmi_arches = ['x86', 'x86_64', 'aarch64', 'arm', 'ia64', 'mips']
|
|
+dmi_arches = ['x86', 'x86_64', 'aarch64', 'arm', 'ia64', 'loongarch64', 'mips']
|
|
if dmi_arches.contains(host_machine.cpu_family())
|
|
udev_id_progs += [['dmi_memory_id/dmi_memory_id.c']]
|
|
endif
|
|
diff --git a/test/test-execute/exec-personality-loongarch64.service b/test/test-execute/exec-personality-loongarch64.service
|
|
new file mode 100644
|
|
index 0000000..0531ad1
|
|
--- /dev/null
|
|
+++ b/test/test-execute/exec-personality-loongarch64.service
|
|
@@ -0,0 +1,7 @@
|
|
+[Unit]
|
|
+Description=Test for Personality=loongarch64
|
|
+
|
|
+[Service]
|
|
+ExecStart=/bin/sh -c 'echo $(uname -m); exit $(test $(uname -m) = "loongarch64")'
|
|
+Type=oneshot
|
|
+Personality=loongarch64
|