From: Lars-Peter Clausen <lars@metafoo.de>
To: Jonathan Cameron <jic23@kernel.org>
Cc: linux-iio@vger.kernel.org,
Oleksandr Kravchenko <o.v.kravchenko@globallogic.com>,
Josh Wu <josh.wu@atmel.com>,
Denis Ciocca <denis.ciocca@gmail.com>,
Manuel Stahl <manuel.stahl@iis.fraunhofer.de>,
Ge Gao <ggao@invensense.com>, Peter Meerwald <pmeerw@pmeerw.net>,
Jacek Anaszewski <j.anaszewski@samsung.com>,
Fabio Estevam <fabio.estevam@freescale.com>,
Marek Vasut <marex@denx.de>
Subject: Re: [PATCH 04/27] iio: Add iio_push_buffers_with_timestamp() helper
Date: Mon, 16 Sep 2013 22:42:44 +0200 [thread overview]
Message-ID: <52376D44.6030201@metafoo.de> (raw)
In-Reply-To: <52374FD1.7080001@kernel.org>
On 09/16/2013 08:37 PM, Jonathan Cameron wrote:
> On 09/16/13 09:19, Lars-Peter Clausen wrote:
>> On 09/16/2013 09:52 AM, Jonathan Cameron wrote:
>> [...]
>>> Interesting. Whilst this obviously results in the removal of a lot of
>>> repeated code, I am nervous about introducing the 'hidden' requirement
>>> that the data buffer passed in must be bigger than is 'apparently' used
>>> in the code calling this. I'm not sure what the right answer is though.
>>
>> Well it's not that hidden, it is clearly documented that the function is
>> going to store the timestamp in the buffer.
> But who reads the docs? :)
Hopefully everybody ;)
>> My first idea was to make
>> storing timestamp a separate function. E.g. like
>>
>> iio_store_timestamp(indio_dev, buf, ts);
>> iio_push_to_buffers(indio_dev, buf);
> That was my first thought as well.
>>
>> This makes it a bit more explicit that the buffer needs to be large enough
>> to hold the timestamp. But since that function would always be followed by
>> iio_push_to_buffers() I choose to add a function that does both, store the
>> timestamp and push the buffer out.
> Hmm. I'm more or less convinced though I think moving the buffer allocation
> into the core (or nearly the core) would be a good way of avoiding any
> confusion in the long run.
Things will go bad anyway if your buffer is smaller than scan_bytes as
iio_push_to_buffers expects this.
We could do something like this, but it is rather ugly:
#define iio_push_to_buffers(indio_dev, buffer) \
({ \
BUG_ON(sizeof(buffer) > sizeof(void*) && \
sizeof(buffer) < indio_dev->scan_bytes); \
iio_push_to_buffers(indio_dev, buffers); \
})
- Lars
next prev parent reply other threads:[~2013-09-16 20:42 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-15 16:50 [PATCH 01/27] iio: iio_push_to_buffers(): Change type of 'data' to const void * Lars-Peter Clausen
2013-09-15 16:50 ` [PATCH 02/27] iio: Remove unnecessary casts for iio_push_to_buffers() Lars-Peter Clausen
2013-09-15 18:05 ` Jonathan Cameron
2013-09-15 16:50 ` [PATCH 03/27] staging:iio: " Lars-Peter Clausen
2013-09-15 18:06 ` Jonathan Cameron
2013-09-15 16:50 ` [PATCH 04/27] iio: Add iio_push_buffers_with_timestamp() helper Lars-Peter Clausen
2013-09-15 17:44 ` Peter Meerwald
2013-09-16 7:52 ` Jonathan Cameron
2013-09-16 7:58 ` Peter Meerwald
2013-09-16 8:19 ` Lars-Peter Clausen
2013-09-16 18:35 ` Jonathan Cameron
2013-09-16 8:19 ` Lars-Peter Clausen
2013-09-16 18:37 ` Jonathan Cameron
2013-09-16 20:42 ` Lars-Peter Clausen [this message]
2013-09-15 16:50 ` [PATCH 05/27] iio:bma180: Use iio_push_buffers_with_timestamp() Lars-Peter Clausen
2013-09-15 16:50 ` [PATCH 06/27] iio:ad7266: Use iio_push_to_buffers_with_timestamp() Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 07/27] iio:ad7298: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 08/27] iio:ad7476: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 09/27] iio:ad7887: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 10/27] iio:ad7923: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 11/27] iio:ad_sigma_delta: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 12/27] iio:at91_adc: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 13/27] iio:max1363: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 14/27] iio:st_sensors: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 15/27] iio:itg3200: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 16/27] iio:adis16400: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 17/27] iio:adis_lib: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 18/27] iio:mpu6050: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 19/27] iio:adjd_s311: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 20/27] iio:tcs3472: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 21/27] iio:gp2ap020a00f: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 22/27] staging:iio:lis3l02dq: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 23/27] staging:iio:ad7606: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 24/27] staging:iio:ad799x: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 25/27] staging:iio:mxs-lradc: " Lars-Peter Clausen
2013-09-16 13:53 ` Marek Vasut
2013-09-16 16:54 ` Lars-Peter Clausen
2013-09-16 17:08 ` Marek Vasut
2013-09-15 16:51 ` [PATCH 26/27] staging:iio:dummy: " Lars-Peter Clausen
2013-09-15 16:51 ` [PATCH 27/27] staging:iio:ade7758: " Lars-Peter Clausen
2013-09-15 18:04 ` [PATCH 01/27] iio: iio_push_to_buffers(): Change type of 'data' to const void * Jonathan Cameron
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=52376D44.6030201@metafoo.de \
--to=lars@metafoo.de \
--cc=denis.ciocca@gmail.com \
--cc=fabio.estevam@freescale.com \
--cc=ggao@invensense.com \
--cc=j.anaszewski@samsung.com \
--cc=jic23@kernel.org \
--cc=josh.wu@atmel.com \
--cc=linux-iio@vger.kernel.org \
--cc=manuel.stahl@iis.fraunhofer.de \
--cc=marex@denx.de \
--cc=o.v.kravchenko@globallogic.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).