console: Use BIT() macros for @flags values
authorThomas Gleixner <tglx@linutronix.de>
Mon, 9 Jan 2023 10:07:54 +0000 (11:13 +0106)
committerPetr Mladek <pmladek@suse.com>
Wed, 11 Jan 2023 14:35:11 +0000 (15:35 +0100)
Rather than manually calculating powers of 2, use the BIT() macros.
Also take this opportunatity to cleanup and restructure the value
comments into proper kerneldoc comments.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20230109100800.1085541-3-john.ogness@linutronix.de
include/linux/console.h

index 9cea254b34b8eac4420532eba870ce24cfee6937..ed804dd7c2e8f66fd198c8acd4b8ccfaed74b8c7 100644 (file)
@@ -15,6 +15,7 @@
 #define _LINUX_CONSOLE_H_ 1
 
 #include <linux/atomic.h>
+#include <linux/bits.h>
 #include <linux/rculist.h>
 #include <linux/types.h>
 
@@ -125,18 +126,43 @@ static inline int con_debug_leave(void)
 /*
  * The interface for a console, or any other device that wants to capture
  * console messages (printer driver?)
- *
- * If a console driver is marked CON_BOOT then it will be auto-unregistered
- * when the first real console is registered.  This is for early-printk drivers.
  */
 
-#define CON_PRINTBUFFER        (1)
-#define CON_CONSDEV    (2) /* Preferred console, /dev/console */
-#define CON_ENABLED    (4)
-#define CON_BOOT       (8)
-#define CON_ANYTIME    (16) /* Safe to call when cpu is offline */
-#define CON_BRL                (32) /* Used for a braille device */
-#define CON_EXTENDED   (64) /* Use the extended output format a la /dev/kmsg */
+/**
+ * cons_flags - General console flags
+ * @CON_PRINTBUFFER:   Used by newly registered consoles to avoid duplicate
+ *                     output of messages that were already shown by boot
+ *                     consoles or read by userspace via syslog() syscall.
+ * @CON_CONSDEV:       Indicates that the console driver is backing
+ *                     /dev/console.
+ * @CON_ENABLED:       Indicates if a console is allowed to print records. If
+ *                     false, the console also will not advance to later
+ *                     records.
+ * @CON_BOOT:          Marks the console driver as early console driver which
+ *                     is used during boot before the real driver becomes
+ *                     available. It will be automatically unregistered
+ *                     when the real console driver is registered unless
+ *                     "keep_bootcon" parameter is used.
+ * @CON_ANYTIME:       A misnomed historical flag which tells the core code
+ *                     that the legacy @console::write callback can be invoked
+ *                     on a CPU which is marked OFFLINE. That is misleading as
+ *                     it suggests that there is no contextual limit for
+ *                     invoking the callback. The original motivation was
+ *                     readiness of the per-CPU areas.
+ * @CON_BRL:           Indicates a braille device which is exempt from
+ *                     receiving the printk spam for obvious reasons.
+ * @CON_EXTENDED:      The console supports the extended output format of
+ *                     /dev/kmesg which requires a larger output buffer.
+ */
+enum cons_flags {
+       CON_PRINTBUFFER         = BIT(0),
+       CON_CONSDEV             = BIT(1),
+       CON_ENABLED             = BIT(2),
+       CON_BOOT                = BIT(3),
+       CON_ANYTIME             = BIT(4),
+       CON_BRL                 = BIT(5),
+       CON_EXTENDED            = BIT(6),
+};
 
 struct console {
        char    name[16];