Changes in kernel/arch/ia64/include/atomic.h [e86a849a:7a0359b] in mainline
- File:
-
- 1 edited
-
kernel/arch/ia64/include/atomic.h (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/include/atomic.h
re86a849a r7a0359b 36 36 #define KERN_ia64_ATOMIC_H_ 37 37 38 static inline uint64_t test_and_set(atomic_t *val) 38 #include <trace.h> 39 40 NO_TRACE static inline atomic_count_t test_and_set(atomic_t *val) 39 41 { 40 uint64_t v;41 42 atomic_count_t v; 43 42 44 asm volatile ( 43 45 "movl %[v] = 0x1;;\n" … … 50 52 } 51 53 52 static inline void atomic_lock_arch(atomic_t *val)54 NO_TRACE static inline void atomic_lock_arch(atomic_t *val) 53 55 { 54 56 do { 55 while (val->count) 56 ; 57 while (val->count); 57 58 } while (test_and_set(val)); 58 59 } 59 60 60 static inline void atomic_inc(atomic_t *val)61 NO_TRACE static inline void atomic_inc(atomic_t *val) 61 62 { 62 longv;63 atomic_count_t v; 63 64 64 65 asm volatile ( … … 69 70 } 70 71 71 static inline void atomic_dec(atomic_t *val)72 NO_TRACE static inline void atomic_dec(atomic_t *val) 72 73 { 73 longv;74 atomic_count_t v; 74 75 75 76 asm volatile ( … … 80 81 } 81 82 82 static inline longatomic_preinc(atomic_t *val)83 NO_TRACE static inline atomic_count_t atomic_preinc(atomic_t *val) 83 84 { 84 longv;85 atomic_count_t v; 85 86 86 87 asm volatile ( … … 93 94 } 94 95 95 static inline longatomic_predec(atomic_t *val)96 NO_TRACE static inline atomic_count_t atomic_predec(atomic_t *val) 96 97 { 97 longv;98 atomic_count_t v; 98 99 99 100 asm volatile ( … … 106 107 } 107 108 108 static inline longatomic_postinc(atomic_t *val)109 NO_TRACE static inline atomic_count_t atomic_postinc(atomic_t *val) 109 110 { 110 longv;111 atomic_count_t v; 111 112 112 113 asm volatile ( … … 119 120 } 120 121 121 static inline longatomic_postdec(atomic_t *val)122 NO_TRACE static inline atomic_count_t atomic_postdec(atomic_t *val) 122 123 { 123 longv;124 atomic_count_t v; 124 125 125 126 asm volatile (
Note:
See TracChangeset
for help on using the changeset viewer.
