Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: linux: отображение памяти kmalloc на приложение  (Прочитано 5629 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Anonymous
Гость
« : 14-04-2004 11:52 » 

Еще одна проблема. Что то я не могу найти как отобразить виртуальный адрес ядра, полученный kmalloc на пользовательское приложение. Почитал как сделать отображение наоборот из юзер в ядро и пришел в ужас. Помогите.
И еще проблема kmalloc не может аллокировать даже 50 страниц памяти а мне нужно 6 буферов по 200 страниц... Если драйвер поставить в автозагрузку то эти 200 страниц смогут захватиться kmalloc?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 14-04-2004 12:55 » 

Загляни в файлы на этом сайте. Там есть "Linux Device Drivers, 2nd Edition" - полезная книга.
Chapter 7 и 13.

Насчет ограничения kmalloc() - какой флаг ставишь в вызове kmalloc?

Какая задача стоит? В слепую советы давать тяжело...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Anonymous
Гость
« Ответ #2 : 14-04-2004 13:40 » 

флаги - GFP_KERNEL

задача - выделить в модуле память для дма 4мб и отмепить ее на юзер спейс.
про книжку знаю =) спасибо. не очень то она помогает
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 15-04-2004 10:22 » 

Не помогает говоришь? По ядру Linux-а всеобъемлющей книги не найдешь, так что пользоваться приходится тем что есть, а за деталями лезть в исходники. Эта книга как раз и является "направляющей", а не справочником.

Понятие DMA бывает разное - ISA DMA и PCI DMA (bus mastering).
Для ISA DMA нужен флаг GFP_DMA. По нему должно быть выделение по физичеческому адресу ниже 16М.

Посмотри разделы:
CH 13: / The iobuf Interface / Mapping User-Space Buffers and Raw IO
CH 13: / Direct Memory Access and Bus Mastering

Я думаю, что логичнее будет передавать эту память процессу через mmap(). Как? - Стоит подумать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines