[PATCH 1/2] lib: fwts_battery: fix build error on armhf
Ivan Hu
ivan.hu at canonical.com
Wed Jul 29 04:03:49 UTC 2020
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 {
--
2.17.1
More information about the fwts-devel
mailing list