diff options
author | Randy Dunlap <randy.dunlap@oracle.com> | 2008-11-12 16:26:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-12 20:17:17 -0500 |
commit | b67ad18b06701b77ca8bfe9bb760c5c9e765e3cf (patch) | |
tree | f0b87e5fceec394f096e932db1f0a5fb7b104f50 | |
parent | b76f90b526737070302a127c710263e2ac707676 (diff) |
DOC: add printk-formats.txt
Add printk-formats.txt so that we don't have to keep fixing the
same things over and over again. <wishful thinking>
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | Documentation/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/printk-formats.txt | 35 |
2 files changed, 37 insertions, 0 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index edef85ce1195..50f99eab0e1f 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX | |||
@@ -290,6 +290,8 @@ powerpc/ | |||
290 | - directory with info on using Linux with the PowerPC. | 290 | - directory with info on using Linux with the PowerPC. |
291 | preempt-locking.txt | 291 | preempt-locking.txt |
292 | - info on locking under a preemptive kernel. | 292 | - info on locking under a preemptive kernel. |
293 | printk-formats.txt | ||
294 | - how to get printk format specifiers right | ||
293 | prio_tree.txt | 295 | prio_tree.txt |
294 | - info on radix-priority-search-tree use for indexing vmas. | 296 | - info on radix-priority-search-tree use for indexing vmas. |
295 | ramdisk.txt | 297 | ramdisk.txt |
diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt new file mode 100644 index 000000000000..1b5a5ddbc3ef --- /dev/null +++ b/Documentation/printk-formats.txt | |||
@@ -0,0 +1,35 @@ | |||
1 | If variable is of Type, use printk format specifier: | ||
2 | --------------------------------------------------------- | ||
3 | int %d or %x | ||
4 | unsigned int %u or %x | ||
5 | long %ld or %lx | ||
6 | unsigned long %lu or %lx | ||
7 | long long %lld or %llx | ||
8 | unsigned long long %llu or %llx | ||
9 | size_t %zu or %zx | ||
10 | ssize_t %zd or %zx | ||
11 | |||
12 | Raw pointer value SHOULD be printed with %p. | ||
13 | |||
14 | u64 SHOULD be printed with %llu/%llx, (unsigned long long): | ||
15 | |||
16 | printk("%llu", (unsigned long long)u64_var); | ||
17 | |||
18 | s64 SHOULD be printed with %lld/%llx, (long long): | ||
19 | |||
20 | printk("%lld", (long long)s64_var); | ||
21 | |||
22 | If <type> is dependent on a config option for its size (e.g., sector_t, | ||
23 | blkcnt_t, phys_addr_t, resource_size_t) or is architecture-dependent | ||
24 | for its size (e.g., tcflag_t), use a format specifier of its largest | ||
25 | possible type and explicitly cast to it. Example: | ||
26 | |||
27 | printk("test: sector number/total blocks: %llu/%llu\n", | ||
28 | (unsigned long long)sector, (unsigned long long)blockcount); | ||
29 | |||
30 | Reminder: sizeof() result is of type size_t. | ||
31 | |||
32 | Thank you for your cooperation and attention. | ||
33 | |||
34 | |||
35 | By Randy Dunlap <rdunlap@xenotime.net> | ||