/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.thermal@1.0; /** Device temperature types */ @export enum TemperatureType : int32_t { UNKNOWN = -1, CPU = 0, GPU = 1, BATTERY = 2, SKIN = 3, }; enum CoolingType : uint32_t { /** Fan cooling device speed in RPM. */ FAN_RPM = 0, }; struct Temperature { /** * This temperature's type. */ TemperatureType type; /** * Name of this temperature. * All temperatures of the same "type" must have a different "name", * e.g., cpu0, battery. */ string name; /** * Current temperature in Celsius. If not available set by HAL to NAN. * Current temperature can be in any units if type=UNKNOWN. */ float currentValue; /** * Throttling temperature constant for this temperature. * If not available, set by HAL to NAN. */ float throttlingThreshold; /** * Shutdown temperature constant for this temperature. * If not available, set by HAL to NAN. */ float shutdownThreshold; /** * Threshold temperature above which the VR mode clockrate minimums cannot * be maintained for this device. * If not available, set by HAL to NAN. */ float vrThrottlingThreshold; }; struct CoolingDevice { /** * This cooling device type. */ CoolingType type; /** * Name of this cooling device. * All cooling devices of the same "type" must have a different "name". */ string name; /** * Current cooling device value. Units depend on cooling device "type". */ float currentValue; }; struct CpuUsage { /** * Name of this CPU. * All CPUs must have a different "name". */ string name; /** * Active time since the last boot in ms. */ uint64_t active; /** * Total time since the last boot in ms. */ uint64_t total; /** * Is set to true when a core is online. * If the core is offline, all other members except |name| should be ignored. */ bool isOnline; }; enum ThermalStatusCode : uint32_t { /** No errors. */ SUCCESS = 0, /** Unknown failure occured. */ FAILURE = 1 }; /** * Generic structure to return the status of any thermal operation. */ struct ThermalStatus { ThermalStatusCode code; /** * A specific error message to provide more information. * This can be used for debugging purposes only. */ string debugMessage; };