diff options
Diffstat (limited to 'tools/iio/iio_utils.c')
| -rw-r--r-- | tools/iio/iio_utils.c | 18 | 
1 files changed, 11 insertions, 7 deletions
diff --git a/tools/iio/iio_utils.c b/tools/iio/iio_utils.c index 7399eb7f1378..aadee6d34c74 100644 --- a/tools/iio/iio_utils.c +++ b/tools/iio/iio_utils.c @@ -77,15 +77,17 @@ int iioutils_break_up_name(const char *full_name, char **generic_name)   * @mask: output a bit mask for the raw data   * @be: output if data in big endian   * @device_dir: the IIO device directory + * @buffer_idx: the IIO buffer index   * @name: the channel name   * @generic_name: the channel type name   *   * Returns a value >= 0 on success, otherwise a negative error code.   **/ -int iioutils_get_type(unsigned *is_signed, unsigned *bytes, unsigned *bits_used, -		      unsigned *shift, uint64_t *mask, unsigned *be, -		      const char *device_dir, const char *name, -		      const char *generic_name) +static int iioutils_get_type(unsigned int *is_signed, unsigned int *bytes, +			     unsigned int *bits_used, unsigned int *shift, +			     uint64_t *mask, unsigned int *be, +			     const char *device_dir, int buffer_idx, +			     const char *name, const char *generic_name)  {  	FILE *sysfsfp;  	int ret; @@ -95,7 +97,7 @@ int iioutils_get_type(unsigned *is_signed, unsigned *bytes, unsigned *bits_used,  	unsigned padint;  	const struct dirent *ent; -	ret = asprintf(&scan_el_dir, FORMAT_SCAN_ELEMENTS_DIR, device_dir); +	ret = asprintf(&scan_el_dir, FORMAT_SCAN_ELEMENTS_DIR, device_dir, buffer_idx);  	if (ret < 0)  		return -ENOMEM; @@ -303,12 +305,13 @@ void bsort_channel_array_by_index(struct iio_channel_info *ci_array, int cnt)  /**   * build_channel_array() - function to figure out what channels are present   * @device_dir: the IIO device directory in sysfs + * @buffer_idx: the IIO buffer for this channel array   * @ci_array: output the resulting array of iio_channel_info   * @counter: output the amount of array elements   *   * Returns 0 on success, otherwise a negative error code.   **/ -int build_channel_array(const char *device_dir, +int build_channel_array(const char *device_dir, int buffer_idx,  			struct iio_channel_info **ci_array, int *counter)  {  	DIR *dp; @@ -321,7 +324,7 @@ int build_channel_array(const char *device_dir,  	char *filename;  	*counter = 0; -	ret = asprintf(&scan_el_dir, FORMAT_SCAN_ELEMENTS_DIR, device_dir); +	ret = asprintf(&scan_el_dir, FORMAT_SCAN_ELEMENTS_DIR, device_dir, buffer_idx);  	if (ret < 0)  		return -ENOMEM; @@ -502,6 +505,7 @@ int build_channel_array(const char *device_dir,  						¤t->mask,  						¤t->be,  						device_dir, +						buffer_idx,  						current->name,  						current->generic_name);  			if (ret < 0)  |