ACK: [PATCH 1/2] lib: fwts_battery: fix build error on armhf
Alex Hung
alex.hung at canonical.com
Wed Jul 29 05:01:29 UTC 2020
On 2020-07-28 10:03 p.m., Ivan Hu wrote:
> By using battry path helper function, and do some modificationis of helper
> function.
>
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
> src/lib/src/fwts_battery.c | 49 ++++++++++++++++++++------------------
> 1 file changed, 26 insertions(+), 23 deletions(-)
>
> diff --git a/src/lib/src/fwts_battery.c b/src/lib/src/fwts_battery.c
> index ef93e75d..a18b3f51 100644
> --- a/src/lib/src/fwts_battery.c
> +++ b/src/lib/src/fwts_battery.c
> @@ -37,6 +37,20 @@ static inline bool fwts_battery_match(
> return (((fwts_battery_type)index == FWTS_BATTERY_ALL) | (index == loop_index));
> }
>
> +static inline void fwts_battery_path(
> + char *path,
> + const size_t path_len,
> + const char *battery_dir,
> + const char *name,
> + const char *str)
> +{
> + (void)strlcpy(path, battery_dir, path_len);
> + (void)strlcat(path, "/", path_len);
> + (void)strlcat(path, name, path_len);
> + (void)strlcat(path, "/", path_len);
> + (void)strlcat(path, str, path_len);
> +}
> +
> static int fwts_battery_get_capacity_sys_fs(fwts_framework *fw,
> DIR *dir,
> const fwts_battery_type type,
> @@ -78,7 +92,7 @@ static int fwts_battery_get_capacity_sys_fs(fwts_framework *fw,
> bool match;
>
> /* Check that type field matches the expected type */
> - snprintf(path, sizeof(path), "%s/%s/type", FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name, "type");
> if ((data = fwts_get(path)) != NULL) {
> bool mismatch = (strstr(data, "Battery") == NULL);
> free(data);
> @@ -157,7 +171,8 @@ static int fwts_battery_get_capacity_proc_fs(fwts_framework *fw,
> if (!match)
> continue;
>
> - snprintf(path, sizeof(path), "%s/%s/%s", FWTS_PROC_ACPI_BATTERY, entry->d_name, file);
> + fwts_battery_path(path, sizeof(path), FWTS_PROC_ACPI_BATTERY, entry->d_name, file);
> +
> if ((fp = fopen(path, "r")) == NULL) {
> fwts_log_info(fw, "Battery %s present but undersupported - no state present.", entry->d_name);
> } else {
> @@ -187,19 +202,6 @@ static int fwts_battery_get_capacity_proc_fs(fwts_framework *fw,
> return FWTS_OK;
> }
>
> -static inline void fwts_battery_path(
> - char *path,
> - const size_t path_len,
> - const char *power_supply,
> - const char *name)
> -{
> - (void)strlcpy(path, power_supply, path_len);
> - (void)strlcat(path, "/", path_len);
> - (void)strlcat(path, name, path_len);
> - (void)strlcat(path, "/", path_len);
> - (void)strlcat(path, "type", path_len);
> -}
> -
> static int fwts_battery_get_count_sys_fs(DIR *dir, uint32_t *count)
> {
> struct dirent *entry;
> @@ -210,7 +212,7 @@ static int fwts_battery_get_count_sys_fs(DIR *dir, uint32_t *count)
> entry = readdir(dir);
> if (entry && strlen(entry->d_name) > 2) {
> /* Check that type field matches the expected type */
> - fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name, "type");
> if ((data = fwts_get(path)) != NULL) {
> if (strstr(data, "Battery") != NULL)
> (*count)++;
> @@ -248,7 +250,7 @@ static int fwts_battery_get_name_sys_fs(
> if (entry && strlen(entry->d_name) > 2) {
> bool match;
> /* Check that type field matches the expected type */
> - snprintf(path, sizeof(path), "%s/%s/type", FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name, "type");
> if ((data = fwts_get(path)) != NULL) {
> bool mismatch = (strstr(data, "Battery") == NULL);
> free(data);
> @@ -320,7 +322,7 @@ static int fwts_battery_get_cycle_count_sys_fs(
> bool match;
>
> /* Check that type field matches the expected type */
> - snprintf(path, sizeof(path), "%s/%s/type", FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name, "type");
> if ((data = fwts_get(path)) != NULL) {
> bool mismatch = (strstr(data, "Battery") == NULL);
> free(data);
> @@ -380,7 +382,8 @@ static int fwts_battery_get_cycle_count_proc_fs(
> if (!match)
> continue;
>
> - snprintf(path, sizeof(path), "%s/%s/%s", FWTS_PROC_ACPI_BATTERY, entry->d_name, file);
> + fwts_battery_path(path, sizeof(path), FWTS_PROC_ACPI_BATTERY, entry->d_name, file);
> +
> if ((fp = fopen(path, "r")) == NULL) {
> fwts_log_info(fw, "Battery %s present but undersupported - no state present.", entry->d_name);
> } else {
> @@ -418,7 +421,7 @@ static int fwts_battery_set_trip_point_sys_fs(
> bool match;
>
> /* Check that type field matches the expected type */
> - snprintf(path, sizeof(path), "%s/%s/type", FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name, "type");
> if ((data = fwts_get(path)) != NULL) {
> bool mismatch = (strstr(data, "Battery") == NULL);
> free(data);
> @@ -466,7 +469,7 @@ static int fwts_battery_get_trip_point_sys_fs(
> bool match;
>
> /* Check that type field matches the expected type */
> - snprintf(path, sizeof(path), "%s/%s/type", FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name, "type");
> if ((data = fwts_get(path)) != NULL) {
> bool mismatch = (strstr(data, "Battery") == NULL);
> free(data);
> @@ -516,7 +519,7 @@ static int fwts_battery_set_trip_point_proc_fs(
> if (!match)
> continue;
>
> - snprintf(path, sizeof(path), "%s/%s/alarm", FWTS_PROC_ACPI_BATTERY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_PROC_ACPI_BATTERY, entry->d_name, "alarm");
> if ((fp = fopen(path, "rw+")) == NULL) {
> fwts_log_info(fw, "Battery %s present but undersupported - no state present.", entry->d_name);
> } else {
> @@ -553,7 +556,7 @@ static int fwts_battery_get_trip_point_proc_fs(
> if (!match)
> continue;
>
> - snprintf(path, sizeof(path), "%s/%s/alarm", FWTS_PROC_ACPI_BATTERY, entry->d_name);
> + fwts_battery_path(path, sizeof(path), FWTS_PROC_ACPI_BATTERY, entry->d_name, "alarm");
> if ((fp = fopen(path, "r")) == NULL) {
> fwts_log_info(fw, "Battery %s present but undersupported - no state present.", entry->d_name);
> } else {
>
Acked-by: Alex Hung <alex.hung at canonical.com>
More information about the fwts-devel
mailing list