1Xen custom %p format options.  A subset, borrowed from Linux.
2
3All parameters to a %p option should be compatible with void*.  Regular
4pointers are fine.  Numbers should make use of the _p() macro.
5
6Raw buffer as hex string:
7
8       %*ph    00 01 02  ...  3f
9       %*phC   00:01:02: ... :3f
10       %*phD   00-01-02- ... -3f
11       %*phN   000102 ... 3f
12
13       Up to 64 characters.  Buffer length expected via the field_width
14       paramter. i.e. printk("%*ph", 8, buffer);
15
16Bitmaps (e.g. cpumask/nodemask):
17
18       %*pb    4321
19       %*pbl   0,5,8-9,14
20
21       Print a bitmap as either a hex string, or a range list.  Bitmap length
22       (in bits) expected via the field_width parameter.
23
24Symbol/Function pointers:
25
26       %ps     Symbol name with condition offset and size (iff offset != 0)
27                 e.g.  printk
28                       default_idle+0x78/0x7d
29
30       %pS     Symbol name with unconditional offset and size
31                 e.g.  printk+0/0x48
32                       default_idle+0x78/0x7d
33
34       In the case that an appropriate symbol name can't be found, %p[sS] will
35       fall back to '%p' and print the address in hex.
36
37Domain and vCPU information:
38
39       %pd     Domain from a 'struct domain *'
40
41               Regular domains are printed with their ID in decimal.  System
42               domains are printed with their name.
43                 e.g.  d0
44                       d[IDLE]
45
46       %pv     Domain and vCPU ID from a 'struct vcpu *'
47
48               The domain part as above, with the vcpu_id printed in decimal.
49                 e.g.  d0v1
50                       d[IDLE]v0
51