Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: third_party/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 Google Inc. All rights reserved. 1 // Copyright 2014 Google Inc. All rights reserved.
2 // https://developers.google.com/protocol-buffers/ 2 // https://developers.google.com/protocol-buffers/
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, 47 inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
48 Atomic32 new_value) { 48 Atomic32 new_value) {
49 return (Atomic32)atomic_swap_32((volatile uint32_t*)ptr, (uint32_t)new_value); 49 return (Atomic32)atomic_swap_32((volatile uint32_t*)ptr, (uint32_t)new_value);
50 } 50 }
51 51
52 inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, 52 inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
53 Atomic32 increment) { 53 Atomic32 increment) {
54 return (Atomic32)atomic_add_32_nv((volatile uint32_t*)ptr, (uint32_t)increment ); 54 return (Atomic32)atomic_add_32_nv((volatile uint32_t*)ptr, (uint32_t)increment );
55 } 55 }
56 56
57 inline void MemoryBarrier(void) { 57 inline void MemoryBarrierInternal(void) {
58 membar_producer(); 58 membar_producer();
59 membar_consumer(); 59 membar_consumer();
60 } 60 }
61 61
62 inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, 62 inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
63 Atomic32 increment) { 63 Atomic32 increment) {
64 MemoryBarrier(); 64 MemoryBarrierInternal();
65 Atomic32 ret = NoBarrier_AtomicIncrement(ptr, increment); 65 Atomic32 ret = NoBarrier_AtomicIncrement(ptr, increment);
66 MemoryBarrier(); 66 MemoryBarrierInternal();
67 67
68 return ret; 68 return ret;
69 } 69 }
70 70
71 inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr, 71 inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
72 Atomic32 old_value, 72 Atomic32 old_value,
73 Atomic32 new_value) { 73 Atomic32 new_value) {
74 Atomic32 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value); 74 Atomic32 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
75 MemoryBarrier(); 75 MemoryBarrierInternal();
76 76
77 return ret; 77 return ret;
78 } 78 }
79 79
80 inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr, 80 inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
81 Atomic32 old_value, 81 Atomic32 old_value,
82 Atomic32 new_value) { 82 Atomic32 new_value) {
83 MemoryBarrier(); 83 MemoryBarrierInternal();
84 return NoBarrier_CompareAndSwap(ptr, old_value, new_value); 84 return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
85 } 85 }
86 86
87 inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) { 87 inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
88 *ptr = value; 88 *ptr = value;
89 } 89 }
90 90
91 inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) { 91 inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
92 *ptr = value; 92 *ptr = value;
93 membar_producer(); 93 membar_producer();
(...skipping 28 matching lines...) Expand all
122 122
123 inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr, Atomic64 new_va lue) { 123 inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr, Atomic64 new_va lue) {
124 return atomic_swap_64((volatile uint64_t*)ptr, (uint64_t)new_value); 124 return atomic_swap_64((volatile uint64_t*)ptr, (uint64_t)new_value);
125 } 125 }
126 126
127 inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 incre ment) { 127 inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 incre ment) {
128 return atomic_add_64_nv((volatile uint64_t*)ptr, increment); 128 return atomic_add_64_nv((volatile uint64_t*)ptr, increment);
129 } 129 }
130 130
131 inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increme nt) { 131 inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increme nt) {
132 MemoryBarrier(); 132 MemoryBarrierInternal();
133 Atomic64 ret = atomic_add_64_nv((volatile uint64_t*)ptr, increment); 133 Atomic64 ret = atomic_add_64_nv((volatile uint64_t*)ptr, increment);
134 MemoryBarrier(); 134 MemoryBarrierInternal();
135 return ret; 135 return ret;
136 } 136 }
137 137
138 inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr, 138 inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
139 Atomic64 old_value, 139 Atomic64 old_value,
140 Atomic64 new_value) { 140 Atomic64 new_value) {
141 Atomic64 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value); 141 Atomic64 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
142 MemoryBarrier(); 142 MemoryBarrierInternal();
143 return ret; 143 return ret;
144 } 144 }
145 145
146 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, 146 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
147 Atomic64 old_value, 147 Atomic64 old_value,
148 Atomic64 new_value) { 148 Atomic64 new_value) {
149 MemoryBarrier(); 149 MemoryBarrierInternal();
150 return NoBarrier_CompareAndSwap(ptr, old_value, new_value); 150 return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
151 } 151 }
152 152
153 inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) { 153 inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
154 *ptr = value; 154 *ptr = value;
155 } 155 }
156 156
157 inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) { 157 inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
158 *ptr = value; 158 *ptr = value;
159 membar_producer(); 159 membar_producer();
(...skipping 19 matching lines...) Expand all
179 return *ptr; 179 return *ptr;
180 } 180 }
181 #endif 181 #endif
182 182
183 } // namespace internal 183 } // namespace internal
184 } // namespace protobuf 184 } // namespace protobuf
185 } // namespace google 185 } // namespace google
186 186
187 #endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_ 187 #endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_
188 188
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698