Index: webrtc/rtc_base/arch.h |
diff --git a/webrtc/rtc_base/arch.h b/webrtc/rtc_base/arch.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0137503d2e390aa338c0640edb66c8f7b9274310 |
--- /dev/null |
+++ b/webrtc/rtc_base/arch.h |
@@ -0,0 +1,58 @@ |
+/* |
+ * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file in the root of the source |
+ * tree. An additional intellectual property rights grant can be found |
+ * in the file PATENTS. All contributing project authors may |
+ * be found in the AUTHORS file in the root of the source tree. |
+ */ |
+ |
+// This file contains platform-specific defines. |
+// Much of it is derived from Chromium's build/build_config.h. |
+ |
+#ifndef WEBRTC_RTC_BASE_ARCH_H_ |
+#define WEBRTC_RTC_BASE_ARCH_H_ |
+ |
+// Processor architecture detection. For more info on what's defined, see: |
+// http://msdn.microsoft.com/en-us/library/b0084kay.aspx |
+// http://www.agner.org/optimize/calling_conventions.pdf |
+// or with gcc, run: "echo | gcc -E -dM -" |
+#if defined(_M_X64) || defined(__x86_64__) |
+#define WEBRTC_ARCH_X86_FAMILY |
+#define WEBRTC_ARCH_X86_64 |
+#define WEBRTC_ARCH_64_BITS |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
+#elif defined(__aarch64__) |
+#define WEBRTC_ARCH_ARM_FAMILY |
+#define WEBRTC_ARCH_64_BITS |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
+#elif defined(_M_IX86) || defined(__i386__) |
+#define WEBRTC_ARCH_X86_FAMILY |
+#define WEBRTC_ARCH_X86 |
+#define WEBRTC_ARCH_32_BITS |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
+#elif defined(__ARMEL__) |
+#define WEBRTC_ARCH_ARM_FAMILY |
+#define WEBRTC_ARCH_32_BITS |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
+#elif defined(__MIPSEL__) |
+#define WEBRTC_ARCH_MIPS_FAMILY |
+#if defined(__LP64__) |
+#define WEBRTC_ARCH_64_BITS |
+#else |
+#define WEBRTC_ARCH_32_BITS |
+#endif |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
+#elif defined(__pnacl__) |
+#define WEBRTC_ARCH_32_BITS |
+#define WEBRTC_ARCH_LITTLE_ENDIAN |
+#else |
+#error Please add support for your architecture in rtc_base/arch.h |
+#endif |
+ |
+#if !(defined(WEBRTC_ARCH_LITTLE_ENDIAN) ^ defined(WEBRTC_ARCH_BIG_ENDIAN)) |
+#error Define either WEBRTC_ARCH_LITTLE_ENDIAN or WEBRTC_ARCH_BIG_ENDIAN |
+#endif |
+ |
+#endif // WEBRTC_RTC_BASE_ARCH_H_ |