summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/mtdcore.h
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2010-01-29 21:57:11 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2010-02-25 12:37:16 +0100
commitf1332ba2f23800bb5d52457ac150c568dfb1f3bf (patch)
tree1c5c9e3d2727ea39f0bdc03e47b5f895fa0c1b7b /drivers/mtd/mtdcore.h
parentmtd: change positive error return into negative (diff)
downloadlinux-f1332ba2f23800bb5d52457ac150c568dfb1f3bf.tar.xz
linux-f1332ba2f23800bb5d52457ac150c568dfb1f3bf.zip
mtd: Introduce and use iteration macro for reading the MTD device table
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/mtdcore.h')
-rw-r--r--drivers/mtd/mtdcore.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/mtd/mtdcore.h b/drivers/mtd/mtdcore.h
index a33251f4b872..e2f93a300738 100644
--- a/drivers/mtd/mtdcore.h
+++ b/drivers/mtd/mtdcore.h
@@ -9,3 +9,18 @@
extern struct mutex mtd_table_mutex;
extern struct mtd_info *mtd_table[MAX_MTD_DEVICES];
+
+static inline struct mtd_info *__mtd_next_device(int i)
+{
+ while (i < MAX_MTD_DEVICES) {
+ if (mtd_table[i])
+ return mtd_table[i];
+ i++;
+ }
+ return NULL;
+}
+
+#define mtd_for_each_device(mtd) \
+ for ((mtd) = __mtd_next_device(0); \
+ (mtd) != NULL; \
+ (mtd) = __mtd_next_device(mtd->index + 1))