Linux 2.6.x *в пределах модуля ядра*
где-то внутрях драйвера есть большой и толстый буфер выделенный через vmalloc(9) и есть необходимость достучаться до него через mmap(2). соотв. приходится отрабатывать операцию vm_operations_struct->nopage(). для чего очевидно необходимо преобразовать свой виртуальный адрес ядра "buffer + заданный offset" в конкретную страницу в лице структуры page и вернуть ее из nopage().
вопрос: как это сделать? на руках есть лишь то, что вернул vmalloc(9) и смещение в пределах выделенного буфера.
ps: я понимаю, что ответ "никак" и очевидно придется самому выделять, хранить и мапировать массив страниц, но может быть я все-таки что-то недоглядел в mm/vmalloc.c или еще где? например, если бы получить по заданному адресу его vm_struct то можно было бы найти страницу в pages и самому. только вот не экспортируется он, сволочь, ни vmlist ни vmlist_lock.. :-/
// wbr
Похожие темы
- Форум [kernel] получить записанные данные в struct page (2010)
- Форум struct tm (2006)
- Форум struct group_info (2005)
- Новости Kaitai Struct 0.7 (2017)
- Новости Kaitai Struct 0.8 (2018)
- Новости Kaitai Struct 0.6 (2017)
- Форум struct в python3 (2016)
- Новости Kaitai Struct 0.5 (2016)
- Новости Kaitai Struct 0.9 (2020)
- Форум union { double, struct {} } (2020)