// Copyright 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.base; // The only purpose of this class is to allow sending CPU properties // from the browser process to sandboxed renderer processes. This is // needed because sandboxed processes cannot, on ARM, query the kernel // about the CPU's properties by parsing /proc, so this operation must // be performed in the browser process, and the result passed to // renderer ones. // // For more context, see http://crbug.com/164154 // // Technically, this is a wrapper around the native NDK cpufeatures // library. The exact CPU features bits are never used in Java so // there is no point in duplicating their definitions here. // @JNINamespace("base::android") public abstract class CpuFeatures { /** * Return the number of CPU Cores on the device. */ public static int getCount() { return nativeGetCoreCount(); } /** * Return the CPU feature mask. * This is a 64-bit integer that corresponds to the CPU's features. * The value comes directly from android_getCpuFeatures(). */ public static long getMask() { return nativeGetCpuFeatures(); } private static native int nativeGetCoreCount(); private static native long nativeGetCpuFeatures(); }