printk: add generic functions to find KERN_<LEVEL> headers
[firefly-linux-kernel-4.4.55.git] / include / linux / printk.h
index 1bec2f7a2d4236488af252d138188fa7c29e8369..6e12e1f09047654e313289d3390585b77582df89 100644 (file)
@@ -24,6 +24,32 @@ extern const char linux_proc_banner[];
  */
 #define KERN_CONT      "<c>"
 
+static inline int printk_get_level(const char *buffer)
+{
+       if (buffer[0] == '<' && buffer[1] && buffer[2] == '>') {
+               switch (buffer[1]) {
+               case '0' ... '7':
+               case 'd':       /* KERN_DEFAULT */
+               case 'c':       /* KERN_CONT */
+                       return buffer[1];
+               }
+       }
+       return 0;
+}
+
+static inline const char *printk_skip_level(const char *buffer)
+{
+       if (printk_get_level(buffer)) {
+               switch (buffer[1]) {
+               case '0' ... '7':
+               case 'd':       /* KERN_DEFAULT */
+               case 'c':       /* KERN_CONT */
+                       return buffer + 3;
+               }
+       }
+       return buffer;
+}
+
 extern int console_printk[];
 
 #define console_loglevel (console_printk[0])