From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Cc: Tom Rini <trini@konsulko.com>, u-boot@lists.denx.de
Subject: Re: [PATCH 1/1] doc: printf() codes
Date: Wed, 19 Jan 2022 12:09:17 +0900 [thread overview]
Message-ID: <20220119030917.GA61490@laputa> (raw)
In-Reply-To: <20220119002300.75709-1-heinrich.schuchardt@canonical.com>
Heinrich,
Thank you for additional work.
On Wed, Jan 19, 2022 at 01:23:00AM +0100, Heinrich Schuchardt wrote:
> Document the format specifier codes used by U-Boot's printf()
> implementation.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
> doc/develop/index.rst | 1 +
> doc/develop/printf.rst | 132 +++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 133 insertions(+)
> create mode 100644 doc/develop/printf.rst
>
> diff --git a/doc/develop/index.rst b/doc/develop/index.rst
> index 9592d193fc..c84b10ea88 100644
> --- a/doc/develop/index.rst
> +++ b/doc/develop/index.rst
> @@ -21,6 +21,7 @@ Implementation
> logging
> makefiles
> menus
> + printf
> uefi/index
> version
>
> diff --git a/doc/develop/printf.rst b/doc/develop/printf.rst
> new file mode 100644
> index 0000000000..6a1266618e
> --- /dev/null
> +++ b/doc/develop/printf.rst
> @@ -0,0 +1,132 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +Printf() format codes
> +=====================
> +
> +Integer types
> +-------------
> +
> +Integer qualifiers
> +''''''''''''''''''
> +
> +Inter qualifers describe how integer types are passed as arguments.
> +
> +no specifier
> + int (used for bool, enum, short, int)
> +
> +%h
> + int, consider only the low 16 bits
low -> lower? (think of the opposite, "upper" or "higher")
> +
> +%l
> + long
> +
> +%ll, %L
> + long long
> +
> +%t
> + ptr_diff_t
ptrdiff_t
> +
> +%z, %Z
> + size_t, ssize_t
> +
> +Format specifiers
> +'''''''''''''''''
> +
> +Format specifiers control the output.
> +
> +%d
> + signed decimal
> +
> +%u
> + unsigned decimal
> +
> +%x
> + lower case hexadecimal
> +
> +%X
> + upper case hexadecimal
> +
> +The following tables shows the correct combinations of qulifiers and specifiers
> +for the individual integer types.
> +
> +=================== =====================
> +Type Format specifier
> +=================== =====================
> +bool %d, %x
> +char %d, %x
and %X?
> +unsigned char %u, %x
> +short %d, %x
> +unsigned short %u, %x
> +int %d, %x
> +unsigned int %d, %x
> +long %ld, %lx
> +unsigned long %lu, %lx
> +long long %lld, %llx
> +unsigned long long %llu, %llx
> +off_t %llu, %llx
> +ptr_diff_t %td, %tx
> +fdt_addr_t %pa, see pointers
Does "see pointers" refer to "Pointer" section?
There is no further description about fdt_[addr|size]_t there.
> +fdt_size_t %pa, see pointers
> +phys_addr_t %pa, see pointers
> +phys_size_t %pa, see pointers
> +size_t %zu, %zx, %Zu, %Zx
> +ssize_t %zd, %zx, %Zd, %Zx
> +=================== =====================
For completeness, we might better address padding (space, '0')
justification ('+', '-') and '#' as well.
> +
> +Characters
> +----------
> +
> +%c
> + prints a single character
> +
> +Strings
> +-------
> +
> +%s
> + prints a UTF-8 string (char \*)
may drop "a" for consistency in below cases
drop '\'
> +
> +%ls
> + prints a UTF-16 string (u16 \*)
> +
> +Pointers
> +--------
> +
> +%p
> + prints the address the pointer points to hexadecimally
> +
> +%pa, %pap
> + prints the value of a phys_addr_t value that the pointer points to
> + preceded with 0x and zero padding according to size of phys_addr_t
> +
> +%pD
> + prints an UEFI device path
an -> a, or drop it.
> +
> +%pi4, %pI4
> + prints IPv4 address, e.g. '192.168.0.1'
> +
> +%pm
> + prints MAC address without separators, e.g. '001122334455'
> +
> +%pM
> + print MAC address colon separated, e.g. '00:01:02:03:04:05'
> +
> +%pUb
> + prints GUID big endian, lower case
> + e.g. '00112233-4455-6677-8899-aabbccddeeff'
> +
> +%pUB
> + prints GUID big endian, upper case
> + e.g. '00112233-4455-6677-8899-AABBCCDDEEFF'
> +
> +%pUl
> + prints GUID low endian, lower case
low -> little
> + e.g. '33221100-5544-7766-8899-aabbccddeeff'
> +
> +%pUL
> + prints GUID low endian, upper case
ditto
> + e.g. '33221100-5544-7766-8899-AABBCCDDEEFF'
> +
> +%pUs
> + prints text description of a GUID or if such is not known low endian,
ditto
-Takahiro Akashi
> + lower case, e.g. 'system' for a GUID identifying an EFI system
> + partition.
> --
> 2.33.1
>
next prev parent reply other threads:[~2022-01-19 3:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-19 0:23 [PATCH 1/1] doc: printf() codes Heinrich Schuchardt
2022-01-19 3:09 ` AKASHI Takahiro [this message]
2022-01-19 14:27 ` Heinrich Schuchardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220119030917.GA61490@laputa \
--to=takahiro.akashi@linaro.org \
--cc=heinrich.schuchardt@canonical.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.