IHealth.hal revision c7a5ff736a849f3b25bfca6fead38a68185e9498
1c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil/* 2c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * Copyright (C) 2016 The Android Open Source Project 3c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 4c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * Licensed under the Apache License, Version 2.0 (the "License"); 5c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * you may not use this file except in compliance with the License. 6c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * You may obtain a copy of the License at 7c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 8c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * http://www.apache.org/licenses/LICENSE-2.0 9c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 10c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * Unless required by applicable law or agreed to in writing, software 11c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * distributed under the License is distributed on an "AS IS" BASIS, 12c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * See the License for the specific language governing permissions and 14c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * limitations under the License. 15c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil */ 16c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil 17c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patilpackage android.hardware.health@1.0; 18c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil 19c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patilinterface IHealth { 20c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil /** 21c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * This function lets you change healthd configuration from default if 22c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * desired. It must be called exactly once at startup time. 23c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 24c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * The configuration values are described in 'struct HealthConfig'. 25c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * To use default configuration, simply return without modifying the 26c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * fields of the config parameter. 27c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 28c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * @param default healthd configuration. 29c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil */ 30c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil init(HealthConfig config) generates (HealthConfig configOut); 31c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil 32c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil /** 33c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * This function is a hook to update/change device's HealthInfo (as described 34c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * in 'struct HealthInfo'). 35c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 36c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 'HealthInfo' describes device's battery and charging status, typically 37c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * read from kernel. These values may be modified in this call. 38c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 39c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * @param Device Health info as described in 'struct HealthInfo'. 40c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * @return skipLogging Indication to the caller to add 'or' skip logging the health 41c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * information. Return 'true' to skip logging the update. 42c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * @return infoOut HealthInfo to be sent to client code. (May or may 43c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * not be modified). 44c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil */ 45c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil update(HealthInfo info) generates (bool skipLogging, HealthInfo infoOut); 46c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil 47c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil /** 48c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * This function is called by healthd when framework queries for remaining 49c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * energy in the Battery through BatteryManager APIs. 50c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * 51c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * @return result Result of querying enery counter for the battery. 52c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * @return energy Battery remaining energy in nanowatt-hours. 53c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil * Must be '0' if result is anything other than Result::SUCCESS. 54c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil */ 55c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil energyCounter() generates (Result result, int64_t energy); 56c7a5ff736a849f3b25bfca6fead38a68185e9498Sandeep Patil}; 57