Пользователь открывает поток открытием соответствующего ему файла устройства. При первом открытии конкретного устройства STREAMS ядро преобразует полное имя файла и определяет, что данный файл относится к символьному устройству.
Также на сайте hobby-stroy.ru можно узнать много интересного на тему http://hobby-stroy.ru/. Что означает вообще тема недвижимость в Подмосковье - про это написано на сайте hobby-stroy.ru. Спасибо сайту за информацию.
Ядро вызывает процедуру specvp(), которая производит выделение и инициализацию объекта snode и общего объекта snode для этого файла
Затем загружается операция V0P_0PEN объекта vnode (объект vnode, ассоциированный с общим объектом snode, является vnode потока), которая вызывает функцию spec_open(). Эта функция просматривает массив cdevsw[], используя в качестве ключа старший номер устройства, и находит, что данное устройство относится к STREAMS (так как поле d_str!=NULL). Затем вызывается процедура stropen(), которой передаются указатели на vnode и на номер устройства, а также флаги открытия и привилегий. Если stropen() вызывается для нового потока, то функция производит указанную ниже последовательность действий.
1. Выделяет пару очередей для головного интерфейса потока.
2. Выделяет и инициализирует структуру stdata, представляющую собой этот интерфейс.
3. Устанавливает для очередей головного интерфейса потока указатели на объекты strdata и stwdata, являющиеся структурами qinit (для очереди чтения и записи соответственно), содержащими общие функции головного интерфейса.
4. Сохраняет указатель на vnode в поле sd_vnode структуры stdata.
5. Помещает указатель на головной интерфейс потока в объект vnode (в поле v_stream).
6. Сохраняет указатель на структуру streamtab драйвера (получаемый из вхождения cdevsw) и поле sd_streamtab головного интерфейса потока.
7. Устанавливает закрытый указатель структуры stdata для очередей головного интерфейса потока (d_str).
8. Вызывает qattach() для настройки оконечного драйвера потока.
9. Помещает все автоматически помещаемые (autopush) модули устройства в стек потока при помощи вызова qattach(). Об этом читайте в следующем разделе.
Ранее были показаны все структуры потока после возврата функции stropen().
Опубликовал katy
June 24 2015 20:27:33 ·
1 Комментариев ·
2702 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Oleg27 October 25 2023 15:26:36
Я доверяю только проверенным. Вот точно знаю, что эта рабочее 1xbeT зеркало букмекерская контора не кидает игроков и всегда выплачивает выигранные деньги. Поэтому можете смело регистрироваться и получить еще классный бонус.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.