Я пишу модуль ядра на C. Мне нужно объявить указатель на массив символов в пространстве пользователя и заполнить его данными. Я объявляю указатель, используя char * __user, и заполняю его данными, вызывающими функцию copy_to_user. Затем я вызываю функцию copy_from_user для проверки правильности записи данных. Вместо того, чтобы читать ожидаемые данные, я читаю только нули.
Чего мне не хватает? Как правильно записать данные в пространстве пользователя из пространства ядра?
Вот код:
u16 address = 0xf0f0;
char __user *buf = address;
copy_to_user(buf, data_to_write, 20);
copy_from_user(data_to_read, buf, 20);
//printing data_to_read I read only zeroes.
Спасибо!