как написать атрибут для каждого канала в sysfs

Я собираюсь написать драйвер сетевого устройства, который поддерживает несколько каналов.

Теперь я собираюсь записать некоторые счетчики (например, переданные байты/пакеты) этого канала в sysfs.

Например, это устройство открывает 8 каналов, тогда я хотел бы, чтобы sysfs был таким:

/sys/devices/mynetdev/channel_0/
______________________________/bytes_egress
/sys/devices/mynetdev/channel_1/
______________________________/bytes_egress
/sys/devices/mynetdev/channel_2/
______________________________/bytes_egress
...

Вопросы:

  1. Как создать группу атрибутов, чтобы у меня была одна папка на канал?
  2. Похоже, мне нужно связать группу атрибутов перед регистрацией устройства. Тогда когда мне обновить эти атрибуты? Обновление атрибута может повлиять на производительность сети?
  3. Как работает «атрибут»? Например, когда пользователь запрашивает sysfs из команды cat, выдает ли он команду драйверу для обновления атрибута? Или мой драйвер будет продолжать обновлять атрибут, а команда cat просто запросит значение?

Спасибо!


person Howard Shane    schedule 09.12.2016    source источник


Ответы (1)


установите для поля .modified iio_chan_spec значение 1. Модификаторы указываются с использованием поля .channel2 той же структуры iio_chan_spec и используются для указания физически уникальной характеристики канала, такой как его направление или спектральная характеристика. Например, датчик освещенности может иметь два канала: один для инфракрасного света, а другой для инфракрасного и видимого света.

person user43378    schedule 09.12.2016