diff options
author | David Ng <dave@codeaurora.org> | 2018-03-22 23:48:10 -0700 |
---|---|---|
committer | David Ng <dave@codeaurora.org> | 2018-05-24 00:34:46 -0700 |
commit | 9dfa07cfa496f735d9294330556db899ba4aae41 (patch) | |
tree | d7ae9d4ad38641640706f3b5eafece074727dd70 /thermal_client.h | |
parent | 6d84830f9df4a390ca773e6e0ee3414f84f44090 (diff) | |
download | android_vendor_qcom_opensource_thermal-engine-9dfa07cfa496f735d9294330556db899ba4aae41.tar.gz android_vendor_qcom_opensource_thermal-engine-9dfa07cfa496f735d9294330556db899ba4aae41.tar.bz2 android_vendor_qcom_opensource_thermal-engine-9dfa07cfa496f735d9294330556db899ba4aae41.zip |
Relocate thermal-engine headers from device/qcom/common
Split unrelated functionalities/modules from device/qcom/common
into their own projects.
Relocation of some files from device/qcom/common at
b5ce80cb1f60759a142a9338104d3adf3303ec0c.
Change-Id: I4b7594dbbd3bad1bf69b755406c3468b07f5c03a
Diffstat (limited to 'thermal_client.h')
-rw-r--r-- | thermal_client.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/thermal_client.h b/thermal_client.h new file mode 100644 index 0000000..b41f139 --- /dev/null +++ b/thermal_client.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <cutils/properties.h> +#ifndef __THERMAL_CLIENT_H__ +#define __THERMAL_CLIENT_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_ACTIONS (32) + +/* Enum for supported fields */ +enum supported_fields { + UNKNOWN_FIELD = 0x0, + DISABLE_FIELD = 0x1, + SAMPLING_FIELD = 0x2, + THRESHOLDS_FIELD = 0x4, + SET_POINT_FIELD = THRESHOLDS_FIELD, + THRESHOLDS_CLR_FIELD = 0x8, + SET_POINT_CLR_FIELD = THRESHOLDS_CLR_FIELD, + ACTION_INFO_FIELD = 0x10, + SUPPORTED_FIELD_MAX = 0x20, +}; + +enum field_data_type { + FIELD_INT = 0, + FIELD_STR, + FIELD_INT_ARR, + FIELD_ARR_STR, + FIELD_ARR_INT_ARR, + FIELD_MAX +}; + +struct action_info_data { + int info[MAX_ACTIONS]; + uint32_t num_actions; +}; + +struct field_data { + char *field_name; + enum field_data_type data_type; + uint32_t num_data; + void *data; +}; + +struct config_instance { + char *cfg_desc; + char *algo_type; + unsigned int fields_mask; /* mask set by client to request to adjust supported fields */ + uint32_t num_fields; + struct field_data *fields; +}; + +int thermal_client_config_query(char *algo_type, struct config_instance **configs); +void thermal_client_config_cleanup(struct config_instance *configs, unsigned int config_size); +int thermal_client_config_set(struct config_instance *configs, unsigned int config_size); + +int thermal_client_register_callback(char *client_name, int (*callback)(int , void *, void *), void *data); +int thermal_client_request(char *client_name, int req_data); +void thermal_client_unregister_callback(int client_cb_handle); + +#ifdef __cplusplus +} +#endif + +#endif /* __THERMAL_CLIENT_H__ */ |