Я надеялся, что кто-нибудь сможет объяснить нюансы макроса __user, используемого в исходном коде ядра Linux.
Прежде всего, макрос:
# define __user __attribute__((noderef, address_space(1)))
Теперь, после некоторого поиска в Google, я прочитал, что этот макрос позволяет определить указатель как принадлежащий пользовательскому адресному пространству, и что он не должен разыменовываться.
Я могу пропустить некоторые очевидные факты, но не мог бы кто-нибудь объяснить значение такого макроса? Например, каков хороший пример того, где можно было бы использовать этот макрос? Еще раз, простите меня, если я упускаю что-то очевидное.
Чтобы выразить это в некотором контексте, я наткнулся на макрос, исследуя некоторый код USB (linux / usbdevice_fs.h). Я только хочу получить общее представление об использовании этого макроса (или других подобных макросов) в ядре.
Спасибо за внимание!