aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2019-09-30 10:05:42 -0400
committerNick Mathewson <nickm@torproject.org>2020-03-26 11:20:20 -0400
commit8f49943459564a59ca7f60476aef6b0ddd79a56c (patch)
treecc066f6c119fe541ff315e8b2df6f95985fa5ce8
parent3f6e37b1bcb9e5ec70f228a9cb6b01db0b9ad8d5 (diff)
downloadtor-8f49943459564a59ca7f60476aef6b0ddd79a56c.tar.gz
tor-8f49943459564a59ca7f60476aef6b0ddd79a56c.zip
Implement a function to list the subsystems to stdout.
-rw-r--r--src/app/main/subsysmgr.c13
-rw-r--r--src/app/main/subsysmgr.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/app/main/subsysmgr.c b/src/app/main/subsysmgr.c
index 5807cbbaa4..4913949e2c 100644
--- a/src/app/main/subsysmgr.c
+++ b/src/app/main/subsysmgr.c
@@ -294,6 +294,19 @@ subsystems_thread_cleanup(void)
}
/**
+ * Dump a human- and machine-readable list of all the subsystems to stdout,
+ * in their initialization order, prefixed with their level.
+ **/
+void
+subsystems_dump_list(void)
+{
+ for (unsigned i = 0; i < n_tor_subsystems - 1; ++i) {
+ const subsys_fns_t *sys = tor_subsystems[i];
+ printf("% 4d\t%s\n", sys->level, sys->name);
+ }
+}
+
+/**
* Register all subsystem-declared options formats in <b>mgr</b>.
*
* Return 0 on success, -1 on failure.
diff --git a/src/app/main/subsysmgr.h b/src/app/main/subsysmgr.h
index 35635a756e..ae0b3df469 100644
--- a/src/app/main/subsysmgr.h
+++ b/src/app/main/subsysmgr.h
@@ -31,6 +31,8 @@ void subsystems_prefork(void);
void subsystems_postfork(void);
void subsystems_thread_cleanup(void);
+void subsystems_dump_list(void);
+
struct config_mgr_t;
int subsystems_register_options_formats(struct config_mgr_t *mgr);
int subsystems_register_state_formats(struct config_mgr_t *mgr);