aboutsummaryrefslogtreecommitdiffstats
path: root/util/git-hooks/applypatch-msg
blob: 32ff6c70066d0aa922fa0e9b25aeadf600f36fb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'n12' href='#n12'>12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#include <asm/atomic.h>
#include <asm/rwlock.h>

#if defined(CONFIG_SMP)
asm(
".align  4\n"
".globl  __write_lock_failed\n"
"__write_lock_failed:\n"
"        " LOCK "addl    $" RW_LOCK_BIAS_STR ",(%eax)\n"
"1:      rep; nop\n"
"        cmpl    $" RW_LOCK_BIAS_STR ",(%eax)\n"
"        jne     1b\n"
"        " LOCK "subl    $" RW_LOCK_BIAS_STR ",(%eax)\n"
"        jnz     __write_lock_failed\n"
"        ret\n"

".align  4\n"
".globl  __read_lock_failed\n"
"__read_lock_failed:\n"
"        lock ; incl     (%eax)\n"
"1:      rep; nop\n"
"        cmpl    $1,(%eax)\n"
"        js      1b\n"
"        lock ; decl     (%eax)\n"
"        js      __read_lock_failed\n"
"        ret\n"
);
#endif