[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1434548543-22949-11-git-send-email-tomeu.vizoso@collabora.com>
Date: Wed, 17 Jun 2015 15:42:20 +0200
From: Tomeu Vizoso <tomeu.vizoso@...labora.com>
To: linux-arm-kernel@...ts.infradead.org
Cc: Tomeu Vizoso <tomeu.vizoso@...labora.com>,
Alexander Holler <holler@...oftware.de>,
Alexandre Courbot <gnurou@...il.com>,
Andrzej Hajda <a.hajda@...sung.com>,
Arnd Bergmann <arnd@...db.de>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
Grant Likely <grant.likely@...aro.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
Javier Martinez Canillas <javier.martinez@...labora.co.uk>,
Krzysztof Kozlowski <k.kozlowski@...sung.com>,
Kumar Gala <galak@...eaurora.org>, Len Brown <lenb@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
linux-kernel@...r.kernel.org, Lv Zheng <lv.zheng@...el.com>,
Mark Brown <broonie@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Pawel Moll <pawel.moll@....com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Robert Moore <robert.moore@...el.com>,
Rob Herring <robh+dt@...nel.org>,
Russell King <linux@....linux.org.uk>,
Stephen Warren <swarren@...dotorg.org>,
Terje Bergström <tbergstrom@...dia.com>,
Thierry Reding <thierry.reding@...il.com>
Subject: [PATCH 10/13] driver-core: add for_each_class()
The purpose of this function is to allow other parts of the driver core
to iterate over the currently registered classes.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@...labora.com>
---
drivers/base/base.h | 2 ++
drivers/base/class.c | 16 ++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/drivers/base/base.h b/drivers/base/base.h
index 29c985e..be81c88 100644
--- a/drivers/base/base.h
+++ b/drivers/base/base.h
@@ -149,3 +149,5 @@ extern int devtmpfs_init(void);
#else
static inline int devtmpfs_init(void) { return 0; }
#endif
+
+extern void for_each_class(void (*fn)(struct class *, void *), void *data);
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 6e81088..f4114a4 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -583,6 +583,22 @@ void class_compat_remove_link(struct class_compat *cls, struct device *dev,
}
EXPORT_SYMBOL_GPL(class_compat_remove_link);
+void for_each_class(void (*fn)(struct class *, void *), void *data)
+{
+ struct subsys_private *cp;
+ struct kobject *k;
+
+ if (!class_kset)
+ return;
+
+ list_for_each_entry(k, &class_kset->list, entry) {
+ cp = to_subsys_private(k);
+ class_get(cp->class);
+ fn(cp->class, data);
+ class_put(cp->class);
+ }
+}
+
int __init classes_init(void)
{
class_kset = kset_create_and_add("class", NULL, NULL);
--
2.4.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists