patch-2.3.41 linux/arch/m68k/lib/semaphore.S
Next file: linux/arch/m68k/mm/fault.c
Previous file: linux/arch/m68k/lib/lshrdi3.c
Back to the patch index
Back to the overall index
- Lines: 59
- Date:
Wed Jan 26 12:44:20 2000
- Orig file:
v2.3.40/linux/arch/m68k/lib/semaphore.S
- Orig date:
Tue May 11 09:57:14 1999
diff -u --recursive --new-file v2.3.40/linux/arch/m68k/lib/semaphore.S linux/arch/m68k/lib/semaphore.S
@@ -7,6 +7,7 @@
*/
#include <linux/linkage.h>
+#include <asm/semaphore.h>
/*
* The semaphore operations have a special calling sequence that
@@ -49,3 +50,50 @@
movel (%sp)+,%a1
moveml (%sp)+,%a0/%d0/%d1
rts
+
+ENTRY(__down_read_failed)
+ moveml %a0/%d0/%d1,-(%sp)
+ jcc 3f
+1: movel %a1,-(%sp)
+ jbsr SYMBOL_NAME(down_read_failed_biased)
+ movel (%sp)+,%a1
+2: moveml (%sp)+,%a0/%d0/%d1
+ rts
+
+3: movel %a1,-(%sp)
+ jbsr SYMBOL_NAME(down_read_failed)
+ movel (%sp)+,%a1
+ subql #1,%a1@
+ jpl 2b
+ jcc 3b
+ jra 1b
+
+ENTRY(__down_write_failed)
+ moveml %a0/%d0/%d1,-(%sp)
+ jcc 3f
+1: movel %a1,-(%sp)
+ jbsr SYMBOL_NAME(down_write_failed_biased)
+ movel (%sp)+,%a1
+2: moveml (%sp)+,%a0/%d0/%d1
+ rts
+
+3: movel %a1,-(%sp)
+ jbsr SYMBOL_NAME(down_write_failed)
+ movel (%sp)+,%a1
+ subl #RW_LOCK_BIAS,%a1@
+ jpl 2b
+ jcc 3b
+ jra 1b
+
+ENTRY(__rwsem_wake)
+ moveml %a0/%d0/%d1,-(%sp)
+ jeq 1f
+ movel %a1,-(%sp)
+ jbsr SYMBOL_NAME(rwsem_wake_readers)
+ jra 2f
+1: movel %a1,-(%sp)
+ jbsr rwsem_wake_writer
+2: movel (%sp)+,%a1
+ moveml (%sp)+,%a0/%d0/%d1
+ rts
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)