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