[PATCH] staging: comedi: introduce some sample size manipulation functions

Hartley Sweeten HartleyS at visionengravers.com
Thu Oct 23 20:23:49 UTC 2014


On Thursday, October 23, 2014 5:48 AM, Ian Abbott wrote:
> Introduce a few static inline helper functions:
>
> `comedi_bytes_per_sample(s)` is the same as the existing
> `bytes_per_sample(s)` and determines the size of a comedi sample in
> bytes.  (`bytes_per_sample(s)` will be removed.)
>
> `comedi_sample_shift(s)` determines the log2 of the comedi sample size,
> so it can be used in bit-shift operations to multiply or divide by the
> sample size.
>
> `comedi_bytes_to_samples(s, nbytes)` converts a number of bytes to a
> number of samples (rounding down).
>
> `comedi_samples_to_bytes(s, nsamples)` converts a number of samples to a
> number of bytes.
>
> Signed-off-by: Ian Abbott <abbotti at mev.co.uk>
> ---
>  drivers/staging/comedi/comedidev.h | 63 +++++++++++++++++++++++++++++++++++---
>  1 file changed, 59 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h
> index 1b2bbd5..69cf6fe 100644
> --- a/drivers/staging/comedi/comedidev.h
> +++ b/drivers/staging/comedi/comedidev.h
> @@ -391,12 +391,67 @@ static inline unsigned int comedi_offset_munge(struct comedi_subdevice *s,
>  	return val ^ s->maxdata ^ (s->maxdata >> 1);
>  }
> 
> -static inline unsigned int bytes_per_sample(const struct comedi_subdevice *subd)
> +/**
> + * comedi_bytes_per_sample - determine subdevice sample size
> + * @s:		comedi_subdevice struct
> + *
> + * The sample size will be 4 (sizeof int) or 2 (sizeof short) depending on
> + * whether the SDF_LSAMPL subdevice flag is set or not.
> + *
> + * Returns the subdevice sample size.
> + */
> +static inline unsigned int comedi_bytes_per_sample(struct comedi_subdevice *s)
>  {
> -	if (subd->subdev_flags & SDF_LSAMPL)
> -		return sizeof(unsigned int);
> +	return s->subdev_flags & SDF_LSAMPL ? sizeof(int) : sizeof(short);

The samples are really 'unsigned' types but I guess it doesn't matter here.

> +}
 
Reviewed-by: H Hartley Sweeten <hsweeten at visionengravers.com>



More information about the devel mailing list