diff options
Diffstat (limited to 'ubi-utils')
-rw-r--r-- | ubi-utils/include/libubi.h | 11 | ||||
-rw-r--r-- | ubi-utils/src/libubi.c | 11 |
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); +} |