All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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.