From ab1561f23867c4a538c4aeaa11b7d01bd678eeaf Mon Sep 17 00:00:00 2001 From: Randy Dunlap Date: Wed, 12 Nov 2008 13:26:55 -0800 Subject: [PATCH] --- yaml --- r: 118911 b: refs/heads/master c: b67ad18b06701b77ca8bfe9bb760c5c9e765e3cf h: refs/heads/master i: 118909: 1fa86a2753ed50393b4e28f43dd1866cef2c698e 118907: e65e00423abe6d55bb384691b84484ba0b4d4e79 118903: 404bb1ec2c9f1a231b1cb8fdcbdfb95096080a01 118895: b6f8e0ecf3aa769c7ce8a5dd69bdf3fead3e89a5 118879: 1bbc577a862b5a38b8358b1ac991671d90c97ae8 118847: c09381f54c05105b6b94b2ccc665006ff203b1cd 118783: e9cfd9d0e9c7c1ce7a6051b7a72d180d1d5e5070 v: v3 --- [refs] | 2 +- trunk/Documentation/00-INDEX | 2 ++ trunk/Documentation/printk-formats.txt | 35 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 trunk/Documentation/printk-formats.txt diff --git a/[refs] b/[refs] index 5fe49c4df88e..239c300b18a9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b76f90b526737070302a127c710263e2ac707676 +refs/heads/master: b67ad18b06701b77ca8bfe9bb760c5c9e765e3cf diff --git a/trunk/Documentation/00-INDEX b/trunk/Documentation/00-INDEX index edef85ce1195..50f99eab0e1f 100644 --- a/trunk/Documentation/00-INDEX +++ b/trunk/Documentation/00-INDEX @@ -290,6 +290,8 @@ powerpc/ - directory with info on using Linux with the PowerPC. preempt-locking.txt - info on locking under a preemptive kernel. +printk-formats.txt + - how to get printk format specifiers right prio_tree.txt - info on radix-priority-search-tree use for indexing vmas. ramdisk.txt diff --git a/trunk/Documentation/printk-formats.txt b/trunk/Documentation/printk-formats.txt new file mode 100644 index 000000000000..1b5a5ddbc3ef --- /dev/null +++ b/trunk/Documentation/printk-formats.txt @@ -0,0 +1,35 @@ +If variable is of Type, use printk format specifier: +--------------------------------------------------------- + int %d or %x + unsigned int %u or %x + long %ld or %lx + unsigned long %lu or %lx + long long %lld or %llx + unsigned long long %llu or %llx + size_t %zu or %zx + ssize_t %zd or %zx + +Raw pointer value SHOULD be printed with %p. + +u64 SHOULD be printed with %llu/%llx, (unsigned long long): + + printk("%llu", (unsigned long long)u64_var); + +s64 SHOULD be printed with %lld/%llx, (long long): + + printk("%lld", (long long)s64_var); + +If is dependent on a config option for its size (e.g., sector_t, +blkcnt_t, phys_addr_t, resource_size_t) or is architecture-dependent +for its size (e.g., tcflag_t), use a format specifier of its largest +possible type and explicitly cast to it. Example: + + printk("test: sector number/total blocks: %llu/%llu\n", + (unsigned long long)sector, (unsigned long long)blockcount); + +Reminder: sizeof() result is of type size_t. + +Thank you for your cooperation and attention. + + +By Randy Dunlap