diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:14 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:14 -0800 |
commit | f72d5de56a522ac3be03873bdde26f23a5eeeb3c (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /vm/Atomic.h | |
parent | 31e30105703263782efd450d356cd67ea01af3b7 (diff) | |
download | android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.tar.gz android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.tar.bz2 android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.zip |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'vm/Atomic.h')
-rw-r--r-- | vm/Atomic.h | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/vm/Atomic.h b/vm/Atomic.h deleted file mode 100644 index bc0203c10..000000000 --- a/vm/Atomic.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - * Atomic operations - */ -#ifndef _DALVIK_ATOMIC -#define _DALVIK_ATOMIC - -#include <utils/Atomic.h> /* use common Android atomic ops */ - -/* - * Memory barrier. Guarantee that register-resident variables - * are flushed to memory, and guarantee that instructions before - * the barrier do not get reordered to appear past it. - * - * 'asm volatile ("":::"memory")' is probably overkill, but it's correct. - * There may be a way to do it that doesn't flush every single register. - * - * TODO: look into the wmb() family on Linux and equivalents on other systems. - */ -#define MEM_BARRIER() do { asm volatile ("":::"memory"); } while (0) - -/* - * Atomic compare-and-swap macro. - * - * If *_addr equals "_old", replace it with "_new" and return 1. Otherwise - * return 0. (e.g. x86 "cmpxchgl" instruction.) - * - * Underlying function is currently declared: - * int android_atomic_cmpxchg(int32_t old, int32_t new, volatile int32_t* addr) - */ -#define ATOMIC_CMP_SWAP(_addr, _old, _new) \ - (android_atomic_cmpxchg((_old), (_new), (_addr)) == 0) - -#endif /*_DALVIK_ATOMIC*/ |