linux/Documentation
Daniel Borkmann 1067964305 lib: vsprintf: add IPv4/v6 generic %p[Ii]S[pfs] format specifier
In order to avoid making code that deals with printing both, IPv4 and
IPv6 addresses, unnecessary complicated as for example ...

  if (sa.sa_family == AF_INET6)
    printk("... %pI6 ...", ..sin6_addr);
  else
    printk("... %pI4 ...", ..sin_addr.s_addr);

... it would be better to introduce a format specifier that can deal
with those kind of situations internally; just as we have a "struct
sockaddr" for generic mapping into "struct sockaddr_in" or "struct
sockaddr_in6" as e.g. done in "union sctp_addr". Then, we could
reduce the above statement into something like:

  printk("... %pIS ..", &sockaddr);

In case our pointer is NULL, pointer() then deals with that already at
an earlier point in time internally. While we're at it, support for both
%piS/%pIS, where 'S' stands for sockaddr, comes (almost) for free.

Additionally to that, postfix specifiers 'p', 'f' and 's' are supported
as suggested and initially implemented in 2009 by Joe Perches [1].
Handling of those additional specifiers orientate on the initial RFC that
was proposed. Also we support IPv6 compressed format specified by 'c' and
various other IPv4 extensions as stated in the documentation part.

Likely, there are many other areas than just SCTP in the kernel to make
use of this extension as well.

 [1] http://patchwork.ozlabs.org/patch/31480/

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
CC: Joe Perches <joe@perches.com>
CC: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-07-01 23:22:13 -07:00
..
ABI - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
accounting
acpi Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-05-09 09:46:45 -07:00
aoe
arm ARM: platform specific firmware interfaces for 3.10 2013-05-04 12:33:36 -07:00
arm64
auxdisplay
backlight backlight: lp855x: remove duplicate platform data 2013-04-29 18:28:19 -07:00
blackfin
block Documentation: cfq-iosched: update documentation help for cfq tunables 2013-04-09 14:57:06 +02:00
blockdev
bus-devices
cdrom
cgroups mm, memcg: add rss_huge stat to memory.stat 2013-05-07 18:38:26 -07:00
connector
console
cpu-freq Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-05-05 13:23:27 -07:00
cpuidle cpuidle: make a single register function for all 2013-04-23 13:45:22 +02:00
cris
crypto
development-process
device-mapper DM RAID: Add message/status support for changing sync action 2013-04-24 11:42:43 +10:00
devicetree can: flexcan: Use a regulator to control the CAN transceiver 2013-06-27 15:15:25 +02:00
DocBook wireless: fix kernel-doc 2013-06-05 09:33:32 +02:00
driver-model
dvb
early-userspace
EDID drm: Add 1600x1200 (UXGA) screen resolution to the built-in EDIDs 2013-04-12 14:06:16 +10:00
extcon
fault-injection
fb
filesystems xfs: disable noattr2/attr2 mount options for CRC enabled filesystems 2013-06-06 10:51:34 -05:00
firmware_class
frv
hid
hwmon hwmon: (lm75) Add support for the Dallas/Maxim DS7505 2013-05-04 14:49:36 +02:00
i2c
i2o
ia64 Fix example error_injection_tool 2013-04-02 09:39:55 -07:00
ide
infiniband
input
ioctl USB: cdc-wdm: implement IOCTL_WDM_MAX_COMMAND 2013-03-25 13:32:20 -07:00
isdn
ja_JP
kbuild Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2013-05-07 07:59:19 -07:00
kdump Add size restriction to the kdump documentation 2013-04-02 09:40:03 -07:00
ko_KR
laptops
leds leds: lp55xx: configure the clock detection 2013-04-01 11:04:53 -07:00
m68k block: remove refs to XD disks from documentation 2013-05-17 15:17:12 +02:00
make
memory-devices
metag
mips
misc-devices mei: bus: Add device enabling and disabling API 2013-04-08 16:57:15 -07:00
mmc
mn10300
mtd
namespaces
netlabel
networking Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2013-06-30 17:35:13 -07:00
nfc
parisc
PCI
pcmcia
power PM / hibernate: Correct documentation 2013-05-14 01:58:43 +02:00
powerpc powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions 2013-06-01 08:29:23 +10:00
pps
prctl
pti
ptp
rapidio rapidio: documentation update for enumeration changes 2013-05-24 16:22:50 -07:00
RCU Merge commit '8700c95adb03' into timers/nohz 2013-05-02 17:54:19 +02:00
s390 s390/cio: add condev keyword to cio_ignore 2013-05-02 15:50:20 +02:00
scheduler
scsi [SCSI] qla2xxx: Update copyright dates information in LICENSE.qla2xxx file. 2013-04-06 11:31:30 +01:00
security
serial
sh
sound ASoC: Updates for v3.10 2013-04-15 19:45:16 +02:00
spi
sysctl net: poll/select low latency socket support 2013-06-25 16:35:52 -07:00
target
thermal Thermal: update documentation for thermal_zone_device_register 2013-04-27 09:16:04 +08:00
timers nohz_full: Add documentation. 2013-04-27 16:41:43 -07:00
trace Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-04-30 09:36:50 -07:00
usb USB: remove CONFIG_USB_SUSPEND from Documentation 2013-03-28 14:45:56 -07:00
vDSO
video4linux [media] v4l2: Add a V4L2 driver for SI476X MFD 2013-04-18 21:20:34 -03:00
virtual Merge tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-05-05 14:47:31 -07:00
vm mm: limit growth of 3% hardcoded other user reserve 2013-04-29 15:54:36 -07:00
w1
watchdog
wimax
x86 Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-04-30 08:35:20 -07:00
xtensa xtensa: document MMUv3 setup sequence 2013-05-09 01:07:09 -07:00
zh_CN gpio: update gpio Chinese documentation 2013-04-16 18:47:22 +09:00
.gitignore
00-INDEX
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
bcache.txt bcache: clarify free/available/unused space 2013-05-15 00:42:52 -07:00
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
Changes
circular-buffers.txt
clk.txt clk: add clk_ignore_unused option to keep boot clocks on 2013-04-27 23:03:43 -07:00
coccinelle.txt Coccinelle: Add support to the SPFLAGS variable 2013-04-08 15:42:03 +02:00
CodingStyle
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt block: remove refs to XD disks from documentation 2013-05-17 15:17:12 +02:00
digsig.txt
DMA-API-HOWTO.txt
DMA-API.txt
DMA-attributes.txt
dma-buf-sharing.txt dma-buf: replace dma_buf_export() with dma_buf_export_named() 2013-05-01 16:35:36 +05:30
DMA-ISA-LPC.txt
dmaengine.txt
dmatest.txt dmatest: do not allow to interrupt ongoing tests 2013-06-08 02:13:44 +05:30
dontdiff
dynamic-debug-howto.txt
edac.txt
eisa.txt
email-clients.txt
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt Remove GENERIC_GPIO config option 2013-04-16 18:47:19 +09:00
highuid.txt
HOWTO
hw_random.txt
hwspinlock.txt
init.txt
initrd.txt
intel_txt.txt
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
iostats.txt iostats.txt: add easy-to-find description for field 6 2013-04-29 15:18:50 +02:00
IPMI.txt
IRQ-affinity.txt
IRQ-domain.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt Merge branch 'for-linus' of git://git.kernel.dk/linux-block 2013-06-12 16:42:39 -07:00
kernel-per-CPU-kthreads.txt kthread: Document ways of reducing OS jitter due to per-CPU kthreads 2013-04-27 16:52:47 -07:00
kmemcheck.txt
kmemleak.txt
kobject.txt
kprobes.txt
kref.txt
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
lockup-watchdogs.txt
logo.gif
logo.txt
magic-number.txt
Makefile
ManagementStyle
md.txt MD: Fix typos in MD documentation 2013-04-24 11:42:42 +10:00
media-framework.txt
memory-barriers.txt
memory-hotplug.txt
mono.txt
mutex-design.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
percpu-rw-semaphore.txt
pi-futex.txt
pinctrl.txt
pnp.txt
preempt-locking.txt
printk-formats.txt lib: vsprintf: add IPv4/v6 generic %p[Ii]S[pfs] format specifier 2013-07-01 23:22:13 -07:00
pwm.txt
ramoops.txt
rbtree.txt
remoteproc.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
SAK.txt
SecurityBugs
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
smsc_ece1099.txt
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
static-keys.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches checkpatch: add Suggested-by as a standard signature 2013-04-29 18:28:20 -07:00
svga.txt
sysfs-rules.txt
sysrq.txt Documentation/sysrq: fix inconstistent help message of sysrq key 2013-04-30 17:04:10 -07:00
this_cpu_ops.txt percpu: add documentation on this_cpu operations 2013-04-04 10:24:53 -07:00
unaligned-memory-access.txt
unicode.txt
unshare.txt
vfio.txt
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
vme_api.txt
volatile-considered-harmful.txt
workqueue.txt
xz.txt
zorro.txt