Вот например в file_ptr->f_op->read(struct file *file, char __user *buf, size_t count, loff_t *pos);
Это функция чтения выводимых данных файлом /proc/kallsyms (для примера).
Эта read(file, buf, count, pos); указывает на функцию специфичную для разных файловых систем. Она считывает выводимые файлом данные. Так вот, если в неё передать char __user *buf - указатель на буфер в user_space , то функция отработает, и вернёт заполненный буфер.
А если в эту функцию передать char __user *my_ptr = kmalloc(4096, GFP_ATOMIC) То будет возвращён код ошибки -14
Мне надо выделить память для чтения данных из файла /proc/kallsyms из ядра.( таким образом. чтоб можно было подставить свой указатель на буфер в функцию read )
Не понятно, зачем ты хочешь читать из файла /proc/kallsyms в ядре? Из модуля ядра можно использовать функции kallsyms_lookup_name и kallsyms_on_each_symbol.
// Что тут нужно сделать, чтоб my_ptr воспринялся функцией как данные из user_space
Встать до зари, дерябнуть стакан, сунуть папиросину в зубы, натянуть ватник и калоши, взять метлу и идти работать. И никогда к компьютерам больше не подходить.
Чето по-моему, кому-то надо хотя бы чуточку попытаться врубиться в то, что такое модуль ядра, что такое ядро ос, что такое виртуальная память, что такое процесс и что такое операционная система вообще.
Задумался, и вижу только одно объяснение,каждому хочется в***** и показать какой он умный и крутой)
Чтож, желание вполне понятное, этого хотят все... Может даже и некоторые специалисты так делают.
Насчёт своих вопросов, я их ещё раз перечитал..и они чертовски точные, только ответы почти все дали...не в тему.
Только eXire и idle дали что-то значащие ответы.
Кстати, хотел отписать idle - вы были абсолютно правы, только в моём коде это не работало (...
Сработало только после того, как я прошёлся по указателям функций дальше file_ptr->f_op->read(file, my_ptr, 4096, pos); ....указатель на функ, укахатель на функ... и в самом конце обработки, уже можно сделать что мне требовалось.
Я вот смотрю и у меня создаётся впечатление, что большинство вопросов с тэгом [kernel] выглядят примерно так: «Как мне в kernel space [что-то-непонятно-зачем-нужное] из user space?»