aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ubi-utils/include/libubi.h11
-rw-r--r--ubi-utils/src/libubi.c11
2 files changed, 22 insertions, 0 deletions
diff --git a/ubi-utils/include/libubi.h b/ubi-utils/include/libubi.h
index 7ff0934..243bcbb 100644
--- a/ubi-utils/include/libubi.h
+++ b/ubi-utils/include/libubi.h
@@ -393,6 +393,17 @@ int ubi_update_start(libubi_t desc, int fd, long long bytes);
*/
int ubi_leb_change_start(libubi_t desc, int fd, int lnum, int bytes, int dtype);
+/**
+ * ubi_set_property - set volume propety.
+ * @fd: volume character device file descriptor
+ * @property: the property to change (%UBI_PROP_DIRECT_WRITE, etc)
+ * @value: new value of the changed property
+ *
+ * This function changes a property of a volume. Returns zero in case of
+ * success and a negative error code in case of error.
+ */
+int ubi_set_property(int fd, uint8_t property, uint64_t value);
+
#ifdef __cplusplus
}
#endif
diff --git a/ubi-utils/src/libubi.c b/ubi-utils/src/libubi.c
index 167460c..c63beeb 100644
--- a/ubi-utils/src/libubi.c
+++ b/ubi-utils/src/libubi.c
@@ -1239,3 +1239,14 @@ int ubi_get_vol_info1_nm(libubi_t desc, int dev_num, const char *name,
errno = ENOENT;
return -1;
}
+
+int ubi_set_property(int fd, uint8_t property, uint64_t value)
+{
+ struct ubi_set_prop_req r;
+
+ memset(&r, sizeof(struct ubi_set_prop_req), '\0');
+ r.property = property;
+ r.value = value;
+
+ return ioctl(fd, UBI_IOCSETPROP, &r);
+}