1 /* Copyright (c) 2003-2004, Roger Dingledine 2 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 3 * Copyright (c) 2007-2021, The Tor Project, Inc. */ 4 /* See LICENSE for licensing information */ 5 6 /** 7 * @file subsystem_list.c 8 * @brief List of Tor's subsystems. 9 **/ 10 11 #include "orconfig.h" 12 #include "app/main/subsysmgr.h" 13 #include "lib/cc/compat_compiler.h" 14 #include "lib/cc/torint.h" 15 16 #include "core/mainloop/mainloop_sys.h" 17 #include "core/or/dos_sys.h" 18 #include "core/or/or_sys.h" 19 #include "feature/control/btrack_sys.h" 20 #include "lib/compress/compress_sys.h" 21 #include "lib/crypt_ops/crypto_sys.h" 22 #include "lib/err/torerr_sys.h" 23 #include "lib/log/log_sys.h" 24 #include "lib/net/network_sys.h" 25 #include "lib/process/process_sys.h" 26 #include "lib/llharden/winprocess_sys.h" 27 #include "lib/thread/thread_sys.h" 28 #include "lib/time/time_sys.h" 29 #include "lib/tls/tortls_sys.h" 30 #include "lib/trace/trace_sys.h" 31 #include "lib/wallclock/wallclock_sys.h" 32 #include "lib/evloop/evloop_sys.h" 33 34 #include "feature/dirauth/dirauth_sys.h" 35 #include "feature/hs/hs_sys.h" 36 #include "feature/metrics/metrics_sys.h" 37 #include "feature/relay/relay_sys.h" 38 39 #include <stddef.h> 40 41 /** 42 * Global list of the subsystems in Tor, in the order of their initialization. 43 * Want to know the exact level numbers? 44 * We'll implement a level dump command in #31614. 45 **/ 46 const subsys_fns_t *tor_subsystems[] = { 47 &sys_winprocess, 48 &sys_torerr, 49 50 &sys_wallclock, 51 &sys_logging, 52 &sys_threads, 53 54 &sys_tracing, 55 56 &sys_time, 57 58 &sys_crypto, 59 &sys_compress, 60 &sys_network, 61 &sys_tortls, 62 63 &sys_evloop, 64 &sys_process, 65 66 &sys_mainloop, 67 &sys_or, 68 &sys_dos, 69 70 &sys_relay, 71 &sys_hs, 72 73 &sys_btrack, 74 75 &sys_dirauth, 76 &sys_metrics, 77 }; 78 79 const unsigned n_tor_subsystems = ARRAY_LENGTH(tor_subsystems); 80