2016-03-17 4 views
0

драйверов/базы/firmware_class.c, есть ссылка на dev_attr_loading в этой структуре:Где этот символ, определенный/сгенерированный в источнике ядра?

static struct attribute *fw_dev_attrs[] = { 
     &dev_attr_loading.attr, 
     NULL 
}; 

Где это может быть определен символ или генерируется? Кажется, он нигде не находится в исходном дереве или сгенерированных файлах. Кажется, я не могу найти макрос, который его строит. Я пытаюсь придумать больше мест или способов взглянуть.

ответ

1

Это на самом деле в том же файле. Он создается с помощью макроса:

static DEVICE_ATTR(loading, 0644, firmware_loading_show, firmware_loading_store); 

Макрос определяется включать/Linux/device.h:

#define DEVICE_ATTR(_name, _mode, _show, _store) \ 
     struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store) 

"_name" является то, что бросил меня в поиске; Я не понимал, что подчеркивание можно использовать в макросе таким образом.

 Смежные вопросы

  • Нет связанных вопросов^_^