Регистрация объектов kobject, наборов kset и подсистем
В качестве общего правила, можно сказать, что, если вам нужно, чтобы объект kobject, набор kset или подсистема появились в поддереве sysfs, вы должны их сначала зарегистрировать. Каталог, ассоциированный с объектом kobject, всегда появляется в каталоге родительского объекта. Например, каталоги объектов kobject, включенных в один и тот же набор kset, появляются в каталоге самого kset. Следовательно, структура поддерева sysfs представляет иерархию отношений между различными зарегистрированными объектами kobject, а значит, и между различными контейнерами. Обычно каталоги верхнего уровня файловой системы sysfs ассоциированы с зарегистрированными подсистемами.
Функция kobject register о инициализирует объект kobject и добавляет соответствующий каталог в файловую систему sysfs. Перед вызовом этой функции вызывающий код должен установить поле kset в структуре kobject так, чтобы оно указывало на родительский kset, если таковой имеется. Функция kobject unregister о удаляет каталог объекта kobject из файловой системы sysfs. Чтобы облегчить жизнь программистам ядра, Linux предлагает еще И функции kset_register И kset unregister, а также subsystem_register И subsystem_unregister , НО ОНИ ЯВЛЯЮТСЯ всего ЛИШЬ интерфейсными ДЛЯ kobject_register И kobject_unregister .
Как было сказано ранее, многие каталоги объектов kobject содержат обычные файлы, называемые атрибутами. Функция sysfs create file о принимает в качестве параметра адреса объекта kobject и дескриптора атрибута и создает специальный файл в соответствующем каталоге. Другие отношения между объектами, представленными в файловой системе sysfs, устанавливаются с помощью символьных ссылок: функция sysfs create iinko создает символьную ссылку для данного объекта kobject в каталоге, ассоциированном с другим объектом kobject.
Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | Следующая страница