rs_atomic.rsh
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2011 The Android Open Source Project
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00023 #ifndef __RS_ATOMIC_RSH__
00024 #define __RS_ATOMIC_RSH__
00025 
00026 #if (defined(RS_VERSION) && (RS_VERSION >= 14))
00027 
00036 extern int32_t __attribute__((overloadable))
00037     rsAtomicInc(volatile int32_t* addr);
00046 extern uint32_t __attribute__((overloadable))
00047     rsAtomicInc(volatile uint32_t* addr);
00048 
00056 extern int32_t __attribute__((overloadable))
00057     rsAtomicDec(volatile int32_t* addr);
00065 extern uint32_t __attribute__((overloadable))
00066     rsAtomicDec(volatile uint32_t* addr);
00067 
00076 extern int32_t __attribute__((overloadable))
00077     rsAtomicAdd(volatile int32_t* addr, int32_t value);
00086 extern uint32_t __attribute__((overloadable))
00087     rsAtomicAdd(volatile uint32_t* addr, uint32_t value);
00088 
00097 extern int32_t __attribute__((overloadable))
00098     rsAtomicSub(volatile int32_t* addr, int32_t value);
00107 extern uint32_t __attribute__((overloadable))
00108     rsAtomicSub(volatile uint32_t* addr, uint32_t value);
00109 
00118 extern int32_t __attribute__((overloadable))
00119     rsAtomicAnd(volatile int32_t* addr, int32_t value);
00128 extern uint32_t __attribute__((overloadable))
00129     rsAtomicAnd(volatile uint32_t* addr, uint32_t value);
00130 
00139 extern int32_t __attribute__((overloadable))
00140     rsAtomicOr(volatile int32_t* addr, int32_t value);
00149 extern uint32_t __attribute__((overloadable))
00150     rsAtomicOr(volatile uint32_t* addr, uint32_t value);
00151 
00160 extern uint32_t __attribute__((overloadable))
00161     rsAtomicXor(volatile uint32_t* addr, uint32_t value);
00170 extern int32_t __attribute__((overloadable))
00171     rsAtomicXor(volatile int32_t* addr, int32_t value);
00172 
00182 extern uint32_t __attribute__((overloadable))
00183     rsAtomicMin(volatile uint32_t* addr, uint32_t value);
00193 extern int32_t __attribute__((overloadable))
00194     rsAtomicMin(volatile int32_t* addr, int32_t value);
00195 
00205 extern uint32_t __attribute__((overloadable))
00206     rsAtomicMax(volatile uint32_t* addr, uint32_t value);
00216 extern int32_t __attribute__((overloadable))
00217     rsAtomicMax(volatile int32_t* addr, int32_t value);
00218 
00230 extern int32_t __attribute__((overloadable))
00231     rsAtomicCas(volatile int32_t* addr, int32_t compareValue, int32_t newValue);
00232 
00244 extern uint32_t __attribute__((overloadable))
00245     rsAtomicCas(volatile uint32_t* addr, uint32_t compareValue, uint32_t newValue);
00246 
00247 #endif //defined(RS_VERSION) && (RS_VERSION >= 14)
00248 
00249 #endif
00250 
No examples for this method.
Frequently called with: [Clear]
Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License. The original page is available here.