1045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// Copyright (C) 2014 The Android Open Source Project 2045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// 3045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// This software is licensed under the terms of the GNU General Public 4045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// License version 2, as published by the Free Software Foundation, and 5045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// may be copied, distributed, and modified under those terms. 6045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// 7045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// This program is distributed in the hope that it will be useful, 8045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// but WITHOUT ANY WARRANTY; without even the implied warranty of 9045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// GNU General Public License for more details. 11045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 12045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner#include "android/cpu_accelerator.h" 13045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 14045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// This source acts as a small C++ -> C bridge between android/emulation/ 15045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner// and android/main.c 16045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 17045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner#include "android/base/String.h" 18045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner#include "android/emulation/CpuAccelerator.h" 19045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 20045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner#include "android/utils/system.h" 21045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 22045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turnerextern "C" bool android_hasCpuAcceleration(char** status_p) { 23045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner android::CpuAccelerator accel = android::GetCurrentCpuAccelerator(); 24045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 25045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner if (status_p) { 26045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner android::base::String status = 27045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner android::GetCurrentCpuAcceleratorStatus(); 28045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner *status_p = ASTRDUP(status.c_str()); 29045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner } 30045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner 31045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner return accel != android::CPU_ACCELERATOR_NONE; 32045bdbe2e68c305f5f819744ccbe75c7478e4e8bDavid 'Digit' Turner} 33