platform_hardware_interfaces/health/1.0/IHealth.hal
Sandeep Patil c7a5ff736a health: add health HAL and it's default implementation.
The default Health HAL implementation continues to depend on
libhealthd.<target> BOARD_HAL_STATIC_LIBRARY in order to make
sure healthd continues to work.

New device specific Health HAL implentations don't need to
compile with healthd STATIC_HAL.

Test: Tested healthd with and without the static hal implementation
on Angler.

BUG: b/32724915

Change-Id: I25d439f24a4178666614faf196423ffc8ccafafb
Signed-off-by: Sandeep Patil <sspatil@google.com>
2016-11-11 09:28:23 -08:00

56 lines
2.2 KiB
Text

/*
* 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.health@1.0;
interface IHealth {
/**
* This function lets you change healthd configuration from default if
* desired. It must be called exactly once at startup time.
*
* The configuration values are described in 'struct HealthConfig'.
* To use default configuration, simply return without modifying the
* fields of the config parameter.
*
* @param default healthd configuration.
*/
init(HealthConfig config) generates (HealthConfig configOut);
/**
* This function is a hook to update/change device's HealthInfo (as described
* in 'struct HealthInfo').
*
* 'HealthInfo' describes device's battery and charging status, typically
* read from kernel. These values may be modified in this call.
*
* @param Device Health info as described in 'struct HealthInfo'.
* @return skipLogging Indication to the caller to add 'or' skip logging the health
* information. Return 'true' to skip logging the update.
* @return infoOut HealthInfo to be sent to client code. (May or may
* not be modified).
*/
update(HealthInfo info) generates (bool skipLogging, HealthInfo infoOut);
/**
* This function is called by healthd when framework queries for remaining
* energy in the Battery through BatteryManager APIs.
*
* @return result Result of querying enery counter for the battery.
* @return energy Battery remaining energy in nanowatt-hours.
* Must be '0' if result is anything other than Result::SUCCESS.
*/
energyCounter() generates (Result result, int64_t energy);
};