|
Драйвер блочного устройства в Linux |
|
|
|
 |
Ответов
|
Oct 30 2005, 11:14
|

Их либе дих ...
     
Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609

|
Мне вот еще что не понятно. В примере с символьным драйвером обращение к устройству сводится к вызову функций чтения/записи которые прописаны в структуре fosp, соответсвенно когда обращаюсь к устройству через read/write и т.п. то передаю указатель на буфер обмена. В драйвере блочного устройства я не пойму как передается указатель на буфер обмена. В примере, осуществляется такое объявление функции запроса Код ... static XStatus(*req_fnc) (XSysAce * InstancePtr, u32 StartSector, int NumSectors, u8 * BufferPtr); ... static void xsysace_do_request(request_queue_t * q) { if (req_active) return;
for (;;) { INIT_REQUEST;
switch (CURRENT->cmd) { case READ: req_str = "reading"; req_fnc = XSysAce_SectorRead; break; case WRITE: req_str = "writing"; req_fnc = XSysAce_SectorWrite; break; default: printk(KERN_CRIT "%s: unknown request %d.\n", DEVICE_NAME, CURRENT->cmd); end_request(0); continue; } req_active = 1; wake_up(&req_wait); return; } } Т.е., например вызывается XSysAce_SectorRead, которая заполняет BufferPtr относящийся к структуре InstancePtr, но вот как этот BufferPtr передается приложению пользователя
--------------------
Усы, борода и кеды - вот мои документы :)
|
|
|
|
|
Nov 1 2005, 17:01
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
В ядрах 2.6 есть еще так называемые шедулеры ввода/вывода которые занимаются планированием очереди, предсказанием номеров секторов, которые могут потребоватся в следующей оперции чтения/записи и много другого. Как в 2.4 с этим - я не знаю, но стоит посмотреть есть ли в исходниках ядра файл с именем elevator.c (ну или похожим). Если есть, то стоит его изучить, хотя это занятие неблагодарное. После изучения этого файла (и сопутствующих ему) появится понимание (а может наоборот - пропадет вовсе  ), но использовать это понимание на практике будет затруднительно. Драйвер блочного устройства знает как выполнять чтение/запись секторов, но не знает когда это происходит.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
Сообщений в этой теме
3.14 Драйвер блочного устройства в Linux Oct 25 2005, 20:28 makc Цитата(3.14 @ Oct 25 2005, 23:28)Отзовитесь п... Oct 26 2005, 04:05 amw Цитата(3.14 @ Oct 25 2005, 23:28)Отзовитесь п... Oct 26 2005, 15:23 3.14 Нижесказанное касается uClinux, ядро 2.4.
Начал я ... Oct 26 2005, 20:35 gab Цитата(3.14 @ Oct 26 2005, 23:35)Нижесказанно... Oct 27 2005, 01:35 makc Цитата(3.14 @ Oct 26 2005, 23:35)Нижесказанно... Oct 27 2005, 06:23  amw Цитата(makc @ Oct 27 2005, 09:23)Цитата(3.14 ... Oct 28 2005, 09:13  amw Цитата(makc @ Oct 27 2005, 09:23)У меня есть ... Oct 28 2005, 12:03 3.14 Всем спасибо, с мертвой точки наконец сдвинулся.
К... Oct 29 2005, 12:13 amw Цитата(3.14 @ Oct 29 2005, 15:13)Всем спасибо... Nov 1 2005, 16:33 amw Цитата(3.14 @ Oct 30 2005, 14:14)Мне вот еще ... Nov 1 2005, 16:50  makc Цитата(amw @ Nov 1 2005, 20:01)В ядрах 2.6 ес... Nov 1 2005, 17:21   amw Цитата(makc @ Nov 1 2005, 20:21)ЦитатаДрайвер... Nov 2 2005, 14:13    makc Цитата(amw @ Nov 2 2005, 17:13)А можна с этог... Nov 2 2005, 16:37     amw Цитата(makc @ Nov 2 2005, 19:37)Книга Linux D... Nov 3 2005, 09:47 3.14 Требуется помощь.
Я хочу воспользоваться драивером... Nov 3 2005, 19:49 makc Отучение может быть выполнено лишь одним способом ... Nov 3 2005, 20:49 3.14 А если я сделаю так:
в фунции xsysace_do_request в... Nov 3 2005, 21:48 makc Цитата(3.14 @ Nov 4 2005, 00:48)А если я сдел... Nov 4 2005, 20:19 3.14 В общем, как то кастрировал этот драйвер, правда м... Nov 4 2005, 16:01 makc Цитата(3.14 @ Nov 4 2005, 19:01)В общем, как ... Nov 4 2005, 20:28 3.14 Блин, чем дальше, тем ...
На данный момент, мой... Nov 5 2005, 14:42 makc Цитата(3.14 @ Nov 5 2005, 17:42)Блин, чем дал... Nov 5 2005, 17:18 3.14 Спасибо!
Поправил с учетом последних указаний,... Nov 5 2005, 18:35 makc Цитата(3.14 @ Nov 5 2005, 21:35)Спасибо!
... Nov 5 2005, 19:18 3.14 Далее.
1) Когда мой тестик читает из устройства 51... Nov 5 2005, 21:52 3.14 Уф-ф, мон... Nov 6 2005, 15:56 makc Цитата(3.14 @ Nov 6 2005, 18:56) Уф-ф, мо... Nov 6 2005, 16:28
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|