From: Jonathan Cameron <jic23@kernel.org>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>, linux-iio@vger.kernel.org
Subject: Re: [PATCH 1/2] iio: core: Consolidate iio_format_avail_{list,range}()
Date: Sat, 28 Nov 2020 15:42:54 +0000 [thread overview]
Message-ID: <20201128154254.4619329e@archlinux> (raw)
In-Reply-To: <20201114120000.6533-1-lars@metafoo.de>
On Sat, 14 Nov 2020 12:59:59 +0100
Lars-Peter Clausen <lars@metafoo.de> wrote:
> The iio_format_avail_list() and iio_format_avail_range() functions are
> almost identical. The only differences are that iio_format_avail_range()
> expects a fixed amount of items and adds brackets "[ ]" around the output.
>
> Refactor them into a common helper function. This improves the
> maintainability of the code as it makes it easier to modify the
> implementation of these functions.
>
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Nice little cleanup. Series applied to the togreg branch of iio.git and pushed
out as testing for the autobuilders to poke at it.
Thanks,
Jonathan
> ---
> drivers/iio/industrialio-core.c | 57 ++++++++-------------------------
> 1 file changed, 14 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 9955672fc16a..3e71fcab7cbd 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -698,11 +698,13 @@ static ssize_t iio_read_channel_info(struct device *dev,
> return iio_format_value(buf, ret, val_len, vals);
> }
>
> -static ssize_t iio_format_avail_list(char *buf, const int *vals,
> - int type, int length)
> +static ssize_t iio_format_list(char *buf, const int *vals, int type, int length,
> + const char *prefix, const char *suffix)
> {
> + ssize_t len;
> int i;
> - ssize_t len = 0;
> +
> + len = scnprintf(buf, PAGE_SIZE, prefix);
>
> switch (type) {
> case IIO_VAL_INT:
> @@ -716,7 +718,7 @@ static ssize_t iio_format_avail_list(char *buf, const int *vals,
> " ");
> else
> len += scnprintf(buf + len, PAGE_SIZE - len,
> - "\n");
> + "%s\n", suffix);
> if (len >= PAGE_SIZE)
> return -EFBIG;
> }
> @@ -732,7 +734,7 @@ static ssize_t iio_format_avail_list(char *buf, const int *vals,
> " ");
> else
> len += scnprintf(buf + len, PAGE_SIZE - len,
> - "\n");
> + "%s\n", suffix);
> if (len >= PAGE_SIZE)
> return -EFBIG;
> }
> @@ -741,47 +743,16 @@ static ssize_t iio_format_avail_list(char *buf, const int *vals,
> return len;
> }
>
> -static ssize_t iio_format_avail_range(char *buf, const int *vals, int type)
> +static ssize_t iio_format_avail_list(char *buf, const int *vals,
> + int type, int length)
> {
> - int i;
> - ssize_t len;
>
> - len = snprintf(buf, PAGE_SIZE, "[");
> - switch (type) {
> - case IIO_VAL_INT:
> - for (i = 0; i < 3; i++) {
> - len += __iio_format_value(buf + len, PAGE_SIZE - len,
> - type, 1, &vals[i]);
> - if (len >= PAGE_SIZE)
> - return -EFBIG;
> - if (i < 2)
> - len += scnprintf(buf + len, PAGE_SIZE - len,
> - " ");
> - else
> - len += scnprintf(buf + len, PAGE_SIZE - len,
> - "]\n");
> - if (len >= PAGE_SIZE)
> - return -EFBIG;
> - }
> - break;
> - default:
> - for (i = 0; i < 3; i++) {
> - len += __iio_format_value(buf + len, PAGE_SIZE - len,
> - type, 2, &vals[i * 2]);
> - if (len >= PAGE_SIZE)
> - return -EFBIG;
> - if (i < 2)
> - len += scnprintf(buf + len, PAGE_SIZE - len,
> - " ");
> - else
> - len += scnprintf(buf + len, PAGE_SIZE - len,
> - "]\n");
> - if (len >= PAGE_SIZE)
> - return -EFBIG;
> - }
> - }
> + return iio_format_list(buf, vals, type, length, "", "");
> +}
>
> - return len;
> +static ssize_t iio_format_avail_range(char *buf, const int *vals, int type)
> +{
> + return iio_format_list(buf, vals, type, 3, "[", "]");
> }
>
> static ssize_t iio_read_channel_info_avail(struct device *dev,
prev parent reply other threads:[~2020-11-28 22:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-14 11:59 [PATCH 1/2] iio: core: Consolidate iio_format_avail_{list,range}() Lars-Peter Clausen
2020-11-14 12:00 ` [PATCH 2/2] iio: core: Simplify iio_format_list() Lars-Peter Clausen
2020-11-28 15:42 ` Jonathan Cameron [this message]
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=20201128154254.4619329e@archlinux \
--to=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
/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.