Go to the documentation of this file.
23 #define RW_LOCK_BIAS 0x01000000
28 #define __dummy_lock(lock) (*(__dummy_lock_t *)(lock))
30 #define RW_LOCK_BIAS_STR "0x01000000"
32 #define __build_read_lock_ptr(rw, helper) \
42 " .section .text.lock,\"ax\" \n" \
43 "3: call "helper"[],0 \n" \
48 : "memory", "d3", "cc"); \
51 #define __build_read_lock_const(rw, helper) \
61 " .section .text.lock,\"ax\" \n" \
62 "3: call "helper"[],0 \n" \
67 : "memory", "d3", "cc"); \
70 #define __build_read_lock(rw, helper) \
72 if (__builtin_constant_p(rw)) \
73 __build_read_lock_const(rw, helper); \
75 __build_read_lock_ptr(rw, helper); \
78 #define __build_write_lock_ptr(rw, helper) \
88 " .section .text.lock,\"ax\" \n" \
89 "3: call "helper"[],0 \n" \
94 : "memory", "d3", "cc"); \
97 #define __build_write_lock_const(rw, helper) \
107 " .section .text.lock,\"ax\" \n" \
108 "3: call "helper"[],0 \n" \
113 : "memory", "d3", "cc"); \
116 #define __build_write_lock(rw, helper) \
118 if (__builtin_constant_p(rw)) \
119 __build_write_lock_const(rw, helper); \
121 __build_write_lock_ptr(rw, helper); \