public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: support array of debugfs general attributes
@ 2012-10-14 20:03 Antonio Quartulli
  2012-10-14 20:03 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: export compatibility version via debugfs Antonio Quartulli
  2012-10-16  0:08 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: support array of debugfs general attributes Sven Eckelmann
  0 siblings, 2 replies; 6+ messages in thread
From: Antonio Quartulli @ 2012-10-14 20:03 UTC (permalink / raw)
  To: b.a.t.m.a.n

This patch adds support for an array of debugfs general (not soft_iface
specific) attributes. With this change it will be possible to add more general
attributes by simply appending them to the array without touching the rest of
the code.

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---
 debugfs.c | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/debugfs.c b/debugfs.c
index 61c7d4d..43e0fde 100644
--- a/debugfs.c
+++ b/debugfs.c
@@ -328,7 +328,17 @@ struct batadv_debuginfo batadv_debuginfo_##_name = {	\
 		}					\
 };
 
+/* the following attributes are general and therefore they will be directly
+ * placed in the BATADV_DEBUGFS_SUBDIR subdirectory of debugfs
+ */
 static BATADV_DEBUGINFO(routing_algos, S_IRUGO, batadv_algorithms_open);
+
+static struct batadv_debuginfo *batadv_general_debuginfos[] = {
+	&batadv_debuginfo_routing_algos,
+	NULL,
+};
+
+/* The following attributes are per soft interface */
 static BATADV_DEBUGINFO(originators, S_IRUGO, batadv_originators_open);
 static BATADV_DEBUGINFO(gateways, S_IRUGO, batadv_gateways_open);
 static BATADV_DEBUGINFO(transtable_global, S_IRUGO,
@@ -363,7 +373,7 @@ static struct batadv_debuginfo *batadv_mesh_debuginfos[] = {
 
 void batadv_debugfs_init(void)
 {
-	struct batadv_debuginfo *bat_debug;
+	struct batadv_debuginfo **bat_debug;
 	struct dentry *file;
 
 	batadv_debugfs = debugfs_create_dir(BATADV_DEBUGFS_SUBDIR, NULL);
@@ -371,17 +381,23 @@ void batadv_debugfs_init(void)
 		batadv_debugfs = NULL;
 
 	if (!batadv_debugfs)
-		goto out;
+		goto err;
 
-	bat_debug = &batadv_debuginfo_routing_algos;
-	file = debugfs_create_file(bat_debug->attr.name,
-				   S_IFREG | bat_debug->attr.mode,
-				   batadv_debugfs, NULL, &bat_debug->fops);
-	if (!file)
-		pr_err("Can't add debugfs file: %s\n", bat_debug->attr.name);
+	for (bat_debug = batadv_general_debuginfos; *bat_debug; ++bat_debug) {
+		file = debugfs_create_file(((*bat_debug)->attr).name,
+					   S_IFREG | ((*bat_debug)->attr).mode,
+					   batadv_debugfs, NULL,
+					   &(*bat_debug)->fops);
+		if (!file) {
+			pr_err("Can't add general debugfs file: %s\n",
+			       ((*bat_debug)->attr).name);
+			goto err;
+		}
+	}
 
-out:
 	return;
+err:
+	debugfs_remove_recursive(batadv_debugfs);
 }
 
 void batadv_debugfs_destroy(void)
-- 
1.7.12.3


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

end of thread, other threads:[~2012-10-16  6:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-14 20:03 [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: support array of debugfs general attributes Antonio Quartulli
2012-10-14 20:03 ` [B.A.T.M.A.N.] [PATCH 2/2] batman-adv: export compatibility version via debugfs Antonio Quartulli
2012-10-14 20:05   ` Antonio Quartulli
2012-10-16  0:09   ` Sven Eckelmann
2012-10-16  6:07     ` Antonio Quartulli
2012-10-16  0:08 ` [B.A.T.M.A.N.] [PATCH 1/2] batman-adv: support array of debugfs general attributes Sven Eckelmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox