From: Arnd Bergmann <arnd@arndb.de>
To: Rob Landley <rob@landley.net>
Cc: linux-tiny@selenic.com, Tim Bird <tim.bird@am.sony.com>,
linux kernel <linux-kernel@vger.kernel.org>,
CE Linux Developers List <celinux-dev@tree.celinuxforum.org>,
Michael Opdenacker <michael@free-electrons.com>
Subject: Re: [Announce] Linux-tiny project revival
Date: Thu, 27 Sep 2007 09:00:36 +0200 [thread overview]
Message-ID: <200709270900.36602.arnd@arndb.de> (raw)
In-Reply-To: <200709201538.43093.rob@landley.net>
On Thursday 20 September 2007, you wrote:
> So instead of:
> printk(KERN_NOTICE "Fruit=%d\n", banana);
> It would now be:
> printk(KERN_NOTICE, "Fruit=%d\n", banana);
>
> Change the header from:
> #define KERN_NOTICE "<5>"
> to:
> #define KERN_NOTICE 5
>
> Then you can change the printk guts to do something vaguely like (untested):
> #define printk(arg1, arg2, ...) actual_printk("<" #arg1 ">" arg2, __VA_ARGS__)
>
> And so far no behavior has changed. But now the _fun_ part is, you can add a
> config symbol for "what is the minimum loglevel I care about?" Set that as a
> number from 0-9. And then you can define the printk to do:
>
> #define printk(level, str, ...) \
> do { \
> if (level < CONFIG_PRINTK_DOICARE) \
> actual_printk("<" #level ">" str, __VA_ARGS__); \
> } while(0);
>
Assuming that we want to go down that road, I think you can do better with
more evil macro magic, by using something along the lines of
#define KERN_NOTICE "<5>",
#define PRINTK_CONTINUED "",
#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);
Then you don't have to change every single printk in the kernel, but
only those that don't currently come with a log level. More importantly,
you can do the conversion without a flag day, by spreading (an empty)
PRINTK_CONTINUED in places that do need a printk without a log level.
Arnd <><
next prev parent reply other threads:[~2007-09-27 7:12 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-19 18:03 [Announce] Linux-tiny project revival Tim Bird
2007-09-19 18:47 ` Luis R. Rodriguez
2007-09-19 19:31 ` Tim Bird
2007-09-19 19:01 ` Christian MICHON
2007-09-19 19:28 ` Andi Kleen
2007-09-19 19:41 ` Tim Bird
2007-09-19 20:45 ` Valdis.Kletnieks
2007-09-19 21:29 ` Tim Bird
2007-09-19 22:29 ` Michael Opdenacker
2007-09-19 21:28 ` [Celinux-dev] " Andrew Morton
2007-09-19 21:41 ` Tim Bird
2007-09-19 22:38 ` Michael Opdenacker
2007-09-20 9:10 ` Andy Whitcroft
2007-09-20 17:10 ` Monster switch for small size (was Linux-tiny revival) Tim Bird
2007-09-20 21:41 ` Rob Landley
2007-09-20 20:50 ` Randy Dunlap
2007-09-21 6:35 ` Christian MICHON
2007-09-20 23:02 ` [Celinux-dev] [Announce] Linux-tiny project revival Rob Landley
2007-09-20 20:38 ` Rob Landley
2007-09-20 19:58 ` Alexey Dobriyan
2007-09-20 20:22 ` printk proposal - (was Linux-tiny project revival) Tim Bird
2007-09-21 19:07 ` Alexey Dobriyan
2007-09-21 20:53 ` Rob Landley
2007-09-20 22:02 ` [Announce] Linux-tiny project revival Rob Landley
2007-09-20 21:22 ` Jared Hulbert
2007-09-20 22:53 ` Rob Landley
2007-09-20 22:15 ` [Celinux-dev] " Gross, Mark
2007-09-21 0:57 ` Message codes (Re: [Announce] Linux-tiny project revival) Oleg Verych
2007-09-21 14:18 ` Gross, Mark
2007-09-21 21:15 ` Rob Landley
2007-09-21 22:12 ` Gross, Mark
2007-09-21 22:33 ` Joe Perches
2007-09-21 22:39 ` Gross, Mark
2007-09-22 1:55 ` Oleg Verych
2007-09-21 13:29 ` [Announce] Linux-tiny project revival Dick Streefland
2007-09-20 20:16 ` Joe Perches
2007-09-25 11:43 ` [Celinux-dev] " Geert Uytterhoeven
2007-09-20 21:26 ` Indan Zupancic
2007-09-20 23:18 ` Rob Landley
2007-09-20 23:06 ` Indan Zupancic
2007-09-21 6:29 ` Sam Ravnborg
2007-09-24 18:13 ` Adrian Bunk
2007-09-26 6:24 ` Rob Landley
2007-09-21 17:16 ` Valdis.Kletnieks
2007-09-21 17:45 ` Joe Perches
2007-09-21 23:05 ` Rob Landley
2007-09-21 23:08 ` Joe Perches
2007-09-21 21:34 ` Kyle Moffett
2007-09-21 22:05 ` Joe Perches
2007-09-21 22:57 ` Kyle Moffett
2007-09-20 21:58 ` Tim Bird
2007-09-20 22:14 ` Joe Perches
2007-09-21 0:28 ` Rob Landley
2007-09-21 0:03 ` Joe Perches
2007-09-20 23:11 ` Rob Landley
2007-09-21 12:27 ` Bill Davidsen
2007-09-27 7:00 ` Arnd Bergmann [this message]
2007-09-27 16:35 ` Indan Zupancic
2007-09-27 22:21 ` Arnd Bergmann
2007-09-28 8:39 ` Bernd Petrovitsch
2007-09-30 20:37 ` Jörn Engel
2007-09-28 0:06 ` Rob Landley
2007-09-28 14:36 ` Dick Streefland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200709270900.36602.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=celinux-dev@tree.celinuxforum.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tiny@selenic.com \
--cc=michael@free-electrons.com \
--cc=rob@landley.net \
--cc=tim.bird@am.sony.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox