Home | History | Annotate | Download | only in 1.0
      1 /*
      2  * Copyright (C) 2016 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.hardware.thermal@1.0;
     18 
     19 /** Device temperature types */
     20 @export
     21 enum TemperatureType : int32_t {
     22     UNKNOWN = -1,
     23     CPU = 0,
     24     GPU = 1,
     25     BATTERY = 2,
     26     SKIN = 3,
     27 };
     28 
     29 enum CoolingType : uint32_t {
     30     /** Fan cooling device speed in RPM. */
     31     FAN_RPM = 0,
     32 };
     33 
     34 struct Temperature {
     35     /**
     36      * This temperature's type.
     37      */
     38     TemperatureType type;
     39 
     40     /**
     41      * Name of this temperature.
     42      * All temperatures of the same "type" must have a different "name",
     43      * e.g., cpu0, battery.
     44      */
     45     string name;
     46 
     47     /**
     48      * Current temperature in Celsius. If not available set by HAL to NAN.
     49      * Current temperature can be in any units if type=UNKNOWN.
     50      */
     51     float currentValue;
     52 
     53     /**
     54      * Throttling temperature constant for this temperature.
     55      * If not available, set by HAL to NAN.
     56      */
     57     float throttlingThreshold;
     58 
     59     /**
     60      * Shutdown temperature constant for this temperature.
     61      * If not available, set by HAL to NAN.
     62      */
     63     float shutdownThreshold;
     64 
     65     /**
     66      * Threshold temperature above which the VR mode clockrate minimums cannot
     67      * be maintained for this device.
     68      * If not available, set by HAL to NAN.
     69      */
     70     float vrThrottlingThreshold;
     71 
     72 };
     73 
     74 struct CoolingDevice {
     75     /**
     76      * This cooling device type.
     77      */
     78     CoolingType type;
     79 
     80     /**
     81      * Name of this cooling device.
     82      * All cooling devices of the same "type" must have a different "name".
     83      */
     84     string name;
     85 
     86     /**
     87      * Current cooling device value. Units depend on cooling device "type".
     88      */
     89     float currentValue;
     90 
     91 };
     92 
     93 struct CpuUsage {
     94     /**
     95      * Name of this CPU.
     96      * All CPUs must have a different "name".
     97      */
     98     string name;
     99 
    100     /**
    101      * Active time since the last boot in ms.
    102      */
    103     uint64_t active;
    104 
    105     /**
    106      * Total time since the last boot in ms.
    107      */
    108     uint64_t total;
    109 
    110     /**
    111      * Is set to true when a core is online.
    112      * If the core is offline, all other members except |name| should be ignored.
    113      */
    114     bool isOnline;
    115 
    116 };
    117 
    118 enum ThermalStatusCode : uint32_t {
    119     /** No errors. */
    120     SUCCESS = 0,
    121     /** Unknown failure occured. */
    122     FAILURE = 1
    123 };
    124 
    125 /**
    126  * Generic structure to return the status of any thermal operation.
    127  */
    128 struct ThermalStatus {
    129     ThermalStatusCode code;
    130 
    131     /**
    132      * A specific error message to provide more information.
    133      * This can be used for debugging purposes only.
    134      */
    135     string debugMessage;
    136 };
    137