Цитата(3.14 @ Nov 4 2005, 19:01)
В общем, как то кастрировал этот драйвер, правда манипуляции с очередями я как то слабо понял, взгляните плиз на прикрепленный файл, может чего заметите.
Маленькое лирическое отступление. Когда я только начинал писать драйвера (что под винды, что под линукс) я очень быстро понял, что чужой драйвер - справочное средство, а железо бывает на столько разное, что это почти всегда полностью меняет архитектуру драйвера. Именно поэтому я всегда смотрю на драйвера других людей, но пишу свой.

Поэтому мой совет - переписать драйвер и оставить в нем только функцию-обработчик запросов ввода-вывода. Все потоки и пр. убрать. Так будет гораздо понятнее. Да и отладить это драйвер будет проще. Но это только в данном конкретном случае.
Цитата
Не понятно:
1) В доке сказано, что файловая система может находиться только на блочных устройствах, дык зачем тогда регистрировать устройство как devfs?
Все верно, т.к. операция монтирования применима только к блочным устройствам. А devfs - это немного для другого:
http://wiki.linuxquestions.org/wiki/DevfsЦитата
2) MBR сектор для разных файловых систем разный?
MBR - содержит главную загрузочную запись диска и начало таблицы разделов. Т.е. для разных файловых систем он будет одним и тем же, по формату, конечно. А вот содержимое его будет различаться. По крайней мере полями типов файловых систем.
Цитата
2) При объявлении диска нужно указать количество головок, секторов и цилиндров. В MBR секторе флешки есть значения количества головок и секторов, а как определить количество цилиндров?
Что подразумевается под объявлением диска?
Если известен объем диска (раздела), то количество цилиндров можно легко вычислить, поскольку общий объем диска равен Nсекторов*Nголовок*Nцилиндров*РазмерСектора. Т.е. для получения числа цилиндров нужно разделить объем на произведение (Nсекторов*Nголовок*РазмерСектора).