patch-2.4.18 linux/include/asm-i386/rwsem.h
Next file: linux/include/asm-i386/semaphore.h
Previous file: linux/include/asm-i386/rwlock.h
Back to the patch index
Back to the overall index
- Lines: 90
- Date:
Thu Jan 10 20:08:20 2002
- Orig file:
linux.orig/include/asm-i386/rwsem.h
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/include/asm-i386/rwsem.h linux/include/asm-i386/rwsem.h
@@ -40,6 +40,7 @@
#include <linux/list.h>
#include <linux/spinlock.h>
+#include <linux/stringify.h>
struct rwsem_waiter;
@@ -101,7 +102,10 @@
LOCK_PREFIX " incl (%%eax)\n\t" /* adds 0x00000001, returns the old value */
" js 2f\n\t" /* jump if we weren't granted the lock */
"1:\n\t"
- ".section .text.lock,\"ax\"\n"
+ ".subsection 1\n"
+ ".ifndef _text_lock_" __stringify(KBUILD_BASENAME) "\n"
+ "_text_lock_" __stringify(KBUILD_BASENAME) ":\n"
+ ".endif\n"
"2:\n\t"
" pushl %%ecx\n\t"
" pushl %%edx\n\t"
@@ -109,7 +113,7 @@
" popl %%edx\n\t"
" popl %%ecx\n\t"
" jmp 1b\n"
- ".previous"
+ ".subsection 0\n"
"# ending down_read\n\t"
: "+m"(sem->count)
: "a"(sem)
@@ -130,13 +134,16 @@
" testl %0,%0\n\t" /* was the count 0 before? */
" jnz 2f\n\t" /* jump if we weren't granted the lock */
"1:\n\t"
- ".section .text.lock,\"ax\"\n"
+ ".subsection 1\n"
+ ".ifndef _text_lock_" __stringify(KBUILD_BASENAME) "\n"
+ "_text_lock_" __stringify(KBUILD_BASENAME) ":\n"
+ ".endif\n"
"2:\n\t"
" pushl %%ecx\n\t"
" call rwsem_down_write_failed\n\t"
" popl %%ecx\n\t"
" jmp 1b\n"
- ".previous\n"
+ ".subsection 0\n"
"# ending down_write"
: "+d"(tmp), "+m"(sem->count)
: "a"(sem)
@@ -154,7 +161,10 @@
LOCK_PREFIX " xadd %%edx,(%%eax)\n\t" /* subtracts 1, returns the old value */
" js 2f\n\t" /* jump if the lock is being waited upon */
"1:\n\t"
- ".section .text.lock,\"ax\"\n"
+ ".subsection 1\n"
+ ".ifndef _text_lock_" __stringify(KBUILD_BASENAME) "\n"
+ "_text_lock_" __stringify(KBUILD_BASENAME) ":\n"
+ ".endif\n"
"2:\n\t"
" decw %%dx\n\t" /* do nothing if still outstanding active readers */
" jnz 1b\n\t"
@@ -162,7 +172,7 @@
" call rwsem_wake\n\t"
" popl %%ecx\n\t"
" jmp 1b\n"
- ".previous\n"
+ ".subsection 0\n"
"# ending __up_read\n"
: "+m"(sem->count), "+d"(tmp)
: "a"(sem)
@@ -180,7 +190,10 @@
LOCK_PREFIX " xaddl %%edx,(%%eax)\n\t" /* tries to transition 0xffff0001 -> 0x00000000 */
" jnz 2f\n\t" /* jump if the lock is being waited upon */
"1:\n\t"
- ".section .text.lock,\"ax\"\n"
+ ".subsection 1\n"
+ ".ifndef _text_lock_" __stringify(KBUILD_BASENAME) "\n"
+ "_text_lock_" __stringify(KBUILD_BASENAME) ":\n"
+ ".endif\n"
"2:\n\t"
" decw %%dx\n\t" /* did the active count reduce to 0? */
" jnz 1b\n\t" /* jump back if not */
@@ -188,7 +201,7 @@
" call rwsem_wake\n\t"
" popl %%ecx\n\t"
" jmp 1b\n"
- ".previous\n"
+ ".subsection 0\n"
"# ending __up_write\n"
: "+m"(sem->count)
: "a"(sem), "i"(-RWSEM_ACTIVE_WRITE_BIAS)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)