]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
log: Define count, boundary, and all macros for domains and flags
authorteor <teor@torproject.org>
Thu, 26 Sep 2019 03:33:17 +0000 (13:33 +1000)
committerteor <teor@torproject.org>
Mon, 30 Sep 2019 12:04:03 +0000 (22:04 +1000)
And do static checks on those macro definitions.

Part of 31854.

src/lib/log/log.c
src/lib/log/log.h

index 994fdbdd9e560e302617e677135c9fc0fa347f43..db4f1544186ac0a2aeee951b0962c44b16510190 100644 (file)
@@ -1337,7 +1337,9 @@ static const char *domain_list[] = {
 
 CTASSERT(ARRAY_LENGTH(domain_list) == N_LOGGING_DOMAINS + 1);
 
-CTASSERT((UINT64_C(1)<<(N_LOGGING_DOMAINS-1)) < LOWEST_RESERVED_LD_FLAG_);
+CTASSERT(HIGHEST_RESERVED_LD_DOMAIN_ < LD_ALL_DOMAINS);
+CTASSERT(LD_ALL_DOMAINS < LOWEST_RESERVED_LD_FLAG_);
+CTASSERT(LOWEST_RESERVED_LD_FLAG_ < LD_ALL_FLAGS);
 
 /** Return a bitmask for the log domain for which <b>domain</b> is the name,
  * or 0 if there is no such name. */
index da4bcbe60818aa410de99b20ebf02f4467b3d8b9..b957fd156723edefd20eee12db13a9e4e35cd13a 100644 (file)
 #define LD_BTRACK    (UINT64_C(1)<<28)
 /** Message-passing backend. */
 #define LD_MESG      (UINT64_C(1)<<29)
+
+/** The number of log domains. */
 #define N_LOGGING_DOMAINS 30
+/** The highest log domain */
+#define HIGHEST_RESERVED_LD_DOMAIN_ (UINT64_C(1)<<(N_LOGGING_DOMAINS - 1))
+/** All log domains. */
+#define LD_ALL_DOMAINS ((~(UINT64_C(0)))>>(64 - N_LOGGING_DOMAINS))
 
+/** The number of log flags. */
+#define N_LOGGING_FLAGS 3
 /** First bit that is reserved in log_domain_mask_t for non-domain flags. */
-#define LOWEST_RESERVED_LD_FLAG_ (UINT64_C(1)<<61)
+#define LOWEST_RESERVED_LD_FLAG_ (UINT64_C(1)<<(64 - N_LOGGING_FLAGS))
+/** All log flags. */
+#define LD_ALL_FLAGS ((~(UINT64_C(0)))<<(64 - N_LOGGING_FLAGS))
+
 #ifdef TOR_UNIT_TESTS
 /** This log message should not be intercepted by mock_saving_logv */
 #define LD_NO_MOCK (UINT64_C(1)<<61)