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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox