diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/igt_sysfs.c | 20 | ||||
-rw-r--r-- | lib/igt_sysfs.h | 2 |
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__ */ |