/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* This contains stubs and infrastructure to support code from v8 */ #ifndef V8_SUPPORT_H_ #define V8_SUPPORT_H_ #if defined(_M_X64) || defined(__x86_64__) #define V8_HOST_ARCH_X64 1 #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) #define V8_HOST_ARCH_IA32 1 #elif defined(__ARMEL__) #define V8_HOST_ARCH_ARM 1 #else #warning Please add support for your architecture in chromium_types.h #endif typedef int32_t Atomic32; #if defined(V8_HOST_ARCH_X64) || defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_ARM) inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) { *ptr = value; } #endif const int kMaxInt = 0x7FFFFFFF; const int kMinInt = -kMaxInt - 1; // A macro to disallow the evil copy constructor and operator= functions // This should be used in the private: declarations for a class #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ TypeName(const TypeName&); \ void operator=(const TypeName&) // The USE(x) template is used to silence C++ compiler warnings // issued for (yet) unused variables (typically parameters). template static inline void USE(T) { } class Malloced { }; #endif // V8_SUPPORT_H_