All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] libmtd: add lock/unlock helpers
@ 2010-09-24  1:53 Mike Frysinger
  2010-09-24  1:53 ` [PATCH 2/4] mtd-utils: new bareverbose() helper Mike Frysinger
                   ` (3 more replies)
  0 siblings, 4 replies; 31+ messages in thread
From: Mike Frysinger @ 2010-09-24  1:53 UTC (permalink / raw)
  To: linux-mtd

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 include/libmtd.h |   24 ++++++++++++++++++++++++
 lib/libmtd.c     |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/include/libmtd.h b/include/libmtd.h
index afaba42..f73af4c 100644
--- a/include/libmtd.h
+++ b/include/libmtd.h
@@ -138,6 +138,30 @@ int mtd_get_dev_info(libmtd_t desc, const char *node, struct mtd_dev_info *mtd);
 int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd);
 
 /**
+ * mtd_lock - lock eraseblocks
+ * @desc: MTD library descriptor
+ * @mtd: MTD device description object
+ * @fd: MTD device node file descriptor
+ * @eb: eraseblock to lock
+ *
+ * This function locks eraseblock @eb. Returns %0 in case of success and %-1
+ * in case of failure.
+ */
+int mtd_lock(const struct mtd_dev_info *mtd, int fd, int eb);
+
+/**
+ * mtd_unlock - unlock eraseblocks
+ * @desc: MTD library descriptor
+ * @mtd: MTD device description object
+ * @fd: MTD device node file descriptor
+ * @eb: eraseblock to lock
+ *
+ * This function unlocks eraseblock @eb. Returns %0 in case of success and %-1
+ * in case of failure.
+ */
+int mtd_unlock(const struct mtd_dev_info *mtd, int fd, int eb);
+
+/**
  * mtd_erase - erase an eraseblock.
  * @desc: MTD library descriptor
  * @mtd: MTD device description object
diff --git a/lib/libmtd.c b/lib/libmtd.c
index d57ae8f..1b3d597 100644
--- a/lib/libmtd.c
+++ b/lib/libmtd.c
@@ -802,6 +802,38 @@ static int mtd_valid_erase_block(const struct mtd_dev_info *mtd, int eb)
 	return 0;
 }
 
+static int mtd_xlock(const struct mtd_dev_info *mtd, int fd, int eb, int req,
+		     const char *sreq)
+{
+	int ret;
+	struct erase_info_user ei;
+
+	ret = mtd_valid_erase_block(mtd, eb);
+	if (ret)
+		return ret;
+
+	ei.start = eb * mtd->eb_size;
+	ei.length = mtd->eb_size;
+
+	ret = ioctl(fd, req, &ei);
+	if (ret < 0)
+		return sys_errmsg("%s ioctl failed for eraseblock %d "
+				  "(mtd%d)", sreq, eb, mtd->mtd_num);
+
+	return 0;
+}
+#define mtd_xlock(mtd, fd, eb, req) mtd_xlock(mtd, fd, eb, req, #req)
+
+int mtd_lock(const struct mtd_dev_info *mtd, int fd, int eb)
+{
+	return mtd_xlock(mtd, fd, eb, MEMLOCK);
+}
+
+int mtd_unlock(const struct mtd_dev_info *mtd, int fd, int eb)
+{
+	return mtd_xlock(mtd, fd, eb, MEMUNLOCK);
+}
+
 int mtd_erase(libmtd_t desc, const struct mtd_dev_info *mtd, int fd, int eb)
 {
 	int ret;
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2010-09-28  9:48 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-24  1:53 [PATCH 1/4] libmtd: add lock/unlock helpers Mike Frysinger
2010-09-24  1:53 ` [PATCH 2/4] mtd-utils: new bareverbose() helper Mike Frysinger
2010-09-24  4:24   ` Jon Povey
2010-09-25  6:05   ` [PATCH 2/4 v2] " Mike Frysinger
2010-09-25 10:52     ` Artem Bityutskiy
2010-09-24  1:53 ` [PATCH 3/4] mtd-utils: new strtoX helpers Mike Frysinger
2010-09-24  4:31   ` Jon Povey
2010-09-24  5:35     ` Mike Frysinger
2010-09-24  6:13       ` Jon Povey
2010-09-24 12:34         ` Mike Frysinger
2010-09-25  6:06   ` [PATCH 3/4 v2] " Mike Frysinger
2010-09-25 10:54     ` Artem Bityutskiy
2010-09-25 18:59       ` Mike Frysinger
2010-09-25 19:31         ` Artem Bityutskiy
2010-09-25 19:37           ` Mike Frysinger
2010-09-26 11:42             ` Artem Bityutskiy
2010-09-26 11:41     ` Artem Bityutskiy
2010-09-27  6:39     ` Artem Bityutskiy
2010-09-27  6:42     ` [PATCH v3] " Mike Frysinger
2010-09-27  6:44       ` Artem Bityutskiy
2010-09-24  1:53 ` [PATCH 4/4] mtd-utils: unify flash_erase and flash_eraseall Mike Frysinger
2010-09-24  4:35   ` Jon Povey
2010-09-24  5:36     ` Mike Frysinger
2010-09-24  5:42       ` Jon Povey
2010-09-24 12:42         ` Mike Frysinger
2010-09-25  6:07   ` [PATCH 4/4 v2] " Mike Frysinger
2010-09-27  6:50     ` [PATCH v3] " Mike Frysinger
2010-09-27  6:56       ` Artem Bityutskiy
2010-09-27 12:02       ` Issue : jffs2 and ecc layout Ghorai, Sukumar
2010-09-28  9:46   ` [PATCH 4/4] mtd-utils: unify flash_erase and flash_eraseall Artem Bityutskiy
2010-09-25 10:50 ` [PATCH 1/4] libmtd: add lock/unlock helpers Artem Bityutskiy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.