-
-static void discover_sensors (int dev_num, char *sysfs_base_path, char map[CATALOG_SIZE],
- void (*discover_sensor)(int, char*, char*))
-{
- char sysfs_dir[PATH_MAX];
- DIR *dir;
- struct dirent *d;
- unsigned int i;
-
- memset(map, 0, CATALOG_SIZE);
-
- snprintf(sysfs_dir, sizeof(sysfs_dir), sysfs_base_path, dev_num);
-
- dir = opendir(sysfs_dir);
- if (!dir) {
- return;
- }
-
- /* Enumerate entries in this iio device's base folder */
-
- while ((d = readdir(dir))) {
- if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
- continue;
-
- /* If the name matches a catalog entry, flag it */
- for (i = 0; i < CATALOG_SIZE; i++) {
-
- /* No discovery for virtual sensors */
- if (sensor_catalog[i].is_virtual)
- continue;
- discover_sensor(i, d->d_name, map);
- }
- }
-
- closedir(dir);
-}
-
-static void check_poll_sensors (int i, char *sysfs_file, char map[CATALOG_SIZE])
-{
- int c;
-
- for (c = 0; c < sensor_catalog[i].num_channels; c++)
- if (!strcmp(sysfs_file, sensor_catalog[i].channel[c].raw_path) ||
- !strcmp(sysfs_file, sensor_catalog[i].channel[c].input_path)) {
- map[i] = 1;
- break;
- }
-}
-static void check_trig_sensors (int i, char *sysfs_file, char map[CATALOG_SIZE])
-{
-
- if (!strcmp(sysfs_file, sensor_catalog[i].channel[0].en_path)) {
- map[i] = 1;
- return;
- }
-}
-
-static void check_event_sensors(int i, char *sysfs_file, char map[CATALOG_SIZE])
-{
- int j, k;
-
- for (j = 0; j < sensor_catalog[i].num_channels; j++)
- for (k = 0; k < sensor_catalog[i].channel[j].num_events; k++)
- if (!strcmp(sysfs_file, sensor_catalog[i].channel[j].event[k].ev_en_path)) {
- map[i] = 1;
- return ;
- }
-}
-