RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : ... и всякое такое


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Slavik Gnatenko, 2:467/99
To : Alexander Conon
Subj : ... и всякое такое

> >>>> вот про тайный смысл поля "link to next header" кто-нибудь может рассказать ?
> >>>> в смысле - возможность засунуть несколько драйверов в один файл, она зачем ?
> >>>Поддерживать несколько девайсов одним экземпляром драйвера
> >>одним файлом
> >Одним файлом по любому несколько девайсов поддерживается.
> >Если он, конечно, хоть сколь-нибудь универсален или девайсы идентичные.
> >Фишка хедера в том, чтобы грузить один экземпляр.
> в мануалах ясно написано - "несколько драйверов в один файл".
> неужели врут ? :-/
Врут :) Драйвер и файл тождественны. Вот поддерживаемых логических устройств им может быть несколько.

> >И чем сложнее?
> сами драйвера сложнее
Конкретнее, пожалуйста. Не забывай, кстати, что это опция. Никто не мешает ограничить себя одним устройством на файл. Но лично мне com2com.sys в виде двух файлов добавил бы только существенного IDC траха при написании.

> >Чем проще - очевидно.
> >Разработчику драйвера не надо озадачиваться, как определять,
> >на что мы драйвер загрузили, а на что ещё нет.
> а он и так не озадачивался.
> было принято решение, что в писюке может быть максимум 4 ком-порта,
> для них и вставили 4 драйвера в com.sys.
Вот именно потому и не озадачивался, что использовал "кривую", по твоему мнению, фичу. Иначе бы пришлось. Зуб даю, эта задача на пару порядков сложнее, чем описать внутреннее взаимодействие с несколькими точками входа.

> >Пользователю, как он сейчас огребает на USB контроллерах,
> >не нужно думать, сколько там этих самых девайсов,
> >чтобы прописать в config.sys ровно столько же одинаковых строчек.
> если он не хочет думать, то он может сделать a-la com.sys :
> прописать их _больше_.
Это чтобы при включённом PAUSEONERROR машина даже загрузиться не смогла? Отличный подход.

> >>>и менее ресурсоёмко, чем грузить по экземпляру на каждый девайс.
> >>оно всё равно грузится по экземпляру на девайс
> >Ну ну. У тебя компорта ещё два? Покажи мне два загруженых экземпляра com.sys.
> "унутре у него" несколько драйверов. каким не хватило железа - не грузятся.
Унутре у него один драйвер. С несколькими точками входа. И ресурсы расходуются в основном на открытое логическое устройство, а не на железное.

> >>>Там другая кривость: сколько placeholders вобьёшь,
> >>>столько по максимуму девайсов и будет.
> >>это та же самая кривость но сбоку
> >Нет, это совершенно другая кривость.
> нет это именно та самая кривость
Повторяю исходный посыл: "в смысле - возможность засунуть несколько драйверов в один файл, она зачем ?" Итак делаем нормальное API, убираем статическое описание точки входа через заголовок и заменяем на динамическую регистрацию на ините (а если помечтать, так вообще в произвольный момент). Кривость с ограничением количества железа уходит. Тем не менее, исходная "кривость", т.е. возможность иметь несколько точек входа, вполне сохраняется.


Fri 25 Jul 2008 22:04 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.