From patchwork Sat May 9 09:41:06 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/3] libubi: add ubi_is_mapped() function From: Corentin Chary X-Patchwork-Id: 27038 Message-Id: <1241862068-10596-2-git-send-email-corentincj@iksaif.net> To: linux-mtd@lists.infradead.org Cc: Corentin Chary , vapier.adi@gmail.com Date: Sat, 9 May 2009 11:41:06 +0200 Signed-off-by: Corentin Chary --- ubi-utils/include/libubi.h | 17 +++++++++++++++++ ubi-utils/src/libubi.c | 5 +++++ 2 files changed, 22 insertions(+), 0 deletions(-) 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 5c8ce9e..a81173d 100644 --- a/ubi-utils/src/libubi.c +++ b/ubi-utils/src/libubi.c @@ -1255,3 +1255,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); +}