summaryrefslogtreecommitdiffstats
path: root/sys/modules/linux
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2007-05-23 08:33:06 +0000
committerkib <kib@FreeBSD.org>2007-05-23 08:33:06 +0000
commitcdee790df9aefa589048c813a730fb95c714bd3a (patch)
tree9e0211f55a99ffc4fef4f84e9c3b74e63cc9cbc6 /sys/modules/linux
parent253a9fb8b6b9af702912dffa3b9addcd79d4618b (diff)
downloadFreeBSD-src-cdee790df9aefa589048c813a730fb95c714bd3a.zip
FreeBSD-src-cdee790df9aefa589048c813a730fb95c714bd3a.tar.gz
Move futex support code from <arch>/support.s into linux compat directory.
Implement all futex atomic operations in assembler to not depend on the fuword() that does not allow to distinguish between -1 and failure return. Correctly return 0 from atomic operations on success. In collaboration with: rdivacky Tested by: Scot Hetzel <swhetzel gmail com>, Milos Vyletel <mvyletel mzm cz> Sponsored by: Google SoC 2007
Diffstat (limited to 'sys/modules/linux')
-rw-r--r--sys/modules/linux/Makefile12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/modules/linux/Makefile b/sys/modules/linux/Makefile
index 1230470..5d956d9 100644
--- a/sys/modules/linux/Makefile
+++ b/sys/modules/linux/Makefile
@@ -14,8 +14,12 @@ SRCS= linux${SFX}_dummy.c linux_emul.c linux_file.c \
linux_socket.c linux_stats.c linux_sysctl.c linux${SFX}_sysent.c \
linux${SFX}_sysvec.c linux_uid16.c linux_util.c linux_time.c \
opt_inet6.h opt_mac.h opt_compat.h opt_posix.h vnode_if.h \
- device_if.h bus_if.h
-OBJS= linux${SFX}_locore.o
+ device_if.h bus_if.h assym.s
+
+# XXX: for assym.s
+SRCS+= opt_kstack_pages.h opt_nfs.h opt_apic.h opt_compat.h
+
+OBJS= linux${SFX}_locore.o linux${SFX}_support.o
.if ${MACHINE_ARCH} == "i386"
SRCS+= linux_ptrace.c imgact_linux.c opt_cpu.h
@@ -41,6 +45,10 @@ linux${SFX}_locore.o: linux${SFX}_locore.s linux${SFX}_assym.h
${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
${.IMPSRC} -o ${.TARGET}
+linux${SFX}_support.o: linux${SFX}_support.s assym.s
+ ${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
+ ${.IMPSRC} -o ${.TARGET}
+
linux${SFX}_genassym.o: linux${SFX}_genassym.c linux.h @ machine
${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC}
OpenPOWER on IntegriCloud