summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2016-09-22 09:38:17 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2016-09-22 09:42:02 +0200
commit0f5b72a110b1267e7b101a60b7df7f2ff2985cf6 (patch)
tree1d82f571e30878f54d80df24751a77b5679730d0
parent85dccb92982450cacc0d7dd393f16778388582a6 (diff)
downloadbarebox-0f5b72a110b1267e7b101a60b7df7f2ff2985cf6.tar.gz
barebox-0f5b72a110b1267e7b101a60b7df7f2ff2985cf6.tar.xz
mtd: ubi: introduce barebox specific ioctl to get ubi_num
Code wishing to manipulate ubi devices from outside the ubi layer needs the ubi_num as reference. Add an ioctl to get the ubi_num from a filedescriptor. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/mtd/ubi/barebox.c3
-rw-r--r--include/mtd/ubi-user.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mtd/ubi/barebox.c b/drivers/mtd/ubi/barebox.c
index 13c2a47afc..cb9223ebab 100644
--- a/drivers/mtd/ubi/barebox.c
+++ b/drivers/mtd/ubi/barebox.c
@@ -299,6 +299,9 @@ static int ubi_cdev_ioctl(struct cdev *cdev, int cmd, void *buf)
if (!req->bytes)
req->bytes = (__s64)ubi->avail_pebs * ubi->leb_size;
return ubi_create_volume(ubi, req);
+ case UBI_IOCGETUBINUM:
+ *(u32 *)buf = ubi->ubi_num;
+ break;
};
return 0;
diff --git a/include/mtd/ubi-user.h b/include/mtd/ubi-user.h
index 8c02f96e4c..9425533d19 100644
--- a/include/mtd/ubi-user.h
+++ b/include/mtd/ubi-user.h
@@ -161,6 +161,8 @@
/* Re-name volumes */
#define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req)
+#define UBI_IOCGETUBINUM _IOR(UBI_IOC_MAGIC, 32, __u32)
+
/* ioctl commands of the UBI control character device */
#define UBI_CTRL_IOC_MAGIC 'o'