On Fri, 28 September 2007 10:39:06 +0200, Bernd Petrovitsch wrote: > > If think you misunderstood: > Say, you compile out everything of DEBUG level. > Say, you have a continued printk() after each and every pr_debug(). > > Then how is the macro supposed to know (at compile-time) that the > continued printk() actually belongs to a DEBUG printk (and not another > one)?
#if CONFIG_PRINTK_DOICARE >= 3 #define PRINTK_DEBUG_CONTINUED "", #else #define PRINTK_DEBUG_CONTINUED PRINTK_DEBUG #endif ... #define printk(level, str, ...) \ do { \ if (sizeof(level) == 1) /* continued printk */\ actual_printk(str, __VA_ARGS__); \ else if ((level[1] - '0') < CONFIG_PRINTK_DOICARE) \ actual_printk(level str, __VA_ARGS__); \ } while(0); Now you can mark a continued KERN_ERR call as such. And depending on CONFIG_PRINTK_DOICARE it will either be printed as always or turned into a stand-alone printk() that gets optimized away. Do the same for all the other levels. Open question remains: do we want to go down that road? I have no idea. Jörn -- I've never met a human being who would want to read 17,000 pages of documentation, and if there was, I'd kill him to get him out of the gene pool. -- Joseph Costello - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/