summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/igt_sysfs.c20
-rw-r--r--lib/igt_sysfs.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index 1cf7f710..633aeab0 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -218,3 +218,23 @@ out:
close(fd);
return buf;
}
+
+bool igt_sysfs_get_boolean(int dir, const char *attr)
+{
+ char *str;
+ bool result;
+
+ str = igt_sysfs_get(dir, attr);
+ result = str && atoi(str) > 0;
+ free(str);
+
+ return result;
+}
+
+bool igt_sysfs_set_boolean(int dir, const char *attr, bool value)
+{
+ char buf[8];
+
+ sprintf(buf, "%d", value);
+ return igt_sysfs_set(dir, attr, buf);
+}
diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h
index 51c7910d..ce0501f1 100644
--- a/lib/igt_sysfs.h
+++ b/lib/igt_sysfs.h
@@ -31,5 +31,7 @@ int igt_sysfs_open(int device, int *idx);
int igt_sysfs_open_parameters(int fd);
bool igt_sysfs_set(int dir, const char *attr, const char *value);
char *igt_sysfs_get(int dir, const char *attr);
+bool igt_sysfs_get_boolean(int dir, const char *attr);
+bool igt_sysfs_set_boolean(int dir, const char *attr, bool value);
#endif /* __IGT_SYSFS_H__ */