1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// This file overrides the inclusion of talk/base/basictypes.h to remove 6// collisions with Chromium's base/basictypes.h. We then add back a few 7// items that Chromium's version doesn't provide, but libjingle expects. 8 9#ifndef OVERRIDES_TALK_BASE_BASICTYPES_H__ 10#define OVERRIDES_TALK_BASE_BASICTYPES_H__ 11 12#include "base/basictypes.h" 13#include "build/build_config.h" 14 15#ifndef INT_TYPES_DEFINED 16#define INT_TYPES_DEFINED 17#ifdef COMPILER_MSVC 18typedef __int64 int64; 19#endif /* COMPILER_MSVC */ 20 21#ifdef COMPILER_MSVC 22typedef unsigned __int64 uint64; 23typedef __int64 int64; 24#define INT64_C(x) x ## I64 25#define UINT64_C(x) x ## UI64 26#define INT64_F "I64" 27#else 28#ifndef INT64_C 29#define INT64_C(x) x ## LL 30#endif 31#ifndef UINT64_C 32#define UINT64_C(x) x ## ULL 33#endif 34#ifndef INT64_F 35#define INT64_F "ll" 36#endif 37#endif /* COMPILER_MSVC */ 38#endif // INT_TYPES_DEFINED 39 40#ifdef WIN32 41typedef int socklen_t; 42#endif 43 44namespace talk_base { 45template<class T> inline T _min(T a, T b) { return (a > b) ? b : a; } 46template<class T> inline T _max(T a, T b) { return (a < b) ? b : a; } 47 48// For wait functions that take a number of milliseconds, kForever indicates 49// unlimited time. 50const int kForever = -1; 51} 52 53#ifdef WIN32 54#define alignof(t) __alignof(t) 55#else // !WIN32 56#define alignof(t) __alignof__(t) 57#endif // !WIN32 58#define IS_ALIGNED(p, a) (0==(reinterpret_cast<uintptr_t>(p) & ((a)-1))) 59#define ALIGNP(p, t) \ 60 (reinterpret_cast<uint8*>(((reinterpret_cast<uintptr_t>(p) + \ 61 ((t)-1)) & ~((t)-1)))) 62 63#endif // OVERRIDES_TALK_BASE_BASICTYPES_H__ 64