1 // Copyright (c) 2012 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.
5 package org.chromium.base;
7 // The only purpose of this class is to allow sending CPU properties
8 // from the browser process to sandboxed renderer processes. This is
9 // needed because sandboxed processes cannot, on ARM, query the kernel
10 // about the CPU's properties by parsing /proc, so this operation must
11 // be performed in the browser process, and the result passed to
14 // For more context, see http://crbug.com/164154
16 // Technically, this is a wrapper around the native NDK cpufeatures
17 // library. The exact CPU features bits are never used in Java so
18 // there is no point in duplicating their definitions here.
20 @JNINamespace("base::android")
21 public abstract class CpuFeatures {
23 * Return the number of CPU Cores on the device.
25 public static int getCount() {
26 return nativeGetCoreCount();
30 * Return the CPU feature mask.
31 * This is a 64-bit integer that corresponds to the CPU's features.
32 * The value comes directly from android_getCpuFeatures().
34 public static long getMask() {
35 return nativeGetCpuFeatures();
38 private static native int nativeGetCoreCount();
39 private static native long nativeGetCpuFeatures();