Merge tag 'dlm-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
[linux-2.6-microblaze.git] / tools / iio / iio_utils.c
index 7399eb7..aadee6d 100644 (file)
@@ -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,
                                                &current->mask,
                                                &current->be,
                                                device_dir,
+                                               buffer_idx,
                                                current->name,
                                                current->generic_name);
                        if (ret < 0)