All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Dmitry Antipov <dmantipov@yandex.ru>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	rodrigo.alencar@analog.com, dlechner@baylibre.com,
	jic23@kernel.org
Subject: Re: [PATCH v1 0/2] kstrtox: make _parse_integer() flexible
Date: Wed, 3 Jun 2026 13:23:45 +0200	[thread overview]
Message-ID: <aiAOwYH9pDns2ugt@pathway> (raw)
In-Reply-To: <20260602203706.103449-1-andriy.shevchenko@linux.intel.com>

On Tue 2026-06-02 22:29:45, Andy Shevchenko wrote:
> Currently every new wrapper on _parse_integer_limit() will need a new name
> to share with users while keeping some optional arguments to be initialised
> explicitly. Since there is an attempt to expand this more, I decided to
> suggest this mini series to avoid namespace pollution and unneeded churn in
> the future.
> 
> To expand this API more, the possible future change may be:
> 
>  unsigned int _parse_integer_limit(const char *s, unsigned int base, unsigned long long *res,
> -                                  size_t max_chars);
> +                                  size_t max_chars, $new_opt_arg);
> 
>  #define _parse_integer0(s, base, res, ...)                                              \
> -        _parse_integer_limit(s, base, res, INT_MAX);
> +        _parse_integer_limit(s, base, res, INT_MAX, $new_opt_arg=$default);
> 
>  #define _parse_integer1(s, base, res, max_chars, ...)                                   \
> -        _parse_integer_limit(s, base, res, max_chars);
> +        _parse_integer_limit(s, base, res, max_chars, $new_opt_arg=$default);
> 
> +#define _parse_integer2(s, base, res, max_chars, new_opt_arg, ...)                      \
> +        _parse_integer_limit(s, base, res, max_chars, new_opt_arg);

I guess that this is about _parse_integer_limit_init() from
https://lore.kernel.org/all/20260531-adf41513-iio-driver-v15-2-da09adf1c0dd@analog.com/

I personally find

    _parse_integer(*s, base. *res)
    _parse_integer_limit(*s, base, *res, max_chars)
    _parse_integer_limit_init(*s, base, init, *res, max_chars)

a bit more self-explanatory than

    _parse_integer(*s, base. *res)
    _parse_integer(*s, base, *res, max_chars)
    _parse_integer(*s, base, *res, max_chars, init)

especially when the meaning of the arguments need not be obvious
when the function is used in the code.

Also the macro magic increases the complexity of the code.

On the other hand, I do not have strong opinion. It is not a big deal.
I am not going to block it.

> So you got the idea. (It is roughly overloaded function in OOP.)

Best Regards,
Petr

  parent reply	other threads:[~2026-06-03 11:23 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-02 20:29 [PATCH v1 0/2] kstrtox: make _parse_integer() flexible Andy Shevchenko
2026-06-02 20:29 ` [PATCH v1 1/2] kstrtox: Make _parse_integer() take variadic arguments Andy Shevchenko
2026-06-03  6:47   ` Andy Shevchenko
2026-06-03 10:37   ` David Laight
2026-06-03 10:54     ` Andy Shevchenko
2026-06-03 10:56       ` Andy Shevchenko
2026-06-03 11:34         ` David Laight
2026-06-02 20:29 ` [PATCH v1 2/2] vsprintf: Convert to use _parse_integer() instead of _parse_integer_limit() Andy Shevchenko
2026-06-03 11:23 ` Petr Mladek [this message]
2026-06-03 11:51   ` [PATCH v1 0/2] kstrtox: make _parse_integer() flexible Rodrigo Alencar
2026-06-03 12:10     ` Rodrigo Alencar
2026-06-03 13:58       ` Andy Shevchenko
2026-06-03 13:53     ` Andy Shevchenko
2026-06-04  6:59       ` Petr Mladek
2026-06-04  7:19         ` Andy Shevchenko
2026-06-04  7:48           ` Rodrigo Alencar

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=aiAOwYH9pDns2ugt@pathway \
    --to=pmladek@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=dlechner@baylibre.com \
    --cc=dmantipov@yandex.ru \
    --cc=jic23@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=rodrigo.alencar@analog.com \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    /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.