From 999757f7e892375b1a8dfe8b0ccb3a139d8c7f71 Mon Sep 17 00:00:00 2001 From: Corentin Chary Date: Sat, 9 May 2009 11:41:06 +0200 Subject: libubi: add ubi_is_mapped() function Signed-off-by: Corentin Chary Signed-off-by: Artem Bityutskiy --- ubi-utils/include/libubi.h | 17 +++++++++++++++++ ubi-utils/src/libubi.c | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/ubi-utils/include/libubi.h b/ubi-utils/include/libubi.h index 4ffe1e8..f52904d 100644 --- a/ubi-utils/include/libubi.h +++ b/ubi-utils/include/libubi.h @@ -414,6 +414,23 @@ int ubi_set_property(int fd, uint8_t property, uint64_t value); */ int ubi_leb_unmap(int fd, int lnum); +/** + * ubi_is_mapped - check if logical eraseblock is mapped. + * @fd: volume character device file descriptor + * @lnum: logical eraseblock number + * + * This function checks if logical eraseblock @lnum is mapped to a physical + * eraseblock. If a logical eraseblock is un-mapped, this does not necessarily + * mean it will still be un-mapped after the UBI device is re-attached. The + * logical eraseblock may become mapped to the physical eraseblock it was last + * mapped to. + * + * This function returns %1 if the LEB is mapped, %0 if not, and %-1 in case of + * failure. If the volume is damaged because of an interrupted update errno + * set with %EBADF error code. + */ +int ubi_is_mapped(int fd, int lnum); + #ifdef __cplusplus } #endif diff --git a/ubi-utils/src/libubi.c b/ubi-utils/src/libubi.c index 5b22e21..158b919 100644 --- a/ubi-utils/src/libubi.c +++ b/ubi-utils/src/libubi.c @@ -1254,3 +1254,8 @@ int ubi_leb_unmap(int fd, int lnum) { return ioctl(fd, UBI_IOCEBUNMAP, &lnum); } + +int ubi_is_mapped(int fd, int lnum) +{ + return ioctl(fd, UBI_IOCEBISMAP, &lnum); +} -- cgit v1.2.3