Patchwork [1/3] libubi: add ubi_is_mapped() function

login
register
mail settings
Submitter Corentin Chary
Date May 9, 2009, 9:41 a.m.
Message ID <1241862068-10596-2-git-send-email-corentincj@iksaif.net>
Download mbox | patch
Permalink /patch/27038/
State Accepted
Commit 999757f7e892375b1a8dfe8b0ccb3a139d8c7f71
Headers show

Comments

Corentin Chary - May 9, 2009, 9:41 a.m.
Signed-off-by: Corentin Chary <corentincj@iksaif.net>
---
 ubi-utils/include/libubi.h |   17 +++++++++++++++++
 ubi-utils/src/libubi.c     |    5 +++++
 2 files changed, 22 insertions(+), 0 deletions(-)

Patch

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);
+}