Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 319907
b: refs/heads/master
c: 76597ff
h: refs/heads/master
i:
  319905: b709787
  319903: 6c37ff6
v: v3
  • Loading branch information
Andrei Emeltchenko authored and Linus Torvalds committed Jul 31, 2012
1 parent 52705bd commit f9630db
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 61e99ab8e35a88b8c4d0f80d3df9ee16df471be5
refs/heads/master: 76597ff989a1fbaa9b9a1e54007cd759bf257ab7
5 changes: 5 additions & 0 deletions trunk/Documentation/printk-formats.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Struct Resources:
MAC/FDDI addresses:

%pM 00:01:02:03:04:05
%pMR 05:04:03:02:01:00
%pMF 00-01-02-03-04-05
%pm 000102030405

Expand All @@ -67,6 +68,10 @@ MAC/FDDI addresses:
the 'M' specifier to use dash ('-') separators instead of the default
separator.

For Bluetooth addresses the 'R' specifier shall be used after the 'M'
specifier to use reversed byte order suitable for visual interpretation
of Bluetooth addresses which are in the little endian order.

IPv4 addresses:

%pI4 1.2.3.4
Expand Down
23 changes: 19 additions & 4 deletions trunk/lib/vsprintf.c
Original file line number Diff line number Diff line change
Expand Up @@ -662,15 +662,28 @@ char *mac_address_string(char *buf, char *end, u8 *addr,
char *p = mac_addr;
int i;
char separator;
bool reversed = false;

if (fmt[1] == 'F') { /* FDDI canonical format */
switch (fmt[1]) {
case 'F':
separator = '-';
} else {
break;

case 'R':
reversed = true;
/* fall through */

default:
separator = ':';
break;
}

for (i = 0; i < 6; i++) {
p = hex_byte_pack(p, addr[i]);
if (reversed)
p = hex_byte_pack(p, addr[5 - i]);
else
p = hex_byte_pack(p, addr[i]);

if (fmt[0] == 'M' && i != 5)
*p++ = separator;
}
Expand Down Expand Up @@ -933,6 +946,7 @@ int kptr_restrict __read_mostly;
* - 'm' For a 6-byte MAC address, it prints the hex address without colons
* - 'MF' For a 6-byte MAC FDDI address, it prints the address
* with a dash-separated hex notation
* - '[mM]R For a 6-byte MAC address, Reverse order (Bluetooth)
* - 'I' [46] for IPv4/IPv6 addresses printed in the usual way
* IPv4 uses dot-separated decimal without leading 0's (1.2.3.4)
* IPv6 uses colon separated network-order 16 bit hex with leading 0's
Expand Down Expand Up @@ -995,7 +1009,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
return resource_string(buf, end, ptr, spec, fmt);
case 'M': /* Colon separated: 00:01:02:03:04:05 */
case 'm': /* Contiguous: 000102030405 */
/* [mM]F (FDDI, bit reversed) */
/* [mM]F (FDDI) */
/* [mM]R (Reverse order; Bluetooth) */
return mac_address_string(buf, end, ptr, spec, fmt);
case 'I': /* Formatted IP supported
* 4: 1.2.3.4
Expand Down

0 comments on commit f9630db

Please sign in to comment.