From 5458506881d9ff73287df354d3be75b35d339f24 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Tue, 7 Jul 2015 19:17:55 +0200 Subject: [PATCH] all kernels: declare _tas() to prevent pulling in libc version (for libmemdraw) --- sys/src/9/bitsy/l.s | 1 + sys/src/9/mtx/l.s | 1 + sys/src/9/omap4/l.s | 1 + sys/src/9/pc/l.s | 1 + sys/src/9/pc64/l.s | 1 + sys/src/9/ppc/l.s | 1 + sys/src/9/sgi/l.s | 2 +- sys/src/9/teg2/l.s | 4 +++- sys/src/9/teg2/main.c | 6 ------ sys/src/9/xen/l.s | 20 +------------------- sys/src/9/zynq/l.s | 4 +++- sys/src/9/zynq/main.c | 8 -------- 12 files changed, 14 insertions(+), 36 deletions(-) diff --git a/sys/src/9/bitsy/l.s b/sys/src/9/bitsy/l.s index 281fa41b0..e533b9caa 100644 --- a/sys/src/9/bitsy/l.s +++ b/sys/src/9/bitsy/l.s @@ -449,6 +449,7 @@ TEXT getcallerpc(SB), $-4 RET TEXT tas(SB), $-4 +TEXT _tas(SB), $-4 MOVW R0, R1 MOVW $0xDEADDEAD, R0 MOVW R0, R3 diff --git a/sys/src/9/mtx/l.s b/sys/src/9/mtx/l.s index c450e5564..25e8b4b50 100644 --- a/sys/src/9/mtx/l.s +++ b/sys/src/9/mtx/l.s @@ -266,6 +266,7 @@ dcf1: RETURN TEXT tas(SB), $0 +TEXT _tas(SB), $0 SYNC MOVW R3, R4 MOVW $0xdead,R5 diff --git a/sys/src/9/omap4/l.s b/sys/src/9/omap4/l.s index 74f0d6492..cd7aa1a16 100644 --- a/sys/src/9/omap4/l.s +++ b/sys/src/9/omap4/l.s @@ -115,6 +115,7 @@ TEXT islo(SB), 1, $-4 RET TEXT tas(SB), $-4 +TEXT _tas(SB), $-4 spintas: LDREX(0,1) CMP.S $0, R1 diff --git a/sys/src/9/pc/l.s b/sys/src/9/pc/l.s index 0d28ab2f1..f9e5c5372 100644 --- a/sys/src/9/pc/l.s +++ b/sys/src/9/pc/l.s @@ -690,6 +690,7 @@ TEXT islo(SB), $0 * Test-And-Set */ TEXT tas(SB), $0 +TEXT _tas(SB), $0 MOVL $0xDEADDEAD, AX MOVL lock+0(FP), BX XCHGL AX, (BX) /* lock->key */ diff --git a/sys/src/9/pc64/l.s b/sys/src/9/pc64/l.s index 6736ec42b..45b0f3662 100644 --- a/sys/src/9/pc64/l.s +++ b/sys/src/9/pc64/l.s @@ -520,6 +520,7 @@ TEXT islo(SB), 1, $-4 * Synchronisation */ TEXT tas(SB), 1, $-4 +TEXT _tas(SB), 1, $-4 MOVL $0xdeaddead, AX XCHGL AX, (RARG) /* */ RET diff --git a/sys/src/9/ppc/l.s b/sys/src/9/ppc/l.s index 3904258b4..96b166f9e 100644 --- a/sys/src/9/ppc/l.s +++ b/sys/src/9/ppc/l.s @@ -346,6 +346,7 @@ icf1: RETURN TEXT tas(SB), $0 +TEXT _tas(SB), $0 MOVW R3, R4 MOVW $0xdead, R5 tas1: diff --git a/sys/src/9/sgi/l.s b/sys/src/9/sgi/l.s index e79be9b17..d3fe25d2b 100644 --- a/sys/src/9/sgi/l.s +++ b/sys/src/9/sgi/l.s @@ -721,8 +721,8 @@ TEXT fcr31(SB), $0 /* fp csr */ * Emulate 68020 test and set: load linked / store conditional */ -TEXT _tas(SB), $0 TEXT tas(SB), $0 +TEXT _tas(SB), $0 MOVW R1, R2 /* address of key */ tas1: MOVW $1, R3 diff --git a/sys/src/9/teg2/l.s b/sys/src/9/teg2/l.s index 793438e83..f82264f27 100644 --- a/sys/src/9/teg2/l.s +++ b/sys/src/9/teg2/l.s @@ -843,7 +843,8 @@ GLOBL cpus_proceed+0(SB), $4 #include "cache.v7.s" -TEXT cas+0(SB),0,$12 /* r0 holds p */ +TEXT cas(SB),0,$12 +TEXT cmpswap(SB),0,$12 /* r0 holds p */ MOVW ov+4(FP), R1 MOVW nv+8(FP), R2 spin: @@ -863,6 +864,7 @@ fail: RET TEXT tas(SB), $-4 /* _tas(ulong *) */ +TEXT _tas(SB), $-4 /* returns old (R0) after modifying (R0) */ MOVW R0,R5 DMB diff --git a/sys/src/9/teg2/main.c b/sys/src/9/teg2/main.c index c8e511d19..f5feced0a 100644 --- a/sys/src/9/teg2/main.c +++ b/sys/src/9/teg2/main.c @@ -920,12 +920,6 @@ confinit(void) imagmem->maxsize = kpages; } -int -cmpswap(long *addr, long old, long new) -{ - return cas((int *)addr, old, new); -} - void advertwfi(void) /* advertise my wfi status */ { diff --git a/sys/src/9/xen/l.s b/sys/src/9/xen/l.s index dbfbf248e..f50fd5842 100644 --- a/sys/src/9/xen/l.s +++ b/sys/src/9/xen/l.s @@ -195,30 +195,12 @@ TEXT fpclear(SB), $0 /* clear pending exceptions */ * Test-And-Set */ TEXT tas(SB), $0 +TEXT _tas(SB), $0 MOVL $0xDEADDEAD, AX MOVL lock+0(FP), BX XCHGL AX, (BX) /* lock->key */ RET -TEXT _xinc(SB), $0 /* void _xinc(long*); */ - MOVL l+0(FP), AX - LOCK; INCL 0(AX) - RET - -TEXT _xdec(SB), $0 /* long _xdec(long*); */ - MOVL l+0(FP), BX - XORL AX, AX - LOCK; DECL 0(BX) - JLT _xdeclt - JGT _xdecgt - RET -_xdecgt: - INCL AX - RET -_xdeclt: - DECL AX - RET - TEXT getstack(SB), $0 MOVL SP, AX RET diff --git a/sys/src/9/zynq/l.s b/sys/src/9/zynq/l.s index 5d35146fd..cdeebc140 100644 --- a/sys/src/9/zynq/l.s +++ b/sys/src/9/zynq/l.s @@ -237,7 +237,8 @@ TEXT gotolabel(SB), $-4 MOVW $1, R0 RET -TEXT cas(SB), $0 +TEXT cas(SB), $0 +TEXT cmpswap(SB), $0 MOVW ov+4(FP), R1 MOVW nv+8(FP), R2 spincas: @@ -256,6 +257,7 @@ fail: RET TEXT tas(SB), $0 +TEXT _tas(SB), $0 MOVW $0xDEADDEAD, R2 _tas1: LDREX (R0), R1 diff --git a/sys/src/9/zynq/main.c b/sys/src/9/zynq/main.c index 6a3ce2951..969bede81 100644 --- a/sys/src/9/zynq/main.c +++ b/sys/src/9/zynq/main.c @@ -70,14 +70,6 @@ procsetup(Proc *p) p->pcycles = -p->kentry; } -int -cmpswap(long *a, long b, long c) -{ - extern int cas(int *, int, int); - - return cas((int *) a, b, c); -} - void kexit(Ureg *) {