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