From 8dbcda99430c2b33e7440c4b26177104a217b9af Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Wed, 16 Mar 2022 16:33:20 +0100 Subject: [PATCH] lx_emul: x86_32 shadow header adaptations required for upcoming intel display driver in 32bit Issue #4450 --- .../include/spec/x86_32/lx_emul/shadow/asm/atomic64_32.h | 2 ++ .../src/include/spec/x86_32/lx_emul/shadow/asm/string_32.h | 1 + repos/dde_linux/src/lib/lx_emul/spec/x86_32/atomic64_32.c | 7 +++++++ repos/pc/src/drivers/usb_host/pc/dep.list | 1 + 4 files changed, 11 insertions(+) diff --git a/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/atomic64_32.h b/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/atomic64_32.h index 3f2e295e28..30a86d2336 100644 --- a/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/atomic64_32.h +++ b/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/atomic64_32.h @@ -16,6 +16,8 @@ typedef struct { s64 __aligned(8) counter; } atomic64_t; +#define ATOMIC64_INIT(val) { (val) } + s64 arch_atomic64_add(s64 i, atomic64_t *v); s64 arch_atomic64_add_return(s64 i, atomic64_t *v); int arch_atomic64_add_unless(atomic64_t *v, s64 a, s64 u); diff --git a/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/string_32.h b/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/string_32.h index 91218d38f1..c43c94b365 100644 --- a/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/string_32.h +++ b/repos/dde_linux/src/include/spec/x86_32/lx_emul/shadow/asm/string_32.h @@ -6,4 +6,5 @@ #ifndef _ASM__STRING_32_H_ #define _ASM__STRING_32_H_ +#include #endif /* _ASM__STRING_32_H_ */ diff --git a/repos/dde_linux/src/lib/lx_emul/spec/x86_32/atomic64_32.c b/repos/dde_linux/src/lib/lx_emul/spec/x86_32/atomic64_32.c index ef58c0441d..923533ba27 100644 --- a/repos/dde_linux/src/lib/lx_emul/spec/x86_32/atomic64_32.c +++ b/repos/dde_linux/src/lib/lx_emul/spec/x86_32/atomic64_32.c @@ -23,3 +23,10 @@ s64 arch_atomic64_sub(s64 i, atomic64_t *v) v->counter -= i; return v->counter; } + + +s64 arch_atomic64_fetch_add(s64 i, atomic64_t *v) +{ + v->counter += i; + return v->counter; +} diff --git a/repos/pc/src/drivers/usb_host/pc/dep.list b/repos/pc/src/drivers/usb_host/pc/dep.list index 32f97cb2e9..59ace380e5 100644 --- a/repos/pc/src/drivers/usb_host/pc/dep.list +++ b/repos/pc/src/drivers/usb_host/pc/dep.list @@ -187,6 +187,7 @@ include/acpi/platform/acgcc.h include/acpi/platform/acgccex.h include/acpi/platform/aclinux.h include/acpi/platform/aclinuxex.h +include/asm-generic/asm-prototypes.h include/asm-generic/atomic-instrumented.h include/asm-generic/atomic-long.h include/asm-generic/barrier.h