blob: eb5d7c78a789be91304dba271454a47af1258f02 [file] [log] [blame]
/*
* 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;
};