Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
PolAR
Зарегистрирован: 01.11.2004 Сообщения: 133
|
Добавлено: Вт Ноя 08 2005 09:09 Заголовок сообщения: работа с sysfs в linux |
|
|
Не получается работать с атрибутом для pci-устройства!
Проблема такая: когда вызывается функция show or store буфер в нее передается неинициализированный - при попытке писать в него ядро выдает Segmentation fault!
Не работает даже такая примитивня функция!
Код: | show_attr( struct device *dev, char *buf)
{
return sprintf(buf,"blablabla");
}
|
создаю параметр DEVICE_ATTR(atr_name,644,show_attr,NULL);
Атрибут виден в ФС, но када делаешь
появляется большой косяк!!
Где смотреть не знаю подскажите в чем дело! _________________ Come Together!! Right Now.... |
|
Вернуться к началу |
|
|
PolAR
Зарегистрирован: 01.11.2004 Сообщения: 133
|
Добавлено: Вт Ноя 08 2005 16:17 Заголовок сообщения: Разобрался! |
|
|
Проблему решил!
Оказывается доверять полностью /usr/src/linux/Documentation не надо! НАДО ЗАГЛЯДЫВАТЬ В ИСХОДНИКИ! ( в данном случае device.h )
прототип show выглядит не: Код: | ssize_t show( struct device *dev, char *buf) |
а так: Код: | ssize_t show( struct device *dev, struct device_attribute *attr, char *buf) |
То есть я пытался писать sprintf-ом в attr, которая для этого нифига не предназначена! _________________ Come Together!! Right Now.... |
|
Вернуться к началу |
|
|
|